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

StackOverflow https://stackoverflow.com/questions/457971

Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

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

или

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

Другие советы

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

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

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

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

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

Вы также можете протестировать 1 и 2, выполнив следующие действия:

  • Написание программы, которая выдает себя за весы, отправляя тип данных, которые будут отправлять весы.
  • Запуск этой программы для отправки данных вне последовательного порта
  • Используя нуль-модем соединить два последовательных порта последовательно (чтобы данные, отправляемые с одного порта, поступали другим в ваше программное обеспечение).
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top