Как проверить последовательную / гипертерминальную интеграцию с C#?

Мне нужно разработать программное обеспечение для USB-весов, которое, когда вы нажимаете на него кнопку, посылает последовательные сообщения через USB. Я могу видеть значения в HyperTerminal.

Я собираюсь использовать классы.NET для последовательной связи, чтобы перехватить данные.

Проблема в том, что у меня нет шкалы. Весы подключены к удаленному компьютеру, на котором я могу RDP. Когда я хочу проверить, я могу попросить клиента нажать кнопку на шкале.

Я не могу просить клиента нажимать кнопку 100 раз в день, мне нужно найти способ развить достаточно разумное представление о том, о чем будет сообщать шкала, и тестировать только тогда, когда я думаю, что у меня есть решение.

Я ищу что-то локальное, что может имитировать масштаб и отправлять на мои классы.NET Serial те же выходные данные, что и масштаб. В идеале, если бы я мог записать данные весов, а затем воспроизвести их на другом компьютере, это было бы идеально.

Как бы я это сделал?

3 ответа

Решение

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

или же

2) Если у вас есть 2 последовательных порта (или два компьютера), то настройте приложение эмулятора масштаба, которое подключается через один порт, и подключите его к другому порту, на котором работает ваше программное обеспечение.

Если вы выбираете маршрут эмуляции последовательного порта, взгляните на com0com. Я все время использую его для фальсификации связи с лабораторными приборами, и это прекрасно работает. Очень полезно, когда у вашего ноутбука нет последовательных портов.

У вас есть две проблемы:

  1. Протестируйте классы.NET Serial, чтобы убедиться, что они могут обрабатывать получение данных (любых данных) через последовательный порт
  2. Протестируйте свое приложение, чтобы убедиться, что оно может обрабатывать данные определенного типа, которые вы получаете из шкалы.

1. Вы можете протестировать, подключив все, что может генерировать данные (например, другой компьютер с Hyperterminal) к локальному последовательному порту вашего компьютера.

2. Вы можете проверить 2. путем (для целей тестирования) замены ваших последовательных классов программным обеспечением, которое действует как "фиктивный объект" для комбинации "последовательные классы + масштаб" (т. Е. Которая подается в вашу программу с использованием API, который будут использоваться вашими последовательными классами). использовать данные, которые вы ожидаете получить от шкалы).

Вы также можете проверить 1 и 2:

  • Написание программы, которая притворяется шкалой, отправляя тип данных, которые будут отправлены шкалой
  • Запуск этой программы для отправки данных из последовательного порта
  • Использование нуль-модема для соединения двух последовательных портов друг с другом (чтобы данные, отправленные с одного порта, были получены другим в вашем программном обеспечении).
Другие вопросы по тегам