Я работаю над драйвером, который говорит с устройством через последовательный порт в C#. Я не всегда имею устройство в наличии, чтобы сделать испытание физических свойств с. Существует ли способ, которым я могу моделировать устройство на последовательном порте так, чтобы он ответил идеальным способом?
Единственное, с чем я столкнулся, это убедиться, что разрешение существует на другой схеме. Обычные вещи - если эти разрешения исчезнут по какой-либо причине, вы услышите об этом.
-121--1105175-Есть несколько различий высокого уровня, которые приходят мне на ум. Некоторые из них являются обобщениями и должны иметь префикс «Часто»... или «Некоторые компиляторы»..., но ради читаемости я оставлю это.
Получите второй COM-порт и используйте нуль-модемный кабель для подключения COM-портов, чтобы две программы C # могли взаимодействовать друг с другом.
Какой вид драйвера? Если это драйвер последовательного интерфейса, то это становится довольно сложно.
Однако, если ваш драйвер является уровнем приложения над драйвером устройства Windows, то он довольно легко заменить поведение ввода / вывода, изменяя строку, переданную в CreateFile
, или любой слой сверху этого C # использует.
== Подробнее ==
Так как вы используете библиотечные инструменты .NET, этот метод может быть слишком yucky, чтобы беспокоить. Однако идея состоит в том, чтобы заменить там, где в какой-то момент ваш код говорит открытый COM1:
или что-то еще. Измените, что быть файлом, который имеет моделируемые данные, скажем, «C: /COM1Testdata.txt». Дополнительный код эмуляции, который распознает содержимое файла для пауз и / или ответов, может быть полезен для некоторых протоколов. Данные, которые записываются в порт, могут быть зарегистрированы или игнорированы, в зависимости от ваших требований.
При работе в команде, разработав некоторые пользовательские аппаратные средства, я использовал отличный эмулятор терминала под названием Zterm (только доступно для Mac, я полагаю). Это позволяет вам ответить на скрипт, которые позволили мне завершить программное обеспечение нашим предварительно согласованным спецификациям, в то время как чипы пользовательских контроллеров все еще были на этапе разработки итерации.
Если вы работаете в VM, вы можете прикрепить вещи к последовательному порту Отказ QEMU, например, позволяет подключить виртуальный последовательный порт к TTY, который вы можете взаимодействовать с вручную, либо с программой, работающей на хосте.
Есть несколько различий на высоком уровне, которые приходят к моему разуму. Некоторые из них являются обобщениями и должны быть префиксированы «часто ...» или «некоторыми компиляторами ...», но ради читабельности я оставлю это.
Я использовал COM0COM на некоторое время и написал код симулятора / эмулятора.