Главная страница
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.016 c
6-1165441608
BFG9k
2006-12-07 00:46
2007.07.08
Как узнать IP клиента, подключившегося к IdHTTPServer у ?


2-1181845802
Infinityx93
2007-06-14 22:30
2007.07.08
как чистить стринггрид???


11-1164605756
StormA
2006-11-27 08:35
2007.07.08
RE_Text (RichEdit)


2-1181857598
Infinityx93
2007-06-15 01:46
2007.07.08
как сделать 2 знака после запятой у числа типа риал????


15-1181109052
Игорь Шевченко
2007-06-06 09:50
2007.07.08
Компания Codegear Borland проводит семинары