Перейти к содержимому


Фото
- - - - -

Как создать виртуальный COM-порт?


  • Please log in to reply
4 ответов в этой теме

#1 GeoJ

GeoJ

    Member

  • Posters
  • 195 Сообщений:

Отправлено 09 Февраль 2022 - 17:07

Возможно, я какие-то слова неправильно написал, поэтому попытаюсь на пальцах объяснить, что мне нужно. Итак...

 

Есть устройство (например, сканер штрихкодов), которое подключено к COM-порту (либо к USB, но эмулирует COM-порт). И есть программа, которая мониторит соответствующий COM-порт и, получив данные, выполняет с ними какие-то действия. Иногда в работе устройства (или передачи данных) возникают сбои, и в программе возникает ошибочная ситуация. Вроде бы, ошибочная ситуация должна корректно обрабатываться. Но не обрабатывается. Метод вдумчивого всматривания в исходники дает сбой. В общем, надо прогонять под отладчиком, но для этого нужно создать "аварийную ситуацию". Не знает ли кто-нибудь простую программу, которая при запуске создавала бы виртуальный COM-порт (эмулируя внешнее устройство), данные в который она загоняла бы сама в соответствии с настроенными правилами? А если бы она могла еще и ошибочные ситуации эмулировать, было бы вообще замечательно.


Программное обеспечение не должно быть старым. Программное обеспечение не должно быть новым.
Программное обеспечение должно быть адекватным решаемым задачам.

#2 SergSG

SergSG

    The Master

  • Posters
  • 14 425 Сообщений:

Отправлено 09 Февраль 2022 - 19:24

Com-порты работают на драйверах, в т.ч. и USB-Com. А эмулировать драйвер довольно проблематично. Как вариант, можно попробовать логировать в текстовый файл посылки, а потом уже их анализировать. Ну или соединить два Com-порта и использовать какой нибудь терминал для эмуляции устройства.



#3 amorozov

amorozov

    Member

  • Members
  • 163 Сообщений:

Отправлено 09 Февраль 2022 - 19:46

В Гугле куча ссылок по запросу "windows virtual com port". Топик на SO: https://stackoverflow.com/questions/1605721/faking-an-rs232-serial-port

#4 GeoJ

GeoJ

    Member

  • Posters
  • 195 Сообщений:

Отправлено 10 Февраль 2022 - 11:01

Во-первых, я был не до конца уверен в ключевых словах для поиска. Начал поиск вообще с "эмулятор COM-порта"? И даже установил какую-то утилиту, но оказалось, что она работает с реальным COM-портом, то есть это не совсем то, что мне надо. Затем были утилиты, которые эмулировали нуль-модемное соединение, то есть связывали между собой два COM-порта. Были утилиты, что обращение к компьютеру по TCP/IP сбрасывали в виртуальный COM-порт. А мне требовалась именно программа на компьютере, которая создавала бы виртуальный порт и сама писала бы туда данные, в соответствии с заданными мной правилами. И вот такую программу я так и не нашел, а проблему решил через VSPE (Virtual Serial Port Emulator), создавший виртуальный порт, с которым могут одновременно работать два приложения, а также использовал некую программу-терминал, что пишет в порт. А тестируемая мной программа получала эти данные и обрабатывала их.

 

Всем спасибо.


Программное обеспечение не должно быть старым. Программное обеспечение не должно быть новым.
Программное обеспечение должно быть адекватным решаемым задачам.

#5 WormJekas

WormJekas

    Newbie

  • Members
  • 0 Сообщений:

Отправлено 01 Май 2023 - 21:01

Спасибо за наводку про vspe. Там нужно создать сначала виртуальный порт типа connection. Затем уже tcp клиент. Привязанный к этому порту. Далее уже работать как с обычным компортом. На том конце у меня китайская плата на ch9121. Но может быть и пк с реальным ком портом и тот же vspe с созданным в нем tcp server соединением. Отлично все работает.


Читают тему: 0

0 пользователей, 0 гостей, 0 скрытых