Мониторинг обменных курсов валют
18c0693f

Как прочитать из модема?


Как прочитать из модема?



После предварительной настройки переменных, COM порт открывается как обычный файл. Так же пример показывает, как очищать буфер COM порта и читать из него.

Var 
PortSpec : array[0..255] of char;   
PortNo   : Word;   
success : Boolean;   
error:integer;   
begin 
FillChar(PortSpec,Sizeof(PortSpec),#0); 
StrPCopy(PortSpec,'Com1:19200,n,8,1'); 
PortSpec[3]:=Char(Ord(PortSpec[3])+Ord(PortNo)); 

if not BuildCommDCB(PortSpec,Mode) Then 
  Begin 
//какая-то ошибка... 
  Exit; 
  End

PortSpec[5]:=#0;    { 'Com1:' } 

Mode.Flags:=EV_RXCHAR +   EV_EVENT2;  { $1001 } 

  Com := CreateFile(PortSpec,GENERIC_READ or GENERIC_WRITE
                    0,    //* comm устройство открывается с эксклюзивным доступом*/ 
                    Nil, //* нет security битов */ 
                    OPEN_EXISTING, //* comm устройства должны использовать OPEN_EXISTING*/ 
                    0,    //* not overlapped I/O */ 
                    0  //* hTemplate должен быть NULL для comm устройств */ 
                     ); 
  if Com = INVALID_HANDLE_VALUE then Error := GetLastError; 
  Success := GetCommState(Com,Mode); 

  if not Success then  // Обработчик ошибки. 
  begin 

  end

  Mode.BaudRate := 19200; 
  Mode.ByteSize := 8; 
  Mode.Parity := NOPARITY; 
  Mode.StopBits := ONESTOPBIT;//нужен был для перезаписи в NT 

  Success := SetCommState(Com, Mode); 

  if not Success then  // Обработчик ошибки. 
  begin 

  end
end

Переменная "com" типа dword.

Вы так же можете очистить буффер COM порта
PurgeComm(Com,PURGE_RXCLEAR or PURGE_TXCLEAR);
И прочитать из него

Function ReadCh(Var Ch:Byte):dword; 
var 
n : dword; 
Begin 
  Readfile(Com,ch,1,result,nil); 
End;

Взято с Исходников.ru









Самый выгодный курс обмена валюты