Как создать эмулятор COM (и другого устройства) в C #?

2

У нас есть несколько устаревших компонентов, которые взаимодействуют с COM-портами, USB и т.д.

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

Я посмотрел вокруг, и я нашел проект Sourceforge Com0Com, но он довольно старый API и в С++.

Я понимаю, что я могу решить эту проблему, создав драйвер линейного принтера и никогда не взаимодействую с COM-портами, зарегистрированными в системе. Некоторые ссылки на это также будут высоко оценены.

Кто-нибудь это сделал? Как создать системные ресурсы в .NET?

Теги:
emulation
.net-3.5
device-driver

2 ответа

1
Лучший ответ

Вам нужно будет написать драйвер, как работает Com0Com. Если эти компоненты запущены в процессе, вы можете захватить функции Windows API, например Microsoft Detours.

Для любого решения требуется C/С++, этот код нельзя писать на управляемом языке. Хотя обход может быть технически возможным, просто очень трудно получить право. Вы можете купить решение, хотя ваши требования не являются редкостью, хотя и датированы. Достаточно достаточно, чтобы найти одно может быть немного сложнее.

1

Кто-нибудь это сделал?

Чтобы добавить к тому, что сказал nobugz:

  • Когда я написал эмулятор COM-порта, я сделал это, начиная с примера драйвера последовательного порта в DDK (serial.sys).

  • Когда я написал обертку/регистратор COM-порта, я сделал это, начиная с образца драйвера фильтра параллельного порта в DDK (parport.sys).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню