2010-05-17 3 views
4

Возможно ли считывание с COM-порта, который уже используется в Windows XP?Монитор COM-порта уже используется

Я хотел бы видеть связь между некоторым программным обеспечением и устройством, подключенным к последовательному устройству. Я написал небольшую программу, использующую C# для мониторинга COM, но как только он будет использоваться другим устройством, он не позволит вам снова открыть его. Как можно контролировать COM-порт, который уже используется?

Я открыт для стороннего программного обеспечения.

ответ

6

PortMon является классическим монитором COM-порта. Он должен быть запущен до того, как программа откроет COM-порт, но часть мониторинга может быть включена/отключена.

+0

Хороший ресивер, чтобы запустить PortMon до того, как другая программа откроет COM-порт. – Bratch

2

Вы можете использовать Portmon for Windows для контроля за деятельностью. Другим способом я это делаю с помощью какого-то оборудования и ноутбука. Я не уверен, как вы можете контролировать его с помощью приложения C#. Как только вы подключитесь к нему и попытаетесь снова подключиться, он уже будет использоваться.

Также проверить это, это как-то связаны, с отметкой о том, как работает PortMon:
Serial Port Redirection or Splitting - Stack Overflow

Если у вас есть или может получить больше, чем один COM-порт, можно использовать разветвитель и сделать мониторинг с другой порт.

8

Да, это технически возможно. Вам понадобится драйвер фильтра, тип драйвера устройства, который внедряет себя перед драйвером родного последовательного порта. Он получает трещину в драйверах IRP перед отправкой их на обычный драйвер.

Это метод, используемый служебной программой PortMon SysInternals. Однако вы не можете написать такой драйвер в коде C#, CLR не может быть загружен в кольцо 0. По крайней мере, пока суперсекретный проект Midori не увидит свет дня.

Драйверы COM-фильтра довольно распространены, например, this one. Вы должны сделать некоторые поисковые запросы, чтобы найти тот, у которого есть оболочка .NET.

2

com0com может удовлетворить ваши потребности. Это сработало для меня.

+0

Я собирался предположить, что – Tim

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