Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 109
от 20.05.2005, 00:00

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 2


Вопрос № 20833: Здрысть, уважаемые эксперты! Подскажате, плиз, с какой стороны программить ком порт? Не обязательно писать драйвер, достаточно проги, которая будет хавать сигналы с порта. Если можно, дайте пример кода на C++/C-sharp под .NET или любую другую пла...

Вопрос № 20833
Здрысть, уважаемые эксперты!
Подскажате, плиз, с какой стороны программить ком порт? Не обязательно писать драйвер, достаточно проги, которая будет хавать сигналы с порта. Если можно, дайте пример кода на C++/C-sharp под .NET или любую другую платформу. Если есть, скиньте ссылочку по теме. Спасибо!
Отправлен: 13.05.2005, 23:51
Вопрос задал: Дрищев Василий (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Jadd
Здравствуйте, Дрищев Василий!
Копать можно в сторону функции WinAPI CreateFile. В MSDN подробно расписаны варианты параметров для данного случая, а так же как настроить baud rate и тп. Т.е. главное, что делает эта функция - открывает нужный нам порт и возвращает, в случае удачи, хэндл порта. Отсюда и надо плясать. А дальше - дело техники. ReadFile, WriteFile - чтение/запись в порт/из порта. Ну а написать функцию, которая будет "слушать" порт - задача одновременно тривиальная и нетривиальная. Поясню. Можно попытаться просто читать состояние порта. А можно, что более профессионально, пользоваться такими средствами, как порт завершения ввода вывода (IO Completion Port). Это метод ассинхронной передачи данных. Удачи.
Ответ отправил: Jadd (статус: 3-ий класс)
Отправлен: 14.05.2005, 10:22
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое, очень полезная для меня информация!

Отвечает: Pushkin
Здравствуйте, Дрищев Василий!
1. Открываем com-порт как обычный (или почти как обычный) файл функцией CreateFile.
2. Настраиваем com-порт функцией SetCommState, в качестве параметра передаем структуру DCB, возвращаемой функцией GetCommState.
3. Осуществляем чтение и запись данных функциями ReadFile, WriteFile.
Чтение лучше производить в отдельном потоке. После вызова функции ReadFile запускают функцию WaitForSingleObject, которая ждет в течении времени, указанного в параметре TIMEOUT.
4. После работы с портом необходимо закрыть его CloseHandle.
Ответ отправил: Pushkin (статус: 2-ой класс)
Отправлен: 15.05.2005, 20:29


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное