Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

COM-порт   Найти похожие ветки 

 
Федор   (2004-11-09 21:19) [0]

Настраиваю порт:

 hCom := CreateFile("COM2",
   GENERIC_READ OR GENERIC_WRITE,
   0,    // comm devices must be opened w/exclusive-access
   nil, // no security attrs
   OPEN_EXISTING, // comm devices must use OPEN_EXISTING
   0,   // not overlapped I/O
   0    // hTemplate must be NULL for comm devices
   );
 if hCom = INVALID_HANDLE_VALUE then
   raise Exception.Create("COM2 íå ïîäêëþ÷àåòñÿ.");

 GetCommState(hCom, DCB);

 DCB.BaudRate := 9600;
 DCB.ByteSize := 8;
//  DCB.Parity := EVENPARITY;
 DCB.Parity := NOPARITY;
 DCB.StopBits := ONESTOPBIT;
 SetCommState(hCom, DCB);

 Timeouts.ReadIntervalTimeout := 50;
 Timeouts.ReadTotalTimeoutMultiplier := 1;
 Timeouts.ReadTotalTimeoutConstant := 5000;
 Timeouts.WriteTotalTimeoutMultiplier := 0;
 Timeouts.WriteTotalTimeoutConstant := 0;
 SetCommTimeouts(hCom, Timeouts);


Потом пишу:

Res := WriteFile(hCom, s, Length(s) + 1, Written, nil);

Дома все работает. А на работе - нет, а там-то как раз и нужно. hCom определен, но получается Res = False и Written = 0.

Куда смотреть, господа?


 
jack128 ©   (2004-11-09 21:34) [1]

GetLastError/RaiseLastWin32Error что говорит??


 
Федор   (2004-11-09 21:36) [2]

Ну, GetLastError говорит: 36 (или 39? - на работе дело было). И что с ним дальше делать?


 
Федор   (2004-11-09 21:39) [3]

>jack128

За RaiseLastWin32Error спасибо. Завтра посмотрю.


 
jack128 ©   (2004-11-10 01:28) [4]

Федор   (09.11.04 21:39) [3]

Названия всех констант, которые возвращает GetLastError начинаются в прифекса ERROR_ .

В Windows.pas эти константы описаны в порядке возрастания их значений - поэтому узнать эти названия не так уж и сложно. А по названию и представить, что за ошибка произошла можно..



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
14-1102173465
matt
2004-12-04 18:17
2004.12.26
Котенок


4-1100161077
Maclaud
2004-11-11 11:17
2004.12.26
Пауза меньше 1 милисекунды


1-1102503043
mefisto
2004-12-08 13:50
2004.12.26
Как передать сообщение своей программе с коммандной строки?


1-1102800010
Geo
2004-12-12 00:20
2004.12.26
проблема с RichEdit


9-1093097593
Колбасьев
2004-08-21 18:13
2004.12.26
Фон в 3D игре