Как создать эмулятор COM (и другого устройства) в C #? - PullRequest
2 голосов
/ 06 января 2010

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 06 января 2010

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

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

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

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

1 голос
/ 06 января 2010

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

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

...