06.11.2007, 01:38
общий
это ответ
Здравствуйте, 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);