Вверх ↑
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
#1: 2010-06-22 14:18:22 ЛС | профиль | цитата
С появлением кабелей стало возможным соединять данные в пакет, который несется по одной линии на экране
И тут возникла идея, а что если добавить возможность обрабатывать эти самые данные в пакете
например, так

code_19001.txt
Что Вы думаете по этому поводу
И возможно ли это реализовать
карма: 1

0
файлы: 1code_19001.txt [1.4KB] [301]
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2010-06-22 14:51:14 ЛС | профиль | цитата
code_19002.txt - пример как уже можно, а можно удобнее сделать: засунуть весь функционал (в данном случае Math) в мультик, а остальную часть оставить снаружи, так будет еще удобнее
------------ Дoбавленo в 14.51:
[flood]miver, быстрота мысли у меня только благодаря net-rooms, если бы он не заверещал "user miver open new topic 'ляля'...", то я бы не ответил так быстро, спасибо Dilme за оповещатель [/flood]
карма: 10
1
файлы: 1code_19002.txt [1KB] [251]
Голосовали:miver
Разработчик
Ответов: 26170
Рейтинг: 2127
#3: 2010-06-22 16:09:54 ЛС | профиль | цитата
А кто мешает это сделать сейчас на кабеле

code_19004.txt

Assasin, а ты чего, не допер до этого, нарисовал тут на обычных компонентах, понимаешь, так и каждый (ну, почти каждый) дурак сделает
карма: 22

0
файлы: 1code_19004.txt [1005B] [227]
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2010-06-22 16:17:39 ЛС | профиль | цитата
мысль такая уже давно витает в воздухе еще с появлением MT. Теперь по порядку:
   реализовать такое можно, но из-за необходимости явной проверки типа данных, поступивших на вход элемента придется пожертвовать частью производительности и размером результирующего кода. Т.е. это значит, что в схеме, не использующей кабели будет тот же самый код и теже проверки, что и в схеме их использующей. Без подобных тяжких последсвий можно обойтись только в пакетах на базе FTCG
   альтернативой предложенному решению может быть такое:
code_19005.txt
где "Новый элемент Х" это элемент, который последовательно выдает "наверх" данные с каждого провода из кабеля и принимает их обратно после изменения пользователем.
------------ Дoбавленo в 16.17:
nesco писал(а):
А кто мешает это сделать сейчас на кабеле

nesco, предложенное решение не совсем корректно. Во-первых, оно предполагает знание о внутренней структуре данных кабеля, во-вторых, не является масштабируемым. Пример:
Add(Edit,1071184,151,193)
{
Left=20
Top=105
Width=80
Text=""
link(onChange,13905387:Wire1,[(203,199)(203,230)])
}
Add(Edit,8366180,151,242)
{
Left=20
Top=140
Width=80
Text=""
link(onChange,13905387:Wire2,[(203,248)(203,237)])
}
Add(Edit,4283550,541,256)
{
Left=245
Top=105
Width=85
Text=""
}
Add(Edit,845026,543,305)
{
Left=245
Top=140
Width=85
Text=""
}
Add(CableWork,13905387,224,224)
{
link(Cable,12826108:Wire1,[])
}
Add(CableEvent,11897247,490,287)
{
link(Wire1,4283550:doText,[(522,293)(522,262)])
link(Wire2,845026:doText,[(524,300)(524,311)])
}
Add(Math,2690228,329,287)
{
OpType=2
Op2=2
ResultType=0
link(onResult,5514629:doAdd,[])
link(Op1,11147394:Value2,[])
}
Add(MT_Add,5514629,378,287)
{
InputMT=1
link(onAdd,45930:Cable,[])
link(Data,11147394:Value1,[(384,271)(328,271)])
}
Add(MT_MultiMem,11147394,322,224)
{
link(onData,2690228:doOperation,[(368,230)(368,210)(305,210)(305,293)])
}
Add(CableWork,12826108,259,224)
{
link(Cable,11147394:doValue,[])
}
Add(CableEvent,45930,448,287)
{
link(Wire1,11897247:Cable,[])
}

разбирать и собирать формат кабеля для более сложных топологий будет еще сложнее
карма: 27
0
файлы: 1code_19005.txt [1.1KB] [350]
Разработчик
Ответов: 26170
Рейтинг: 2127
#5: 2010-06-22 16:23:22 ЛС | профиль | цитата
Dilma писал(а):
предложенное решение не совсем корректно

Для однорангового кабеля, это сойдет, вполне. Для многоранговой структуры, согласен, каждый ввод в кабель добавляет заголовок, отследить их количество по всему пути, довольно сложно.

Каждый случай требует своего подхода, но никто не отрицает, что и из того, что есть, тоже можно что-то сделать, если, конечно, хорошо подумать
карма: 22

0
Ответов: 758
Рейтинг: 112
#6: 2010-06-22 18:07:48 ЛС | профиль | цитата
Случайно нашел ошибку
code_19009.txt
Попробуйте поставить цифру в 3-м Edite с лева
карма: 1

0
файлы: 1code_19009.txt [1.6KB] [255]
Разработчик
Ответов: 26170
Рейтинг: 2127
#7: 2010-06-22 19:00:39 ЛС | профиль | цитата
miver писал(а):
Случайно нашел ошибку

А кто тебе сказал, что это ошибка
Сказан же
Dilma писал(а):
Во-первых, оно предполагает знание о внутренней структуре данных кабеля, во-вторых, не является масштабируемым

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#8: 2010-06-22 19:37:39 ЛС | профиль | цитата
Нет слов...
У нас 37 градусов в тени.
У вас наверное больше. Перегрев, что ли?
Напоминает газопровод через Украину (или Белорусь). Только там не умножают на два, а делят.
Основное назначение кабеля - упростить схему. Несколько линков "заменить" на один. А у вас вроде стоит задача - запутать схему так, чтобы хакеры голову сломали.
Вопрос: Зачем "рвать кабель посредине, звонить жилы (бегать по схеме и смотреть, а каким по счету что где идет? ), определять какие там данные и что-то делать с ними"? Манипулируй данными на входе или выходе кабеля.

Dilma писал(а):
nesco, предложенное решение не совсем корректно.
Согласен.
nesco,
данные в кабеле [12][привет][123]
Нужно: первые умножить на 2, вторые конвертировать в верхний регистр, третьи - разделить на 5 с точностью до 3 знаков после запятой.
Неужели сделать это в разрыве кабеля проще, чем на входе ?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#9: 2010-06-22 19:40:43 ЛС | профиль | цитата
А действительно, есть ошибка. Исправлено
------------ Дoбавленo в 19.39:
Tad писал(а):
Нужно: первые умножить на 2, вторые сонвертировать в верхний регистр, третьи - разделить на 5 с точностью до 3 знаков после запятой

Это совсем другой случай. Данная задача предполгает однообразную обработку всего потока. Бывают и такие случаи.
------------ Дoбавленo в 19.40:
Tad писал(а):
Неужели сделать это в разрыве кабеля проще, чем на входе ?

Твой случай не проще
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2010-06-22 20:01:13 ЛС | профиль | цитата
согласен с nesco, -
nesco писал(а):
Это совсем другой случай


если брать аналогию с реальным миром, то это примерно как установка файрвола на сетевой роутер, к которому подключен весь дом - проще сделать это в одном месте, чем ходить по квартирам и настраивать его у каждого жильца. С другой стороны реальной задачи, где такое действительно могло бы понадобиться я не представляю.
карма: 27
0
Ответов: 16884
Рейтинг: 1239
#11: 2010-06-22 20:02:01 ЛС | профиль | цитата
nesco писал(а):
так и каждый (ну, почти каждый) дурак сделает
nesco писал(а):
А действительно, есть ошибка. Исправлено
Оказывается и не каждый умный.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#12: 2010-06-22 23:40:08 ЛС | профиль | цитата
Tad, ты чего передернул-то, с одного случая, совсем на другой
Ошибка былв в компоненте, а не в схеме. К тому же, схема, на которую я ответил, была сделана не на потоках и кабелях, а на простых элементах.

А мы рассматриваем кабели, понимешь -- кабели, и работу с ними, вот так
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#13: 2010-06-23 08:44:51 ЛС | профиль | цитата
nesco, а вот я, например, рассматриваю более простой подход к каждой задаче, в данном случае новичку будет в разы понятнее схема на простых, понятных элементах, чем на лишней хухры-мухры с кабелЯми, твой пример для меня вовсе не тайна, но как верно заметил Dilma,
Dilma писал(а):
nesco, предложенное решение не совсем корректно. Во-первых, оно предполагает знание о внутренней структуре данных кабеля, во-вторых, не является масштабируемым.

поэтому я склоняюсь больше к своему решению, к тому же по мере изучения HiAsm и вообще программирования я понимаю, что HiAsm - это прямо как геометрия: решить задачу можно кучей разных способов и каждый будет правильным и приведет к верному ответу. Вот например задачу в первом посте можно еще выполнить на чистых МТ-элементах, даже динамические массивы прилепить можно, только все это будет лишней тратой ресурсов.
карма: 10
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#14: 2010-06-23 09:04:22 ЛС | профиль | цитата
Assasin писал(а):
в данном случае новичку будет в разы понятнее схема на простых, понятных элементах, чем на лишней хухры-мухры с кабелЯми

Это кто новичок, miver
Чел конкретно задал вопрос, и именно про кабели, нефиг тут увиливать

nesco писал(а):
А мы рассматриваем кабели, понимешь -- кабели, и работу с ними


Dilma писал(а):
оно предполагает знание о внутренней структуре данных кабеля

Эта внутренняя структура определяется установкой одного-двух дебагов в разрыв цепи.

Assasin, ты можешь решать на чем угодно,и как угодно, это -- твоя проблема, но новичкам (и не только), весьма интересна должна быть тема про новую вкладку компонентов, коими и являются кабели, и по которым очень скудная информация, в отличие о твоего решения, которое тут на форуме предлагалось не раз, и задолго до твоего появления. И вот это, в этом случае,
Assasin писал(а):
новичку будет в разы понятнее схема на простых, понятных элементах
не катит, не надо все тут на новичков сваливать. Тема-то создана не новичком и не для новичков. Не создай эту тему, не кинься miver тренироваться с кабелями после нашего ответа, то не нашли бы ошибку в компоненте
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#15: 2010-06-23 09:15:24 ЛС | профиль | цитата
nesco писал(а):
Это кто новичЕк, miver

Я знал, что ты задашь этот вопрос, я предусмотрел на него ответ: НЕТ, miver не новичОк, однако тот, кто сейчас читает наши дебаты может быть новичком, и ему будет интересно посмотреть различные решения множества проблем, а вот какое он выберет - это уже не наша забота, и никакие тут
nesco писал(а):
не для новичков

Все, что есть на форуме, имеет право читать каждый, а значит даже новичок.
nesco писал(а):
Не создай эту тему, не кинься miver, тренироваться с кабелями после нашего ответа, то не нашли бы ошибку в компоненте

Нахождение любого бага - лишь вопрос времени, и я не говорил, что тема бесполезная.
nesco писал(а):
но новичкам (и не только), весьма интересна должна быть тема про новую вкладку компонентов

Не отрицаю так же (и не отрицал никогда).
карма: 10
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)