Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.019 c
2-1181996707
CoTr
2007-06-16 16:25
2007.07.08
изменение в списке переменных


15-1180956370
dima_q
2007-06-04 15:26
2007.07.08
Проблема с GETMEM.INC и обновлениями WinXP.


15-1181398389
linzaolog
2007-06-09 18:13
2007.07.08
Кто носит контактные линзы?


4-1164109849
MetalFan
2006-11-21 14:50
2007.07.08
Узнать о закрытии handle


1-1178721591
TStas
2007-05-09 18:39
2007.07.08
Как программно зазипить папку?