0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
1

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

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

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

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

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

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

Заранее благодарю за любую наводку в этом вопросе.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2009, 09:52
Ответы с готовыми решениями:

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

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

Настройка последовательного порта
Добрый день. Возникла проблема с настройкой и, соответственно, использованием последовательного...

приемник последовательного порта
как реализовывается приемник последовательного порта ???? и передатчик (= если не лень на...

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

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


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

А если все-таки хочется получить прямой доступ к регистрам порта, посмотри на библиотеку WinIO: http://www.internals.com/
0
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/seri... itter.html

Я прорабатывал этот вариант, применения этого кабеля невозможно, все Комы заняты под другие устройства: модем, сканер штрих-кода и т.д.
0
Эксперт С++
2921 / 1270 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
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
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
01.05.2009, 11:46  [ТС] 14
Сорри, не провтыкал, как увидел кабель, так и вспомнил один из методов мониторинга через такой кабель. Как я писал вначале, мне не подходит готовое приложение, и боюсь заказчик не раскрутится еще на 129$, а сбросить их со своего стороны - тогда проект будет мне невыгоден.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2009, 11:46

Программирование последовательного порта
Добрый день, камрады. Не знаю в верный ли подраздел форума я обращаюсь! Прошу строго не судить! Но...

Распределение данных с последовательного порта
Имеется такой код в VB6 Private Sub Command1_Click() MSComm1.CommPort = 2 MSComm1.Settings =...

Чтение из последовательного порта по протоколу RS232
Добрый день , собственно имеется такой вопрос, работаю с устройством , необходимо реализовать...

20-40 выключателей в данные для последовательного порта
В электронике не разбираюсь, просто толкните в нужном направлении. Есть несколько кнопок - 20-30...


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

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

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