Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#16: 2013-02-04 12:59:45 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-22 08:24:29
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#17: 2013-02-04 13:04:17 ЛС | профиль | цитата
93.85.183.89 писал(а):
где найти comex

Мой вот -- http://forum.d2h.ru//getfile/30152
карма: 22

0
Ответов: 205
Рейтинг: 44
#18: 2013-02-13 16:00:15 ЛС | профиль | цитата
nesco, не работает! Посылаю контроллером 5 чисел(10,20,30,40,50), но компонент выдает только первое число (10)!?
Остальные: 20,30,40,50 теряются, где то!

code_30320.txt
карма: 0

0
файлы: 1code_30320.txt [404B] [185]
Разработчик
Ответов: 26155
Рейтинг: 2127
#19: 2013-02-13 16:23:36 ЛС | профиль | цитата
wss60 писал(а):
Посылаю контроллером 5 чисел(10,20,30,40,50), но компонент выдает только первое число (10)!?

Во-первых: как посылаешь -- одной посылкой или с интервалом
Во-вторых: Выход onRead нельзя использовать совместно с интерфейсными элементами, для этого существует выход onSyncRead. Это, кстати, отмечено в топике, где находится сам компонент, и в примере,где показано куда надо подключать правильно.
Да, кстати, а откуда уверенность, что данные с контроллера именно все приходят в порт, чем проверялось, кроме своей программы
карма: 22

0
Ответов: 205
Рейтинг: 44
#20: 2013-02-13 16:39:18 ЛС | профиль | цитата
посылаю первое число – 10
пауза в один такт мк - ~ 40 nS
посылаю второе число – 20
пауза в один такт мк - ~ 40 nS и т.д.

Про “onRead” учту
nesco писал(а):
Да, кстати, а откуда уверенность, что данные с контроллера именно все приходят в порт, чем проверялось, кроме своей программы

На старом компоненте все нормально принимает!
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#21: 2013-02-13 16:43:26 ЛС | профиль | цитата
wss60 писал(а):
пауза в один такт мк - ~ 40 nS

Это что, нанонсек, или миллисек Если это наносек, то это примется в одной посылке. Поставь дебаг в разрыв и посмотри, сколько раз отработает.

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

112_001.png

Да и откуда в твоей схеме мог взятся 20-й индекс скорости, когда их всего 19, последний -- 115200
карма: 22

0
файлы: 1112_001.png [4.2KB] [297]
Ответов: 205
Рейтинг: 44
#22: 2013-02-13 16:57:01 ЛС | профиль | цитата
Это что, нанонсек, или миллисек Если это наносек, то это примется в одной посылке. Поставь дебаг в разрыв и посмотри, сколько раз отработает.

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

все так
Да и откуда в твоей схеме мог взятся 20-й индекс скорости, когда их всего 19, последний -- 115200

Скорость я добавил т.к нужной (230400) не было.
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#23: 2013-02-13 17:33:21 ЛС | профиль | цитата
wss60 писал(а):
т.к нужной (230400) не было

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

Add(StreamConvertor,8401110,245,182)
{
Mode=2
}


И проверь, все ли данные приходят в одной строке


------------ Дoбавленo в 17.33:
Дело в том, что COMEX не читает побайтнео, он читает все, что придет на порт сразу, пока не нарушены задержки сигналов, те пока не будет поймана ошибка потери фрейма, и старается максимально быстро освободить буфер, а конвертор CharToInt читает только первый байт принятой строки
карма: 22

0
Ответов: 205
Рейтинг: 44
#24: 2013-02-13 18:05:14 ЛС | профиль | цитата
Попробовал передать строку – принял нормально!
Придется подумать, как передать массив по частям
nesco, Спасибо!!!

------------ Дoбавленo в 18.05:
Нашел способ
Add(Convertor,6780109,91,63)
{
Mode=4
link(onResult,11798751:doWrite,[])
}
Add(COMEX,11798751,140,49)
{
Port=2
BaudRate=20
Point(doRXClear)
link(onSyncRead,557187:doValue,[])
}
Add(Convertor,13217993,238,105)
{
Mode=3
}
Add(Memory,557187,189,63)
{
link(onData,14100986:doEnum,[(228,69)(228,97)(179,97)(179,111)])
}
Add(Str_Enum,14100986,189,105)
{
Delimiter=""
link(onEnum,13217993:doConvert,[])
link(String,557187:Value,[])
}

карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#25: 2013-02-13 19:19:17 ЛС | профиль | цитата
wss60 писал(а):
Нашел способ

Елемент Memory там лишний. Str_Enum прекрасно понимает данные из потока
карма: 22

0
25
Сообщение
...
Прикрепленные файлы
(файлы не залиты)