![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с COM портом [D7, WinXP]
kolj © (2007-02-01 20:31:00)Начал работать с модемом zyxel u-1496, на данный момент хочу
просто передавать команды и получати ответы, с первым будто проблем нет, а вот ответ получитm не удается. Дальше приведен текст этих процедурок.
function OpenCOMPort(ComPort:String): Boolean;
begin
ComFile := CreateFile(PChar(ComPort),
(GENERIC_READ or GENERIC_WRITE),
0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if ComFile = INVALID_HANDLE_VALUE then
Result := False
else
Result := True;
end;
procedure SendText(s: string);
var
BytesWritten: DWORD;
begin
s := s + #13 + #10;
WriteFile(ComFile, PChar(s)^, Length(s), BytesWritten, nil);
end;
function readd :boolean;
var
hport:Thandle;
ComStat: TComStat;
dwMask, dwError: DWORD;
OverRead: TOverlapped;
dwRead: DWORD;
begin
hport:=comFile;
OverRead.hEvent := CreateEvent(nil, True, False, nil);
if OverRead.hEvent = Null then
raise Exception.Create('Error creating read event');
if not WaitCommEvent(hPort, dwMask, @OverRead) then
if GetLastError = ERROR_IO_PENDING then
WaitForSingleObject(OverRead.hEvent, INFINITE)
else
raise Exception.Create('Error waiting port event');
if not ClearCommError(hPort, dwError, @ComStat) then
raise Exception.Create('Error clearing port');
dwRead := ComStat.cbInQue;
if dwRead > 0 then
if not ReadFile(hPort, Buf, dwRead, dwRead, @OverRead) then
raise Exception.Create('Error reading port');
end;
Evgeny V (2007-02-02 08:02:00) [1]
> kolj © (01.02.07 20:31)
> if not WaitCommEvent(hPort, dwMask, @OverRead) then
Кто такой hPort? Как он связан с
> ComFile := CreateFile
? По коду никак.
dwMask надо инициализировать тем, какие события хочешь получать, например EV_RXCHAR
kolj (2007-02-01 21:46:00) [2]> Kolan
Попробовал этот модуль, но возникает странная проблема, то что я посылаю в порт то и получаю. Например посылаю AT+FCLASS=8, и мне ето и возвращается а имело бы "OK" или "ERROR" В чем дело?
Kolan (2007-02-01 20:53:00) [3]http://kladovka.net.ru/delphibase/?action=viewfunc&topic=hardsystem&id=10452