Последовательный порт или Serial.Write работают по-разному на Mac и Windows?

Я пытаюсь написать приложение Xojo для связи с устройством (терминалом ZVT-ECash), которое подключено к моему Mac через USB/последовательный адаптер.

Я тестирую свое приложение на OS X и Windows 7 (работает под Parallels). В обоих случаях я отправляю строку (всегда одну и ту же) через Serial.Write как-то так:

command = chrb(&h10) + chrb(&h02) + chrb(&h06) + chrb(&h00) +chrb(4)...
Serial1.Write(command)

Serial1 — это экземпляр элемента управления Serial.

Эта строка признается устройством как допустимая команда, когда я запускаю свое приложение в Windows, и не подтверждается в OS X (устройство отвечает NAK).

В OS X я также пытался отправить ту же строку вручную с помощью CoolTerm, но это также не было подтверждено.

Что я делаю неправильно? Это какая-то проблема с последовательным управлением в Xojo, и/или есть какая-то общая разница в том, как последовательный порт работает под Win и OS X?


person Crrts    schedule 11.06.2015    source источник
comment
Тот, кто проголосовал за это, должен добавить комментарий, объясняющий, почему. Это правила. Не будь троллем   -  person Thomas Tempelmann    schedule 11.06.2015


Ответы (1)


Сам недавно столкнулся с подобными проблемами. Оказалось, что это никак не связано с Xojo (хотя CoolTerm и написан на Xojo).

Проблема заключалась в драйвере OS X для адаптера, использующего чип Prolific "2303". Я обнаружил, что и драйвер от Prolific, и версия с открытым исходным кодом (osx.pl2303) имели проблемы: первый не всегда правильно устанавливал скорость передачи данных, а второй неправильно обрабатывал аппаратное рукопожатие. Я решил приобрести драйвер на сайте https://www.mac-usb-serial.com. - это был единственный, который работал у меня на OS X с двумя разными адаптерами на базе 2303.

person Thomas Tempelmann    schedule 11.06.2015
comment
У меня были похожие проблемы с драйверами Prolific в Windows. - person BKeeney Software; 12.06.2015