6th
Сен

Работа с com портом

Posted by Chas under Пост-обзор

Есть прибор, который подключаеться через com порт к компьютеру. Протокол обмена известен. Как отправить ему 16 ричное значение и как прочитать такое значение от него?

код:

function readcom: string;
var RX_Count : cardinal;
     TempArray: array[1..255] of Byte;
     Count : Integer;
begin
  result:= ”;
  ReadFile(Com, TempArray, 255, RX_Count, nil);
  for Count:= 1 to RX_Count do result:= result + Chr(TempArray[Count])
end;

procedure sendcom(s: string);
var TempArray: array[1..255] of Byte;
     Count : Integer;
     TX_Count : cardinal;
begin
  for Count:= 1 to Length(S) do TempArray[Count]:= Ord(S[Count]);
  WriteFile(Com, TempArray,Length(S),TX_Count,nil)
end;

// или если компонентом пользуешся
type tb = array[1..255] of Char; //Определяем символьный массив
      pb = ^tb;
procedure Tmf.comReceiveData(Sender: TObject; Buffer: Pointer;
   BufferLength: Word);
var PX : pb;
     i : integer;
     str: string;
begin
  PX:= buffer; str:=”;
  for i:= 1 to BufferLength do
   str:=str+PX^;
  packet(str)
end;

Тема на форуме

Похожие статьи

Теги: |