Обнаружение данных последовательного порта без удаления данных из буфера
Я использую библиотеку bgapi для управления связью через Bluetooth с помощью USB-ключа. Библиотека примет команду из моей программы и будет обрабатывать все последовательные соединения через COM-порт в своем собственном потоке. Я хочу вернуть все данные, поступающие из COM-порта, но библиотека дает мне доступ только к тому, что она выберет для анализа.
Я мог бы зайти в библиотеку bgapi и изменить функциональность кода, настроив переменную или функцию для возврата данных, которые в данный момент читаются, но другие люди также работают над этим проектом, и изменение библиотеки может вызвать большие проблемы или сделать недействительными обновления.,
Могу ли я получить доступ к данным, поступающим в COM-порт, не вмешиваясь в библиотеку, например, прослушивая данные, проходящие через COM-порт, не вынимая их из буфера для библиотеки? Библиотека держит порт открытым для себя и отбрасывает лишние данные, которые я хочу увидеть.
1 ответ
Я не уверен, что полностью понял, как работает ваша библиотека, поэтому я не уверен, что это сработает для вас, но вы все равно можете попробовать.
Что вы можете сделать (в Windows), так это использовать Termite как посредника с переадресацией портов.
Поскольку вы, вероятно, хотите хранить все внутри одного компьютера, вы можете использовать com0com для создания пары виртуальных портов.
Чтобы активировать переадресацию портов в Termite, вам нужно перейти в настройки, а затем переместиться в нижнюю левую часть экрана. Вы увидите меню, в котором вы можете выбрать порт, который хотите переадресовать. На следующем снимке экрана я могу переслать с COM1 на COM2:
После выбора правильных настроек для COM1 вы принимаете и подключаетесь, нажимая на большую кнопку с надписью COM1 57000 бит / с... и вы увидите все входящее на COM1, перенаправленное на COM2 и отображенное на консоли.