-
Кратко говоря, стараюсь реализовать следующую задачу: программа должна отлавливать сообщения, посылаемые ком портом в стороннее приложение и немного корректировать их, далее получать ответ от приложения, и тоже, корректируя их отправлять обратно на порт.
Проблема в следующем: приложение стороннее работает напрямую с портом, без сторонних драйверов, а значит написание драйвера не вариант, (или ошибаюсь?). номер ком-порта определен заранее - 4-й и изменить я этого для программы не смогу, получается не могу стать приложением работающим с 4-м портом, а ты программу связать с собой как с 6-м например. (хоть может и в этом не прав).
Я думаю, единственный выход, это ловить какие - то апишные функции в самой программе, и действовать на значения их аргументов. (правильно мыслю?)
Много похожих тем есть , ул и форумы обысканы, но готового решения так и не нашёл, лишь в основном мутную воду, у меня месяц есть на реализацию, помогите кто чем может) заранее благодарен)
-
Перехватываешь CreateFile с целью отловить хэндл открытого СОМ порта (определишь это по имени), после лови ReadFile с запомненым хэндлом и меняй как вздумается.
-
разве ком порт так просто даст возможность получить данные, он же только одну прогу допускает одновременно?
-
> reqyzik (19.03.13 14:12) [2]
Ты подменил CreateFile....
Другой вариант - есть такая штука, как виртуальные порты.. например eltima software virtual serial port.
-
И да, а при чем тут Corba?? Не всякий COM == RS232 LOL
PS: Кстати, кроме виртуальных портов, могут быть и просто свободные физические порты. Если просто для отладки, разобраться там с протоколом например, то вполне можно и их задействовать...
-
"Вариант", можешь подробней?)
-
Если про eltima software virtual serial port - это программное обеспечение, которое позволяет создать уже связанные пары COM портов. Один из этих портов ты отдаешь нужной программе, а другой слушаешь сам или пишешь в него сам. Устройство же подключено к реальному порту, который ты тоже пишешь и читаешь своей программой. Есть вроде аналогичный софт и других производителей. Имея свободные физические порты (свободную пару) на компе ты можешь обойтись и без виртуальных портов. Единственно, что ради подмены данных занимать постоянно два лишних реальных порта не стоит на мой взгляд. Это делается только в момент отладки и изучения протоколов обмена. Хотя если они(порты) не задействованы, то как не тиражируемый вариант для себя вполне нормально.
-
"Вариант" спасибо) а есть исходники для изучения на подобе этой проги?
-
"Вариант" спасибо) а есть исходники для изучения на подобе этой проги?
|