2012-02-15 3 views
0

Я унаследовал довольно старое программное обеспечение, которое подключается к последовательному порту, форматирует входящие данные и отображает их и сохраняет их. Программное обеспечение написано в старом компиляторе Borland (C++ Builder 5.0) и использует CreateFile для открытия порта, а затем SetupComm для параметров комманды.Windows: C++: перенаправление из файла в последовательный порт (ввод)

Кто-то попросил меня добавить новые функции: Включить запись записанного сеанса и воспроизвести его, как если бы он поступал в последовательный порт.

Я рассматриваю несколько возможных решений, самых простых и быстрых, включая второй последовательный порт и нуль-модемный кабель. Это не совсем то, что они имели в виду, но оно решает проблему. Однако предположим, что у меня нет этой опции. Есть ли способ перенаправить коммуникационный порт в файл, чтобы при открытии «COM-порта» он открыл файл и прочитал его? Или есть простой параллельный способ открыть файл (например, тот же вызов CreateFile) и обходить вызов SetupComm, чтобы при желании вход был получен из файла?

Поскольку у меня есть простое решение HW, я не хочу вкладывать деньги в переписывание кода, но если есть простой способ обойти это, я хотел бы знать.

+1

Если у вас есть доступ к исходному коду, вы не можете просто изменить вызов 'CreateFile', чтобы открыть нужный файл вместо последовательного порта? –

+1

Существует множество виртуальных драйверов последовательного порта, которые позволяют либо настроить порт для чтения из файла, либо настроить один порт для чтения со второго виртуального порта (кабель нульмодема в программном обеспечении) –

+0

eznme - это сложнее, чем что - это была моя отправная точка. Проблема заключается в типе типа ввода-вывода, который ожидается, и обратных вызовах к серийным событиям, которые не происходят, и т. Д. –

ответ

1

Я как-то награжу репутацию Юджина Рика, это было его предложение. То, как я это делал, было с пакетом com0com, который представляет собой виртуальный COM-порт с открытым исходным кодом. Я написал процедуру, которая отправляет в один виртуальный COM-порт, подключив COM-порт оригинального программного обеспечения к другому, подключенному к нему, и существует функция funcationality.

Смежные вопросы