Вниз
Скачать: CL | DM;

портCOM где лоханулся   Найти похожие ветки 

 
Jura   (2003-05-14 11:56) [0]

Я делаю так
DataBuf: byte;
Bytes: DWord;
Bufsize=1;
HCOM:=CreateFile(Pchar(Port),GENERIC_READ,0,NIL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
Readfile(HCOM,DataBuf,Bufsize,Bytes,nil);
Вывожу на печать DataBuf и ни фига хотя я знаю что порт не пустой


 
AlexRush ©   (2003-05-14 13:41) [1]

Общение с COM присходит асинхронно (используется структура OVERLAPPED)

var
fComNumber:BYTE;
dwTransfered :DWORD;
dwReaded :DWORD;
dwWrited :DWORD;
hCom :DWORD;
owr :OVERLAPPED;
buf :packed array of char;


function OpenComm(CommNumber:BYTE):DWORD;
var strCommName:string;
begin
strCommName:="COM"+Char((CommNumber and $08)+$31)+#0;
result:=CreateFileA(@strCommName[1],
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED{},
0);
ZeroMemory(@owr,sizeof(owr));
owr.hEvent:=CreateEvent(nil,TRUE,FALSE,nil);
end;


//У меня чтение в отдельном потоке
procedure ReadCommThreadProc;stdcall;
begin
while true
do begin
ZeroMemory(@buf[0],BUF_SIZE);
dwReaded:=0;
dwTransfered:=0;
if not ReadFile(hCom,
@buf[0],
1024,
@dwReaded,
@owr)
then begin
case GetLastError() of
ERROR_IO_PENDING: begin
if WAIT_OBJECT_0
=WaitForSingleObject(hCom,INFINITE)
then begin
if not GetOverlappedResult(hCom,owr,dwTransfered,TRUE)
then begin
LastErrorMsg("GetOverlappedResult");
break;
end
else dwReaded:=dwTransfered;
end
else begin
LastErrorMsg("WaitForSingleObject");
break;
end;
end;
else begin
LastErrorMsg("ReadFile");
break;
end;
end;
end
else begin
dwTransfered:=dwReaded;
end;

frmMain.AddIN;

Sleep(10);
end;
ExitThread(0);
end;


 
Jura   (2003-05-14 15:24) [2]

Большое спасибо.
Бегу в ун-т.Вернусь, постараюсь допетрить.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-77861
Иосиф Сталин
2003-07-13 16:04
2003.07.24
Помогите с TMENUITEM


3-77766
N&N
2003-07-02 08:42
2003.07.24
Редактирование DataSet


14-78084
Antonio
2003-07-08 00:13
2003.07.24
Где найти компонент: http://www.litvinov-soft.narod.ru/svodka.jpg


14-78111
nick-from
2003-07-08 16:08
2003.07.24
чем лучше всего воспользоваться для преобразования


14-78092
Маудзедун
2003-07-07 12:49
2003.07.24
Объясните что, такое трехзвенка




   Наверх