Как протестировать интеграцию последовательного/гипертерминала с C#?
-
19-08-2019 - |
Вопрос
Мне нужно разработать программное обеспечение для весов USB, которые при нажатии кнопки отправляют последовательную связь через USB.Я вижу значения в HyperTerminal.
Я собираюсь использовать классы .NET для последовательной связи для перехвата данных.
Проблема в том, что у меня нет масштаба.Весы подключены к удаленному компьютеру, к которому я могу подключиться по протоколу RDP.Когда я хочу протестировать, я могу попросить клиента нажать кнопку на весах.
Я не могу просить клиента нажимать кнопку 100 раз в день, мне нужно иметь возможность развиваться, имея достаточно хорошее представление о том, что будут сообщать весы, и тестировать только тогда, когда я думаю, что у меня есть решение.
Я ищу что-то локально, что может имитировать масштаб и отправлять в мои последовательные классы .NET тот же результат, что и масштаб.В идеале, если бы я мог записать данные весов, а затем воспроизвести их на другом компьютере, это было бы идеально.
Как бы я это сделал?
Решение
1) Абстрагируйте свой коммуникационный код.В тестовом режиме подайте логическую функцию из потока файлов данных, а не из последовательного потока.
или
2) Если у вас есть 2 последовательных порта (или два компьютера), установите приложение-эмулятор масштабирования, которое передает данные через один порт, и подключите его к другому порту, на котором работает ваше программное обеспечение.
Другие советы
Если вы выберете маршрут эмуляции последовательного порта, взгляните на com0com . Я все время использую его для фальсификации связи с лабораторными приборами, и это прекрасно работает. Очень полезно, когда у вашего ноутбука нет последовательных портов.
У вас есть две проблемы:
- Протестируйте свои последовательные классы .NET, чтобы убедиться, что они могут обрабатывать получение данных (любых данных) через последовательный порт.
- Протестируйте свое приложение, чтобы убедиться, что оно может обрабатывать данные определенного типа, которые вы получаете от весов.
Вы можете протестировать 1.прикрепив все, что может генерировать данные (например,другой компьютер с Hyperterminal) к локальному последовательному порту вашего компьютера.
Вы можете протестировать 2.путем (в целях тестирования) замены ваших последовательных классов программным обеспечением, которое действует как «фиктивный объект» для комбинации «последовательные классы + масштаб» (т.е.который передает в вашу программу, используя API, который будут использовать ваши последовательные классы, данные, которые вы ожидаете получить от весов).
Вы также можете протестировать 1 и 2, выполнив следующие действия:
- Написание программы, которая выдает себя за весы, отправляя тип данных, которые будут отправлять весы.
- Запуск этой программы для отправки данных вне последовательного порта
- Используя нуль-модем соединить два последовательных порта последовательно (чтобы данные, отправляемые с одного порта, поступали другим в ваше программное обеспечение).