Вход

Просмотр полной версии : OWENIONET и параметр U.Apl



2sandro
14.02.2019, 23:27
Здравствуйте. Использую библиотеку OWENIONET для управления прибором ОВЕН МВ110-1ТД. В прочем программа написана полностью и есть один нюанс при использовании функции библиотеки OwenWrite и параметра записи юстировочных данных "U.Apl". Вот пример owenProtocol.OwenWrite(addrBl, AddressLengthType.Bits8, "U.Apl", new byte[] { 0, 0 }); Последний параметр new byte - без него никак! Но, команда U.Apl должна посылаться без байт данных. Пробовал и один байт, без разницы. На этот запрос устройство отвечает ошибкой, если просто в сериал порт написать команду вида:
byte[] sendtemp = new byte[] { 0x23, 0x48, 0x4B, 0x47, 0x47, 0x52, 0x4C, 0x54, 0x4E, 0x47, 0x4A, 0x4B, 0x4B, 0x0D };
port.Write(sendtemp, 0, sendtemp.Length);
то устройство нормально запоминает настройки. А вот с OwenWrite беда. Вот как выглядит команда в мониторе порта (HEX): 23 48 4B 47 49 52 4C 54 4E 47 47 47 47 4E 47 53 53 0D. В команде, посылаемой Конфигуратором Овен М110, естественно этих "47 47 47 47" нет. Очень надеюсь на вашу помощь.

2sandro
16.02.2019, 12:22
Было бы неплохо поработать с исходниками библиотеки. Потому что отсутствие нормальной работы с командой U.Apl ставит на использовании данной библиотеки жирный крест. Весь проект с нуля переписывать - большая проблема. Надеюсь на ваше понимание. Мой email: san87dro@gmail.com

2sandro
17.02.2019, 18:07
Та же процедура но через OwenRead owenProtocol.OwenRead(addrBl, AddressLengthType.Bits8, "U.Apl");, естественно здесь мешает бит чтения. Запрос (HEX): 23 48 4B 48 47 52 4C 54 4E 4A 48 47 48 0D Ответ: 23 48 4B 47 48 47 49 4A 4A 4A 49 4A 52 55 48 0D. Exception: "Значение бита запроса не соответствует ожидаемому." Вот если бы как-то обойти бит запроса и слать 47 вместо 48, то в принципе проблем не было бы.
Через OwenWtite owenProtocol.OwenWrite(addrBl, AddressLengthType.Bits8, "U.Apl", new byte[] {0}); Запрос: 23 48 4B 47 48 52 4C 54 4E 47 47 4D 47 4C 47 0D. Ответ от устройства 23 48 4B 47 48 47 49 4A 4A 4A 4E 48 4F 48 4A 0D. Exception: Данный код не используется.