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

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

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

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

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

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

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


person Jason    schedule 19.01.2009    source источник


Ответы (3)


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

or

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

person GeekyMonkey    schedule 19.01.2009

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

person JAG    schedule 19.01.2009

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

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

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

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

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

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