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

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

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

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

Выпуск № 975
от 11.11.2007, 13:35

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


Вопрос № 108163: Здравствуйте. Помогите разобраться с работой с ком портом из под виндоус хр? Сам я мало что понимаю, но очень нужно написать программку и разобраться как она работает на уровне, чтобы мог дописывать потихоньку нужные прибамбасы. Сейчас конкретно нужн...

Вопрос № 108.163
Здравствуйте. Помогите разобраться с работой с ком портом из под виндоус хр? Сам я мало что понимаю, но очень нужно написать программку и разобраться как она работает на уровне, чтобы мог дописывать потихоньку нужные прибамбасы. Сейчас конкретно нужно что бы программа по команде, например по нажатию кнопки, отсылала введенный байт и принимала данные с внешнего устройства. Может у кого есть уже готовая заготовка с исходниками, чтобы можно было разобраться и чайнику? (Настройки порта пока не так важны, главное знать как их настроить). И еще посоветуйте где почитать можно литературу на русском по работе с ком портом? с примерами. Организую связь микроконтроллера с компьютером, программа для контроллера готова и работает. С гипертерминала данные уходят в контроллер, им обрабатываются и отсылаются обратно в гипер. Пока это просто тестовая прога, сейчас необходимо уже написать приложение под виндоус.
Отправлен: 05.11.2007, 20:27
Вопрос задал: Dark128 (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PavelGM
Здравствуйте, Dark128!

Да вообщем-то все достаточно просто - в Windows COM-порты как файлы

1. Открываем порт
hCom := CreateFile('com1',
GENERIC_WRITE or GENERIC_READ,
0,
nil,
OPEN_EXISTING,
0,
0);
Проверяем на INVALID_HANDLE_VALUE, а то может уже занят кем-то.

2. Устанавливаем скорость и т.п.
var dcb : TDCB;
GetCommState(hCom, dcb);
dcb.BaudRate := 9600;
dcb.ByteSize := 8;
dcb.Parity := 0;
dcb.StopBits := 1;
if not SetCommState(hCom[VC], dcb) then Error('SetCommState FAILED');

3. Чтение ReadFile(hCom, data^, size, dwBytes, nil)

4. Запись WriteFile(hCom, data^, size, dwBytes, nil)

5. Статус (наличие данных)
var comstat : TCOMSTAT; dummy : DWORD;
ClearCommError(hCom, dummy, @comstat);
Result := comstat.cbInQue;

6. Заканчиваем работу CloseHandle(hCom);

Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 06.11.2007, 01:38

Отвечает: Igor_
Здравствуйте, Dark128!

Я бы посоветовал воспользоваться компонентами ComPort Library, а не писать работу с COM портом самому.
В принципе, компонентов для работы с COM портом хватает, просто яконкретно с этой библиотекой я работал.
Ответ отправил: Igor_ (статус: 4-ый класс)
Ответ отправлен: 06.11.2007, 09:54


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.0 от 08.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное