Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

Работа с 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.043 c
2-1181824457
XTD
2007-06-14 16:34
2007.07.08
Хочу проиграть трек с помощью MMAudioPlayer1 в новом потоке (TTh)


15-1180988686
oldman
2007-06-05 00:24
2007.07.08
А я вот не понимаю фразу "IT-технология"...


2-1181990364
Kolan
2007-06-16 14:39
2007.07.08
При копировании в буфер обмена строки портятся, как исправить?


2-1181666274
Евгений Р.
2007-06-12 20:37
2007.07.08
Отправка письма с вложением


2-1181811128
kukuikar
2007-06-14 12:52
2007.07.08
Как работать с редактором формул MS Word из своей программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский