Подтвердить что ты не робот

Прослушивание портов Serial Com, которые используются

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

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

(я нашел этот, но я не думаю, что это сработает для меня.)

4b9b3361

Ответ 1

Я использовал com0com - это отлично подходит для настройки виртуальных COM-портов, что совсем не помогает вам.

Интерфейс COM-порта в основном представляет собой "файл чтения". Мое приложение выдает исключение, когда я пытаюсь подключиться к COM-порту, который уже имеет другой экземпляр, считывающий из него. Я не уверен, что вы можете попробовать открыть его как "только для чтения" вместо чтения-записи, но стоит попробовать.

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

Другим возможным решением может стать сбор кабеля rs232, который выдает последовательный сигнал на другой последовательный порт.

Или еще одна возможность - программа Serial Sniffer (или open источник сниффер).

Или попробуйте hub4com app с того же сайта com0com!

Ответ 2

Есть ли способ "среднего человека"

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

Канонический пример такого драйвера - почтенная утилита SysInternals PortMon. Показывает все, что приложение отправляет и получает в/из последовательного порта, включая конфигурацию и данные. Есть много таких приложений, просто Google "драйвер фильтра последовательного порта" (тяжелый для образцов исходного кода) и "монитор последовательного порта".

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

Ответ 3

Я был на том же пути. Аппаратный сплиттер является самым простым решением.

Настройка hub4com будет включать мастер "Добавить новое оборудование". Если у вас много машин, географически разделенных машин или пользователей, которые технически не сообразительны и не имеют необходимых разрешений, установка может быть неудобной.

Если это устаревшее приложение, оно выполняется в ntvdm? Если это так, вы можете запустить его в DosBox и изменить код DosBox для записи в файл в дополнение к отправке/приему в/из последовательного порта. DosBox также является кросс-платформой.

Ответ 4

Вы также можете использовать TCPcom, чтобы преобразовывать данные в Ethernet-пакеты и отслеживать их с помощью Wireshark, а также передавать их в другом месте. Затем вы используете другой экземпляр TCPcom для пересылки его на любой COM-порт, который вам нравится, включая виртуальный COM-порт. Теперь вы по существу захватили данные через Ethernet. https://sourceforge.net/projects/combytcp/?source=directory