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

Работа с COM портом   Найти похожие ветки 

← →
kolj ©   (2007-02-01 20:31) [0]

Начал работать с модемом 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;


← →
Kolan ©   (2007-02-01 20:53) [1]

http://kladovka.net.ru/delphibase/?action=viewfunc&topic=hardsystem&id=10452


← →
kolj ©   (2007-02-01 21:46) [2]

> Kolan

Попробовал этот модуль, но возникает странная проблема, то что я посылаю в порт то и получаю. Например посылаю AT+FCLASS=8, и мне ето и возвращается а имело бы "OK" или "ERROR" В чем дело?


← →
Evgeny V ©   (2007-02-02 08:02) [3]


> kolj ©   (01.02.07 20:31)  
>  if not WaitCommEvent(hPort, dwMask, @OverRead) then


Кто такой hPort? Как он связан с
> ComFile := CreateFile

? По коду никак.
dwMask надо инициализировать тем, какие события хочешь получать, например EV_RXCHAR



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

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



Память: 0.45 MB
Время: 0.014 c
2-1180954499
хПх
2007-06-04 14:54
2007.07.08
Png в TimageList


15-1181286784
Andy BitOff
2007-06-08 11:13
2007.07.08
Две недели в Анапе.


15-1181195773
sergeyst
2007-06-07 09:56
2007.07.08
Куда пропадают кнопки


2-1181992506
Delon
2007-06-16 15:15
2007.07.08
Как разобрать файл (txt), выделив информацию


15-1181133661
PARUS
2007-06-06 16:41
2007.07.08
ГЫГЫ




   Наверх