COM-порт

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

Ответить
Пабло
незнакомец
Сообщения: 4
Зарегистрирован: 27.06.2008 18:16:46

COM-порт

Сообщение Пабло »

Добрый день.
Собираюсь писать программу, работающую с gps-приемником через порт COM.
Подскажите, как работать с этим портом под WinCE? Сам, к сожалению, не нашел ничего.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

открываем порт

Код: Выделить всё

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!
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

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

Код: Выделить всё

  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 - мой объект с требуемыми параметрами ком-порта.

Кстати вопрос по-ходу дела. А что за прикол с двоеточием в имени порта? Я на это тоже наткнулся, но так и не понял зачем оно нужно.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

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

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

п.с. кстати нумера портов могут быть только в диаппазоне COM1:..COM9: :wink:
з.ы. для GPS необязательно выставлять параметры порта. так как встроенные приёмники обычно работают на авто определении скорости и параметров.
Пабло
незнакомец
Сообщения: 4
Зарегистрирован: 27.06.2008 18:16:46

Сообщение Пабло »

А в каких модулях определены константы типа GENERIC_READ?
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

Windows
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

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

Может Вам сначало всётаки почитать МСДН?
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

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


Будь снисходителен к человеку, в МСДН про модуль Windows.pas ни слова :)
Ответить