Как вы моделируете последовательное устройство? - PullRequest
5 голосов
/ 19 января 2010

Я работаю над драйвером, который общается с устройством через последовательный порт в C #. У меня не всегда есть устройство для физического тестирования. Есть ли способ, которым я могу имитировать устройство на последовательном порту, чтобы оно отвечало идеальным образом?

Ответы [ 5 ]

8 голосов
/ 19 января 2010

Получите второй COM-порт и используйте нуль-модемный кабель для подключения COM-портов, чтобы две программы на C # могли общаться друг с другом.

6 голосов
/ 19 января 2010

Некоторое время я использовал Com0Com и написал код симулятора / эмулятора.

1 голос
/ 19 января 2010

Что за драйвер? Если это драйвер последовательного интерфейса, то это довольно сложно.

Однако, если ваш драйвер находится на уровне приложения выше драйвера устройства Windows, то поведение ввода / вывода довольно легко заменить, изменив строку, переданную в CreateFile, или любой другой слой поверх этого C #.

== Подробнее ==

Поскольку вы используете инструменты библиотеки .net, эта техника может показаться вам слишком неприятной. Однако идея состоит в том, чтобы заменить то, что в какой-то момент ваш код говорит open COM1: или что-то еще. Измените его на файл с имитированными данными, например, c: /com1testdata.txt. Дополнительный код эмуляции, который распознает содержимое файла для пауз и / или ответов, может быть полезен для некоторых протоколов. Данные, которые записываются в порт, могут быть зарегистрированы или проигнорированы, в зависимости от ваших требований.

0 голосов
/ 19 января 2010

Если вы работаете в виртуальной машине, вы можете подключить что-либо к последовательному порту.Например, QEMU позволяет вам подключить виртуальный последовательный порт к TTY, с которым вы можете взаимодействовать вручную или с программой, запущенной на хосте.

0 голосов
/ 19 января 2010

При работе в команде, разрабатывающей нестандартное оборудование, я использовал отличный эмулятор терминала под названием ZTerm (я думаю, что он доступен только для Mac). Это позволяет вам составлять сценарии ответов, которые позволили мне завершить разработку программного обеспечения в соответствии с нашей предварительно согласованной спецификацией, пока микросхемы нестандартного контроллера еще находились на стадии итерации проекта.

...