Обнюхивание последовательного порта

У меня есть устройство, которое подключается к ПК через USB, которое сопоставляется с виртуальным последовательным портом с помощью драйвера и программного обеспечения, которое подключается к этому последовательному порту и позволяет мне управлять устройством. Я не знаю, какой протокол использует программное обеспечение для подключения к устройству. Я мог бы выяснить протокол, посмотрев на связь между устройством и программным обеспечением, но проблема с последовательными портами заключается в том, что после того, как программное обеспечение подключается к последовательному порту, другое программное обеспечение не может также подключиться к этому порту (что, конечно, имеет смысл).

Поэтому я подумал, что могу написать программу, которая делает следующее:

  1. подключается к виртуальному последовательному порту, на котором находится устройство
  2. создает виртуальный последовательный порт, к которому будет подключаться программное обеспечение
  3. внутренне перекидывает все с первого порта на второй и наоборот, но записывает всю эту информацию в какой-то файл дампа

У меня вопрос: возможно ли создать виртуальный последовательный порт с помощью .NET? Я слышал, что нет, потому что вам каким-то образом нужно создать драйвер или что-то в этом роде, а это требует программирования на уровне ядра, верно? И если это так, то есть ли способ наблюдать за связью между устройством и программным обеспечением без какого-либо связующего программного обеспечения?

Заранее спасибо! Аарон


person Aaron Summernite    schedule 22.01.2012    source источник


Ответы (2)


Вы пробовали Портмон?

Это то, что написано на сайте

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

http://technet.microsoft.com/en-us/sysinternals/bb896644

ИЗВЕСТНАЯ ПРОБЛЕМА: ошибка в PortMon v3.03 (см. здесь ), из-за чего нужный пункт меню «Компьютер» не отображается в некоторых системах. Одним из обходных путей является подключение к локальному компьютеру в v3.02 перед открытием v3.03.

person Shaun07776    schedule 22.01.2012
comment
Я никогда не использовал его, но описание выглядит многообещающе - person Shaun07776; 22.01.2012
comment
Описание действительно выглядит многообещающе. Проблема в том, что в каждом учебнике по PortMon говорится, что вы начинаете сеанс мониторинга, щелкая Компьютер › Подключиться локально в меню приложения, но в моем PortMon вообще нет пункта меню под названием Компьютер, и я не вижу другого способа начать мониторинг. сессия вообще. - person Aaron Summernite; 22.01.2012
comment
Кроме того, в пункте меню «Захват» пункты меню «Захват событий» и «Порты» отключены, а в заголовке окна указано «Не подключено». Я понятия не имею, как подключиться к указанному порту монитора. - person Aaron Summernite; 22.01.2012
comment
Может быть, мы смотрим на это неправильно, так как устройство подключено через USB, вы пробовали отслеживать это вместо этого? - person Shaun07776; 22.01.2012
comment
Кто-то спросил, как контролировать виртуальный последовательный порт по следующей ссылке, и ему сказали, что пользователь Process Monitor может опубликовать сообщение ниже superuser.com/questions/343942/ - person Shaun07776; 22.01.2012
comment
Я скачал Process Monitor, и он, вероятно, будет делать то, что я хочу. Я должен поэкспериментировать с ним некоторое время. Спасибо за ответы! - person Aaron Summernite; 22.01.2012
comment
ссылка v3.02 мертва, к сожалению. - person DBedrenko; 07.11.2014

Если меню Захват/Порты выделено серым цветом, этот метод работает:

Запустите экземпляр portmon, используя portmon /c из командной строки. Затем запустите еще один, используйте ctrl-r с 127.0.0.1 в качестве адреса для подключения к вашему ПК.

person John    schedule 18.04.2015