Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
Vicul
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
1

Мониторинг последовательного порта

26.04.2009, 09:52. Просмотров 3296. Ответов 13
Метки нет (Все метки)

Добрый день коллеги,

работаю сейчас над проектом, где надо мониторить все устройства, подключенные к Ком портам. Бьюсь над этим уже вторую неделю, безрезультатно. Проблема в том, что Винда (XP/2003/2000) не допускает одновременно подключаться двум программам к порту.

Прошу не предлагать готовые проги, типа Free Serial Port Monitor, мне они не подойдут, потому что необходимо потом обрабатывать полученные данные. В идеале устроят созданные библиотеки для мониторинга или идеи, в какую сторону копать.

Пытался хукнуть процесс, который обрабатывает Комы, но он от svchost, и ОС не дала мне туда доступа.

Заранее благодарю за любую наводку в этом вопросе.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2009, 09:52
Ответы с готовыми решениями:

Как принять число из последовательного порта и отобразить его в edit_box?
Как принять число из последовательного порта и отобразить его?Работаю с помощью...

Программирование последовательного порта.
Здраствуйте. Помогите кто чем может в поиске литературы, исходников по...

Мониторинг Win
Всем привет! Хочу написать программу для мониторинга действий: изменение...

Подскажите Мониторинг файлов в папке
Подскажите нужна программа которая бы постоянно мониторила наличие файлов с...

Мониторинг файловой активности приложения
Доброго времени суток. Возможно ли с узнать, к каким файлам обращается...

13
Зая
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 14
26.04.2009, 10:04 2
Привет, ты наверное сейчас занят, но может быть ты подскажешь мне что делать с этим?! :Создать панель виртуального прибора. Прибор является источником постоянного напряжения или постоянного тока, в зависимости от состояния соответствующего органа управления. Выходное значение грубо регулируется выбором диапазона, например, 0ё15 В и 15ё30 В. Аналогично для силы тока. Плавная регулировка осуществляется соответствующим ползунком (Slider). Установленное значение отображается на числовом индикаторе. Еще одним ползунком имитируется сопротивление нагрузки. В зависимости от режима работы рассчитывается значение выходного напряжения или тока, расчетное значение выводится в соответствующем поле. Организовать защиту по превышению порога выходного тока. В случае срабатывания защиты выдается соответствующее диагностическое сообщение.....Может знаешь какиенить книги, где описано создание виртуаотного прибора на языке С++?
0
Vicul
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
26.04.2009, 10:46  [ТС] 3
А что через элементы MFC это нельзя сделать? Пусть это не будет так красиво,
но будешь иметь стандартный интерфейс и главное быстро это делается. Ну а потом уже, если проект пойдет, можно уже и красоту навести, используя графические библиотеки.
0
Зая
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 14
26.04.2009, 10:57 4
Да можно конечно, просто я в С++ практически не разбираюсь, недавно начали изучать толькоХотела попросить помощи, может кто уже делал такое
0
Vicul
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
26.04.2009, 11:03  [ТС] 5
Цитата Сообщение от Зая Посмотреть сообщение
Да можно конечно, просто я в С++ практически не разбираюсь, недавно начали изучать толькоХотела попросить помощи, может кто уже делал такое
Значит есть повод начать изучать. Книг по Visual C++ море...... Выбири потолще с примерами и вперед. А искать специфику, да еще не зная языка программирования, пустая трата времени.
0
Шерсть-На-Носу
46 / 46 / 8
Регистрация: 30.01.2009
Сообщений: 168
26.04.2009, 11:03 6
Цитата Сообщение от Vicul Посмотреть сообщение
мониторить все устройства, подключенные к Ком портам
А через драйвер не пробовал?
0
Vicul
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
26.04.2009, 11:06  [ТС] 7
Цитата Сообщение от Шерсть-На-Носу Посмотреть сообщение
А через драйвер не пробовал?
Это как?
0
Шерсть-На-Носу
46 / 46 / 8
Регистрация: 30.01.2009
Сообщений: 168
26.04.2009, 11:17 8
Ищи книжку Несвижского "Программирование аппаратных средств (2004)". К ней прилагается драйвер для WinXP и описано, как с ним работать.
0
Vicul
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
26.04.2009, 13:04  [ТС] 9
Цитата Сообщение от Шерсть-На-Носу Посмотреть сообщение
Ищи книжку Несвижского "Программирование аппаратных средств (2004)". К ней прилагается драйвер для WinXP и описано, как с ним работать.
Спасибо за наводку, сейчас пробью этот вариант.

Пробежался я по этой книге, в глубь конечно сильно не копал. В принципе уже кое-что, как-то можно получить доступ к регистрам порта через этот драйвер. Но стоит вопрос - как организовать синхронизацию моей программы и, скажем, драйвера модема? Хотя тут можно как-то прерывания порта использовать для оповещения о приходе данных. Но вот другая проблема более сложная - как читать данные, которые комп передает на модем? Ведь в микросхеме регистр приема и передачи находится по одному адресу, т.е. если мы записываем данные, то они идут на передачу, а считать мы можем только инфу, что пришла. Т.о. инфа на передачу будет потерена. Или я ошибаюсь?


Еще идеи?
0
Шерсть-На-Носу
46 / 46 / 8
Регистрация: 30.01.2009
Сообщений: 168
30.04.2009, 22:05 10
Рылся сейчас в своих заначках на будущее, нашел вот что: в состав Windows XP входит такая штука - MSCOMM32.OCX. Работать с ней не приходилось, определенно могу сказать только что этот ActiveX предназначен как раз для работы с портами.
0
CheshireCat
Эксперт С++
2913 / 1262 / 114
Регистрация: 27.05.2008
Сообщений: 3,464
30.04.2009, 22:21 11
Все уже украдено до нас!
Serial Port Splitter : http://www.fabulatech.com/serial-port-splitter.html

А если все-таки хочется получить прямой доступ к регистрам порта, посмотри на библиотеку WinIO: http://www.internals.com/
0
Vicul
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
01.05.2009, 09:54  [ТС] 12
Всем спасибо,
Начну с книги, драйвер никакой, возможно он работал на НТи, но на последних Виндах он не возжелал. На форумах народ хреново отзывается об этой книге - куча ошибок, опечаток, и похоже автор писал книгу для ранних Виндов 9x/NT, а для последних ОС проработка была только формальная. Короче по инету погулил и нашел первоисточник этого драйвера , откуда драл его автор (http://www.internals.com/). Причем этот первоисточник без всяких там драконьих правил об авторских правах. Вообщем поставил я его и без проблем добрался до портов Кома. Тут то и возникла другая проблема - это синхронизация моей программы с драйверами устройств подключенных к этим Комам. Т.е. пока я считываю байт инфы, десяток байтов успеваю пропустить, а также у микросхемы есть особенность, если я считываю поступивший байт, микросхема сбрасывает соответсвующий флаг на регистре соостояния, т.о. для программы, которую я мониторю, этот байт будет потерян. Отсюда вывод, перехват инфы нужно делать не на уровне порта (т.е. оставить обработку порта на уровне BIOS - int 14h), а делать мониторинг области памяти, куда int 14h сливает инфу. Ведь когда мы работаем на уровне CreateFile/ReadFile/WriteFile, мы считываем не байт, а всю инфу поступившую на порт, а значит должна быть область памяти, где находится эта инфа. Как найти эту область - идей у меня нет.

>Serial Port Splitter : http://www.fabulatech.com/serial-port-splitter.html

Я прорабатывал этот вариант, применения этого кабеля невозможно, все Комы заняты под другие устройства: модем, сканер штрих-кода и т.д.
0
CheshireCat
Эксперт С++
2913 / 1262 / 114
Регистрация: 27.05.2008
Сообщений: 3,464
01.05.2009, 11:28 13
Какой кабель????
As a result we have created a powerful application Serial Port Splitter that allows you to get access to a device connected to a COM port from several applications simultaneously.
0
Vicul
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
01.05.2009, 11:46  [ТС] 14
Сорри, не провтыкал, как увидел кабель, так и вспомнил один из методов мониторинга через такой кабель. Как я писал вначале, мне не подходит готовое приложение, и боюсь заказчик не раскрутится еще на 129$, а сбросить их со своего стороны - тогда проект будет мне невыгоден.
0
01.05.2009, 11:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2009, 11:46

Мониторинг оборудования. Снизить интервалы опроса
Есть программа, которая работает с ком-портом. Постоянно мониторит...

Тестирование Com порта
Задание: Протестировать com порт в WinXP на языке Visual C++ Протестировать...

Чтение из com-порта
Здраствуйте реализовал простенькую програмку по отправке данных на порт теперь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru