Можно ли от службы поддержки получить пример пользовательского драйвера типа t12 для работы с com-портом в TM6 для разработки своего драйвера на его основе?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Такого примера у нас нет.
Posted by Serge (Участник № / Member № 3180) on :
Жаль
Posted by Serge (Участник № / Member № 3180) on :
А вообще какой-нибудь проект драйвера на VC++ в качестве образца можно получить, а то из help не очень понятно? Вот из примеров выдернули, скомпилировали... Ничего не происходит. Как его отлаживать, почему может не работать и т.д. В руководстве написано, что для TCOM6 нужно экспортировать 7 функций, видно, например, в ОВЕНе только 6. B т.д.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Отправлено.
Posted by Serge (Участник № / Member № 3180) on :
Не хватает файла tm_drv.h Можно его получить?
Posted by Serge (Участник № / Member № 3180) on :
И вероятно функций и типов данных, которые в нем описаны.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
отправлено
Posted by Serge (Участник № / Member № 3180) on :
Спасибо за помощь.
Posted by Serge (Участник № / Member № 3180) on :
Tm6.05.01. Есть 5 каналов, которые по всем признакам должны объединиться в блоковый запрос. При вызове get_yyy, q_rec=4. Это правильно? Почему через RSDATA не получается присвоить значение 5 каналу?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
При формировании индивидуального запроса q_rec=0. При формировании группового запроса для 5 каналов q_rec=4. Это правильно. После получения ответа на групповой запрос МРВ пробегает базу каналов в поисках каналов-участников этого запроса - начиная от канала-инициатора запроса до конца базы (с увеличением ID каналов). При этом передаваемый в драйвер параметр count будет меняться от 0 до q_rec. Если ID какого либо из этих каналов меньше ID канала-инициатора запроса, то этот канал своего значения не получит. В остальных случаях групповой запрос должен полностью разбирать структуру RSDATA.
Posted by Serge (Участник № / Member № 3180) on :
Как правильно раскидать данные полученные при блоковом запросе в RSDATA, а то каналы объединились в группу в порядке создания их в TM6, а не в порядке следования их в запросе к устройству?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Порядок заполнения RSDATA не имеет значения. Важно правильно оттуда выбирать. Когда Вы распаковываете ответ в структуру RSDATA, Вы знаете, какому удаленному адресу соответствует какой ответ и в какую ячейку RSDATA Вы его кладете. При выборке из RSDATA Вы должны возвращать соответствующий указатель на ячейку RSDATA.
Posted by Serge (Участник № / Member № 3180) on :
Новые сложности Вот текст функции ReadMedia { SerialPort& CommPort = g_Map[ia.c[0]-1]; _mbsnbset((unsigned char* )rbuf,0,100); CommPort.read((BYTE *)rbuf,100,(DWORD &)actual_count,500); return 0; } Все складываем в rbuf, а в функции Check_yyy в rbuf уже какой то мусор. С чем это связано? Вообще очень странно, что в ReadMedia адрес rbuf равен адресу sbuf в WriteMedia, а в Check_yyy rbuf имеет совсем другой адрес.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вы правы. В интерфейсе TCOM 6 имеется ошибка: в функции ReadMedia реально подставляется адрес не rbuf, а sbuf. Мы исправим ее в ближайшем релизе.
Пока, если у Вас нет возможности ожидать выхода релиза (возможно, около 2 недель), можно рекомендовать 1 из двух вариантов обхода: - в Вашем драйвере запомнить эти адреса и соответственно осуществить подмену, - если Вас удовлетворяет интерфейс TCOM5, то надо исключить из драйвера функцию void zzTM6Stub().
Posted by arido (Участник № / Member № 2961) on :
Пожалуйста, пришлите пример по адресу: yyyyy@zzzzzzz.ru Спасибо.
[ 01.04.2011, 19:14: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Posted by Алекс К (Участник № / Member № 1337) on :
Ув техподдержка, тоже очень прошу все высланное выше.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Отправлено.
Posted by Алекс К (Участник № / Member № 1337) on :
v6.062 prof Вроде все делаю по описанию универсального драйвера.doc - но в portmone пусто. Может в узле проекта надо создавать COMпорт? И еще в строке ports.txt 0 - 2400, 8, 2, n, 500 что такое "2"?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Нет, создавать COM-порт не надо.
2 - это кол-во стоп-битов.
Есть ли ошибки по вызову драйвера в протоколе профайлера?
Posted by Алекс К (Участник № / Member № 1337) on :
Нет ошибок.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вам нужно ввести внутреннюю диагностику в драйвере. Других способов проверки нет.
Posted by Алекс К (Участник № / Member № 1337) on :
Как это сделать?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Рассмотрение и написание исходных текстов программ не входит в рамки технической поддержки.
Posted by Dak (Участник № / Member № 3189) on :
Здравствуйте! В проекте параллельно (RS-485) соединены 4 СЭТ-4ТМ.03 и через MOXA-5450 (485-Ithernet) опрашиваются компьютером (виртуальный СОМ-порт). Обмен со штатной программой "Конфигуратор СЭТ" - без замечаний. ТМ "видит" только 2 из 4 приборов (обмен через драйвер СЭТ-4ТМ). Пример лога: для неудачного обмена: 09:43:15.327 Write to COM11 (10 bytes): 9F 01 30 30 30 30 30 30 47 08 09:43:15.358 Read from COM11 (4 bytes): 9F 00 68 40 09:43:15.374 Error - can't connect to device 159 on port 11 для удачного обмена: 10:17:17.687 Write to COM11 (10 bytes): 64 01 30 30 30 30 30 30 09 FF 10:17:17.718 Read from COM11 (4 bytes): 64 00 2B 70 10:17:17.733 Write to COM11 (5 bytes): 64 08 05 F7 DC Т.е. в обоих случаях счетчики отвечают одинакого правильно (в тч CRC). Почему для ТМ в одном случае ошибка, а в другом нет?
Posted by Dak (Участник № / Member № 3189) on :
Вопрос снимаю - драйвер принимает адрес до 127 включительно
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Напишите письмо на адрес hotline@adastra.ru с описанием проблемы, и мы вышлем обновленный драйвер, где это проблема исправлена.
Posted by Kostyan1988 (Участник № / Member № 4420) on :
Пожалуйста, пришлите проект драйвера t12 по адресу: xxxxxxxxxxxxx@mail.ru Спасибо.
[ 01.04.2011, 19:12: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Posted by AdAstra Technical Support (Участник № / Member № 4) on :