0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
|
|
1 | |
Мониторинг последовательного порта26.04.2009, 09:52. Показов 4697. Ответов 13
Метки нет (Все метки)
Добрый день коллеги,
работаю сейчас над проектом, где надо мониторить все устройства, подключенные к Ком портам. Бьюсь над этим уже вторую неделю, безрезультатно. Проблема в том, что Винда (XP/2003/2000) не допускает одновременно подключаться двум программам к порту. Прошу не предлагать готовые проги, типа Free Serial Port Monitor, мне они не подойдут, потому что необходимо потом обрабатывать полученные данные. В идеале устроят созданные библиотеки для мониторинга или идеи, в какую сторону копать. Пытался хукнуть процесс, который обрабатывает Комы, но он от svchost, и ОС не дала мне туда доступа. Заранее благодарю за любую наводку в этом вопросе.
0
|
26.04.2009, 09:52 | |
Ответы с готовыми решениями:
13
Как принять число из последовательного порта и отобразить его в edit_box? Программирование последовательного порта. Настройка последовательного порта приемник последовательного порта |
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 |
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 |
Спасибо за наводку, сейчас пробью этот вариант.
Пробежался я по этой книге, в глубь конечно сильно не копал. В принципе уже кое-что, как-то можно получить доступ к регистрам порта через этот драйвер. Но стоит вопрос - как организовать синхронизацию моей программы и, скажем, драйвера модема? Хотя тут можно как-то прерывания порта использовать для оповещения о приходе данных. Но вот другая проблема более сложная - как читать данные, которые комп передает на модем? Ведь в микросхеме регистр приема и передачи находится по одному адресу, т.е. если мы записываем данные, то они идут на передачу, а считать мы можем только инфу, что пришла. Т.о. инфа на передачу будет потерена. Или я ошибаюсь? Еще идеи?
0
|
48 / 48 / 8
Регистрация: 30.01.2009
Сообщений: 168
|
|
30.04.2009, 22:05 | 10 |
Рылся сейчас в своих заначках на будущее, нашел вот что: в состав Windows XP входит такая штука - MSCOMM32.OCX. Работать с ней не приходилось, определенно могу сказать только что этот ActiveX предназначен как раз для работы с портами.
0
|
2924 / 1274 / 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
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
01.05.2009, 11:28 | 13 |
Какой кабель????
0
|
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 16
|
|
01.05.2009, 11:46 [ТС] | 14 |
Сорри, не провтыкал, как увидел кабель, так и вспомнил один из методов мониторинга через такой кабель. Как я писал вначале, мне не подходит готовое приложение, и боюсь заказчик не раскрутится еще на 129$, а сбросить их со своего стороны - тогда проект будет мне невыгоден.
0
|
01.05.2009, 11:46 | |
01.05.2009, 11:46 | |
Помогаю со студенческими работами здесь
14
Программирование последовательного порта Распределение данных с последовательного порта Чтение из последовательного порта по протоколу RS232 20-40 выключателей в данные для последовательного порта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |