Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Вниз

порт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 вся ветка

Форум: "Система";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
14-78058
Дмитрий К.К.
2003-07-09 11:24
2003.07.24
Именинники 9 июля


3-77801
chexum
2003-07-02 15:53
2003.07.24
Обработка ошибок ADO


14-78120
Ihor999
2003-07-08 16:05
2003.07.24
HTML парсер.


14-78134
Alexey
2003-07-09 10:20
2003.07.24
Web Server


14-78113
Boss
2003-07-08 11:55
2003.07.24
Как зарегестрировать БД, чтоб она работала на другом ПК





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский