Доброго времени суток!
Суть проблемы, в общем, проистекает из того, что необходимо перехватывать общение одной программы с неким устройством через COM-порт. Причём делать это нужно из уже существующей программы на Qt C++ (допустимы вставки платформозависимого ориентированного на Windows кода) без использования сторонних программ.
Рассматривал вариант перехвата вызовов функций Win32 API для записи и чтения с COM-порта, но версия Detours для 64-бит стоит немереных денег, так что этот вариант отпал.
Остаётся вариант либо снифферить (извиняюсь, если использовал неправильный термин) сам COM-порт, либо создавать виртуальный COM-порт между программой и реальным COM-портом, общение которых нужно перехватывать. Но оба этих варианта требуют, как я понимаю, переписывания драйвера COM-порта, что тоже не слишком радует в силу затратности по времени и усилиям.
В связи с этим, вопрос: нет ли какого-то готового решения (имеющей такой функционал библиотеки, например) для этого, которое можно впихнуть в уже существующую программу? Честно пытался гуглить, но как-то ничего внятного не нашёл. Заранее спасибо за ответы!
Микросхема com порта MAX232.Как она работает и как ее проверить
Регистрация: 15.02.2010
Сообщений: 15,410
но версия Detours для 64-бит стоит немереных денег, так что этот вариант отпал. |
Сделайте сплайсинг сами.
Но оба этих варианта требуют, как я понимаю, переписывания драйвера COM-порта, что тоже не слишком радует в силу затратности по времени и усилиям. |
Все зависит от в каком режиме открывается порт, а то можно попробовать просто повесится и слушать. Ну или сделайте прогу редирект между физ портом и виртуальным для программы.
Источник: www.programmersforum.ru
Advanced Serial Port Monitor — Перехватчик данных из нашей программы Advanced Serial Port Monitor. Как сделать serial port sniffer
Для Win2000 — Windows 11 (2019) (Server, x86, x64). Последняя версия: 4.4.21 build 527. 27 мая 2022.
Что представляет собой serial port sniffer – это программа, которая наблюдает за передачей данных другой программой и как бы «вклинивается» между последовательным интерфейсом и изучаемой программой. Перехватчик данных последовательного порта позволяет изучать особенности работы Вашей или другой программы, работающей в Windows. Если изучаемая программа разработана Вами, то перехватчик данных последовательного порта превращается в отладчик RS232 интерфейса, который позволит вам отследить ошибки, возникающие во время обмена данными. Режим мониторинга данных последовательного порта в нашей программе называется «Наблюдатель» и вызывается из меню «Режим» в главном окне программы.
Установка драйверов для COM порта
Переключение в режим перехватчика данных последовательного порта должно производиться ДО запуска исследуемой программы. Если не сделать этого, то в последствии serial port sniffer уже не сможет получить доступ к последовательному порту и соответственно не сможет выполнять свои функции.
В режиме перехватчика данных последовательного порта программа отслеживает весь трафик и передаваемый, и принимаемый. Отсылаемые данные при этом могут подсвечиваться на экране программы. Данную возможность можно включить в опциях на закладке «Прочее / Вид данных «.
Наш перехватчик данных последовательного порта позволяет наблюдать за передачей данных на экране в произвольном виде (шестнадцатеричном, десятичном или любом другом). Это позволяет, не покидая перехватчик данных последовательного порта находить повторяющиеся последовательности блоков данных, и выявлять закономерности прохождения данных.
Другим важным свойством нашего перехватчика данных последовательного порта является возможность сохранять отправляемые и принимаемые данные в файл для последующего анализа. Режим формирования файлов перехватчик данных последовательного порта гибко настраивается, что позволяет экономить время при анализе большого объема данных записанном программой.
Нашу программу очень легко превратить в мощный и гибко настраиваемый наблюдатель данных. Для этого достаточно скачать и установить программу. Затем запустите программу. Выберите в главном меню «Режим» режим «Наблюдатель». Затем выберите из списка последовательный порт и нажмите кнопку «Открыть».
Не забудьте, что это нужно сделать до запуска исследуемой программы. И все в Ваших руках универсальный инструмент для решения широкого круга задач.
По сравнению с другими serial port sniffer Advanced Serial Port Monitor обладает несколькими уникальными возможностями:
- Перехватчик данных последовательного порта реализует возможность работать во всем семействе операционных систем Windows, начиная с Windows 2000 и заканчивая Windows 10 x64;
- Перехватчик данных последовательного порта позволяет наблюдать за передачей данными по всем последовательным портам, установленным в системе. Номер последовательного порта может лежать в диапазоне от 1 до 255;
- Перехватчик данных последовательного порта дает Вам возможность наблюдать за трафиком, передаваемом во время Dial- Up соединения.
Все возможности перехватчика данных последовательного порта реализованы в нашей программе Advanced Serial Port Monitor . Скачайте пробную версию сейчас это быстро и бесплатно!
Источник: www.aggsoft.ru
cnc-club.ru
эта прога позволяет вклиниться в обмен и прицепить еще одну строну, а туда хоть терминал текстовый, хоть сниффер какой, как уж вам удобно.
Re: Посоветуйте сниффер СОМ порта
Сообщение meganom » 27 мар 2019, 18:36
Duhas писал(а): эта прога позволяет вклиниться в обмен и прицепить еще одну строну, а туда хоть терминал текстовый, хоть сниффер какой, как уж вам удобно.
При попытке вклинится программа использующая этот порт начинает ругаться на то что с портом что то не то.При остановки эмуляции все начинает работать нормально , возможно я не знаю как правильно пользоваться Virtual Serial Ports Emulator
Re: Посоветуйте сниффер СОМ порта
Сообщение Remton » 27 мар 2019, 21:33
Пользовался Advanced Serial Port Monitor.
Нужно было по работе, впечатления самые положительные.
Если жалко, либо нецелесообразно отдавать 1 500 руб, в сети полно лекарств, хотя я не сторонник таких методов.
Паял кабель, как на сайте разработчика.
https://www.aggsoft.ru/rs232-pinout-cab . -cable.htm
К сожалению, встроенное средство анализа обмена скудное, если не сказать никакое.
Тут либо вручную, либо сторонними средствами, как-то так.
Источник: www.cnc-club.ru