freepascal.ru • Просмотр темы - COM-порт
 

COM-порт

Модератор: Модераторы

COM-порт

Сообщение Пабло » 27.03.2009 11:32:48

Добрый день.
Собираюсь писать программу, работающую с gps-приемником через порт COM.
Подскажите, как работать с этим портом под WinCE? Сам, к сожалению, не нашел ничего.
Пабло
незнакомец
 
Сообщения: 4
Зарегистрирован: 27.06.2008 18:16:46

Re: COM-порт

Сообщение Mr.Smart » 27.03.2009 16:30:46

открываем порт
Код: Выделить всё
fHandle:=CreateFile('COM1:',GENERIC_READ or GENERIC_WRITE,0, nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);

читаем
Код: Выделить всё
ReadFile(fHandle,aBuff,s,c,nil)

пишем
Код: Выделить всё
WriteFile(fHandle,aBuff,aSize,c,nil)

закрываем
Код: Выделить всё
CloseHandle(fHandle);

Помнить нужно одно что в WinCE OVERLAPPED структуры неподдерживаются!

п.с. А вообще читайте msdn!
Mr.Smart
долгожитель
 
Сообщения: 1797
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: COM-порт

Сообщение Bupyc » 27.03.2009 18:23:40

По-хорошему, нужно еще параметры ком-порта выставлять.
Я делаю так:

Код: Выделить всё
  SetupComm(fHandle,$2000,$2000);

  GetCommState(fHandle,Dcb) then Exit;

  Dcb.BaudRate := Cardinal(EntryProps.IntAttr[0]);
  Dcb.ByteSize := EntryProps.IntAttr[1];
  Dcb.Parity   := EntryProps.IntAttr[2];
  Dcb.StopBits := EntryProps.IntAttr[3];

  SetCommState(fHandle,Dcb);
  PurgeComm(fHandle,PURGE_TXCLEAR or PURGE_RXCLEAR);
  SetCommMask(fHandle,EV_RXCHAR);


EntryProps - мой объект с требуемыми параметрами ком-порта.

Кстати вопрос по-ходу дела. А что за прикол с двоеточием в имени порта? Я на это тоже наткнулся, но так и не понял зачем оно нужно.
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Re: COM-порт

Сообщение Mr.Smart » 27.03.2009 22:15:45

Bupyc писал(а):Кстати вопрос по-ходу дела. А что за прикол с двоеточием в имени порта? Я на это тоже наткнулся, но так и не понял зачем оно нужно.

Это так идеологи WinCE идентифицируют устройства в отмезку файловой системе. По аналогии с обычной виндой \.\\[Dev]
пример: COM2:, RIL1:, GPS1: и т.д.

п.с. кстати нумера портов могут быть только в диаппазоне COM1:..COM9: :wink:
з.ы. для GPS необязательно выставлять параметры порта. так как встроенные приёмники обычно работают на авто определении скорости и параметров.
Mr.Smart
долгожитель
 
Сообщения: 1797
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: COM-порт

Сообщение Пабло » 28.03.2009 16:36:42

А в каких модулях определены константы типа GENERIC_READ?
Пабло
незнакомец
 
Сообщения: 4
Зарегистрирован: 27.06.2008 18:16:46

Re: COM-порт

Сообщение Bupyc » 28.03.2009 16:51:59

Windows
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Re: COM-порт

Сообщение Mr.Smart » 28.03.2009 21:33:07

Пабло писал(а):А в каких модулях определены константы типа GENERIC_READ?

Может Вам сначало всётаки почитать МСДН?
Mr.Smart
долгожитель
 
Сообщения: 1797
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: COM-порт

Сообщение Bupyc » 29.03.2009 14:49:11

Mr.Smart писал(а):Может Вам сначало всётаки почитать МСДН?


Будь снисходителен к человеку, в МСДН про модуль Windows.pas ни слова :)
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42


Вернуться в WinCE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru