Sigareta
Junior Member / Новичок
Участник № / Member № 1762
отправлено / posted
Не могли бы помочь мне еще в одном в одном вопросе. написал свой драйвер, считываю данные с устройства. В Пормониторе приходит ответ от устройства с теми данными что я и запрашиваю, то есть чтение происходит корректно. В это время в драйвере вызывается процедура Get и вот тут я уже делаю что-то не верно так как в канал это значение не передается. Канал у меня вообще только один Input, для отладки я просто передаю в Get p[0].F.fmt[1] = 0; p[0].V.v=10; а результат zCompare_xxx = 0; Вот, что собственно не так. Спасибо...
Сообщения / Posts 11 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
В первый вызов после Get в zCompare канал сравнивается сам с собой, тут нужно 1 вернуть из zCompare.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sigareta
Junior Member / Новичок
Участник № / Member № 1762
отправлено / posted
Остальные параметры тоже задавали? Проверьте, q_rec должен быть = 1, его по идее МРВ заполняет. type_cnv задать в соответствие с нужным алгоритмом разбора блокового запроса = 0 или 2. Должно работать. Если не получится, нужен текст Вашего драйвера, всех функций и не только Get(). Можно прямо здесь его привести - на форуме.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sigareta
Junior Member / Новичок
Участник № / Member № 1762
отправлено / posted
все спасибо все заработало, выдает на верх )) ну то есть записывается в канал значение. Вот еще один вопрос, что это за поле Кодировка (TW0 по умолчанию стоит там еще) в хелпе про него ничего не нашел, можно о нем подробнее немного
Сообщения / Posts 11 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Код элемента в проекте. В рамках слоя Технология дерева проекта этот атрибут задает код элемента по стандарту технологического кодирования GKS.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sigareta
Junior Member / Новичок
Участник № / Member № 1762
отправлено / posted
а еще такой вопрос в процедуре Get_xxx count_rec = 18 и в порт мониторе длин на ответа Length = 18 а длина rbuf почему то равна 3 ?
Сообщения / Posts 11 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Что значит "длина rbuf"? Входной буфер же нельзя всегда рассматривать как строку, строка в С/С++ это последовательность символов с 0 в конце, если вызвать strlen(rbuf) то функция просто покажет где встретился 0. Если протокол двоичный, там 0 может быть первым символом, или вообще не встречаться ни разу... Длина строки имеет смысл только для некоторых текстовых протоколов в которых 0 - признак конца пакета, а это редкость, обычно указатель конца строки 0x0D и/или 0x0A. У Вас, судя по всему, двоичный протокол, приходит пакет 18 байт, его нужно разбирать, но не как строку!
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |