У вас имеется более подробное описание структуры запроса и ответа устройства по протоколу ASCII?
В описание, которое вы приложили, есть только информация о том, что сетевой адрес имеет длину 1 и для чтения накопленных значений нужно использовать команду 0x80. Я посмотрел, какой запрос отсылает программа DeviceConfig и в запросе присутствует больше двух байт. Судя по запросу программы DeviceConfig, в запросе имеется контрольная сумма и какие-то спецсимволы.
В протоколе сказано, что для опроса можно использовать широковещательный адрес либо адрес устройства. Широковещательный адрес 0xFF, а какой адрес устройства, доступ к которому предоставлен?
Еще вопрос касательно ответов прибора, в протоколе сказано, что структура запроса совпадает с структурой ответа, однако видно, что в ответе сначала приходит байт 0x00, пример чтения Версия ПО:
Запрос: 2F4646303030412130390D0A
Ответ: 002F3030464630303445333836443635333033312142380D0A
Так и должно быть? Что это за байт?
Подскажите, могли бы вы задать какие-нибудь значения для импульсных входов и замкнуть некоторые дискретные входы? Это помогло бы при тестировании драйвера опроса.
Еще у меня возник вопрос касательно структуры пакета при чтении накопленных значений
Запрос: 2F3031303038302138310D0A
Ответ: 002F3030303130303338303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030312133410D0A
Если в ответе оставить только блок DATA, то вид будет следующий:
333830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031, здесь первая пара образующая байт 3338, это явно не часть значения, все значения нулевые сейчас в заводском ПО, судя по всему это интерпретируется как 8 счетчиков импульсов? В протоколе об этом не говорится. Предположим, что первая пара, это количество счетчиков импульсов, далее должно быть 8 каналов по 4 байта, байт line и байт power:
3030303030303030 - канал 1
3030303030303030 - канал 2
3030303030303030 - канал 3
3030303030303030 - канал 4
3030303030303030 - канал 5
3030303030303030 - канал 6
3030303030303030 - канал 7
3030303030303030 - канал 8
3030 - Line
3030 - Power
3031 - ? Что это за байт? Описания нет.
В протоколе не описан тип данных для импульсных входов, вероятно uint? Порядок байт младшим байтом вперёд?