Может ли COM-порт Windows использоваться двумя программами, работающими на одном ПК, для обмена данными между процессами? Наша конечная цель - написать программу, которая обменивается данными через COM-порт для управления оборудованием. Поскольку оборудование недоступно, мы хотим эмулировать оборудование в программе, которая читает из виртуального COM-порта и отвечает.
Тривиальный эмулятор - это программа, которая ожидает чтения байтов из COM-порта и отвечает записью в COM-порт. Для начала значения этих сообщений можно жестко запрограммировать.
Итак, у меня есть две программы, написанные на C / C ++, использующие функции ReadFile
, WriteFile
, предоставляемые окнами для чтения и записи в файл. Этот подход не будет работать из-за конфликта доступа. Поэтому мне было интересно, ошибочен ли наш подход к самому эмулятору.
Я новичок в программировании на базе Windows, хотя у меня есть опыт программирования в других областях. Любая помощь будет принята с благодарностью.
Обновление:
Решение:
- Установленный драйвер виртуального последовательного порта 7.1 от Eltima Software (пробная версия)
- Добавлена пара виртуальных портов (например, COM1 и COM2)
- Программа контроллера обменивается данными через COM1.
- Программа-эмулятор обменивается данными через COM2.
- Программное обеспечение Eltima заботится о передаче данных между двумя портами.