Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: JasonОтветов: 3

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

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

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

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

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

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

serial-porthyperterminal

Ответы

Ответ 1 · рейтинг 2 · GeekyMonkey

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

or

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

Ответ 2 · рейтинг 2 · JAG

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

Ответ 3 · рейтинг 1 · ChrisW

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

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

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

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы