Я написал программу в .NET, которая прослушивает определенный последовательный порт и обрабатывает данные, которые принимаются. Я написал тестовую программу, используя com0com (эмулятор нуль-модема), и моя программа работала нормально. Я даже проверил его с помощью HyperTerminal, и, похоже, он тоже работал нормально.
Однако, когда я связал программное обеспечение с исходным устройством (вывод, полученный из системы управления), полученные данные были искажены. Он содержал специальные символы. То же устройство при подключении к Hyper Terminal выдало желаемый результат. Я изменил скорость передачи данных, четность и т. Д., Но полученные данные представляли собой тот же набор символов мусора.
Я использовал событие DataReceived компонента SerialPort и использовал следующую строку кода для сбора данных:
string data = portRecieve.ReadExisting();
Может кто-нибудь сказать мне, где я пропускаю? В текущей среде выход устройства напрямую связан с матричным принтером, который печатает все, что получено через порт. Кажется, принтер перехватывает то, что отправляется, но мой код не может.
Если вы когда-либо сталкивались с подобным сценарием, пожалуйста, поделитесь своими выводами.
Спасибо