Главная страница
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.026 c
1-1178559317
Dmitry_177
2007-05-07 21:35
2007.07.08
Как chm-файлы справки открывать в программе?


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


2-1181993469
kotbazilio
2007-06-16 15:31
2007.07.08
Японские символы


15-1181121766
ERDe
2007-06-06 13:22
2007.07.08
1c:предприятие


15-1181377662
allucard
2007-06-09 12:27
2007.07.08
Ctrl+Click BDS2006 не работает