Весы на COM-порт

Сканеры штрих-кодов, принтеры чеков, фискальные регистраторы, пинпады, весы
Ответить
Cerbrus

Весы на COM-порт

Сообщение Cerbrus » Чт янв 15, 2015 2:52 pm

Есть девайс:
http://aandd.ru/shop/catalog-balance/pl ... rm_68.html

девайс имеет возможность принимать две команды: запрос текущего значения и обнуление значения. Проблема в том, что команды должны заканчиваться CrLf (0Dh 0Ah).
При локальном подключении все работает. Было опробовано на разных операционках. При подключении через Win машины так же проблем нет. Через WTware весы работают только в одну сторону. Т.е. в автоматическом режиме значение выдают, а при вводе команды отвечают, что не поняли. На сколько я понимаю, проблема именно в терминаторе, т.е CrLf.
Подскажите куда копнуть?

aka
Разработчик
Разработчик
Сообщения: 9774
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Весы на COM-порт

Сообщение aka » Чт янв 15, 2015 4:03 pm

0. Поставь свежую втварь.

1. Через mstsc.exe проверил, работает?

2. Когда через втварь не работает, используется точно та же программа, на сервер зашли тем же пользователем, вообще всё в точности то же, только втварь вместо виндовса с mstsc.exe, так?

3. Запусти терминал. Отправь команду, чтоб получилась ошибка. Сохрани лог и пришли на aka@pxe.ru

Будет очень забавно, если через десять лет после появления в втвари перенаправления ком-портов всплывёт ошибка с CrLf.

Cerbrus

Re: Весы на COM-порт

Сообщение Cerbrus » Чт янв 15, 2015 4:59 pm

0. свежая
1. да. клиент Win7, сервер Win2k3
2. да
3. отправил.

не думаю что это что-то не естественное. Ибо rdesktop ведёт себя аналогично, да и freeRDP этим страдает: https://github.com/FreeRDP/FreeRDP/issues/1515

aka
Разработчик
Разработчик
Сообщения: 9774
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Весы на COM-порт

Сообщение aka » Чт янв 15, 2015 6:57 pm

Любопытно. Вот этот файлик запиши на флешку в каталог packages: http://pxe.ru/files/testing/201501151854.zip

И сделай то же самое, только пожалуйста делай минимум действий до появления ошибки, лог должен получиться очень большой. Запусти терминал, запусти программу, сделай чтоб ошибка один раз проявилась, сохрани.


aka
Разработчик
Разработчик
Сообщения: 9774
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Весы на COM-порт

Сообщение aka » Пн янв 19, 2015 8:56 pm

Смотрю в лог. Сначала много букв про открытие и настройку порта, затем запись:

rdpdr[]-main.cpp ( 100): IRP_MJ_WRITE
rdpdr[serial]-worker.cpp ( 1770): Now: 1421385483.221071. 1 bytes written to /dev/ttyS0.
rdpdr[]-main.cpp ( 305): IRP Completion: Device 1, CompletionId 2, IoStatus 0x00000000, result 1, 0 bytes of data.

Записывается 1 (один) байт в порт.

Затем из порта читаются три байта:

08-18-17-200| [rdpdr-serial 0] 00000000:3f ?
08-18-17-200| [rdpdr-serial 0] 00000000:0d .
08-18-17-200| [rdpdr-serial 0] 00000000:0a .

Вопросик и виндовый перевод строки.

Затем ещё раз в порт пишется 1 (один, адын штук) байт. И опять железка отвечает вопросиком.

Откуда информация про завершение CrLf? Втвари от виндовса один байт команды всего приходит, безо всяких CrLf. А сколько должно быть байт в команде?

Cerbrus

Re: Весы на COM-порт

Сообщение Cerbrus » Вт янв 27, 2015 9:33 am

Огромное спасибо!!!

Всё решилось выставлением скорости в 9600 на весах.

Ответить