⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comm.~pas

📁 unit comm interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, D
💻 ~PAS
字号:
unit comm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  SPComm, StdCtrls, ExtCtrls;

type
  TFcomm = class(TForm)
    Comm1: TComm;
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    Memo2: TMemo;
    GroupBox2: TGroupBox;
    Button1: TButton;
    Btn_send: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Btn_sendClick(Sender: TObject);
    procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var

FCOMM: TFCOMM;

Viewstring:string;

i:integer;

rbuf,sbuf:array[1..6] of byte;

implementation

{$R *.DFM}

//发送过程
procedure senddata;
var
  i:integer;
  commflg:boolean;
begin
  viewstring :='';
  commflg:=true;
  for i:=1 to 6 do
  begin
    if not fcomm.comm1.writecommdata(@sbuf[i],1) then
    begin
      commflg:=false;
      break;
    end;
    sleep(2); {发送时字节间的延时}
    viewstring:=viewstring+inttohex(sbuf[i],2)+' ';
  end;
  viewstring:='发送'+viewstring;
  fcomm.memo2.lines.add(viewstring);
  fcomm.memo2.lines.add('');
  if not commflg then messagedlg('发送失败!',mterror,[mbyes],0);

end;

///////////////////////////////////////////////////
procedure TFcomm.Button1Click(Sender: TObject);
begin
  comm1.StartComm;
end;

procedure TFcomm.Button2Click(Sender: TObject);
begin
  comm1.StopComm;
end;
///////////////////////////////////////////////////

procedure TFcomm.Btn_sendClick(Sender: TObject);
begin


 sbuf[1]:=byte($01); {帧头}

  sbuf[2]:=byte($05); {命令号}

  sbuf[3]:=byte($00);
                              
  sbuf[4]:=byte($01);

  sbuf[5]:=byte($FF);

  sbuf[6]:=byte($00); {帧尾}

 senddata;{调用发送函数}

 // sbuf[1]:=byte($f0); {帧头}

//  sbuf[2]:=byte($01); {命令号}

//  sbuf[3]:=byte($ff);

//  sbuf[4]:=byte($ff);

//  sbuf[5]:=byte($01);

//  sbuf[6]:=byte($0f); {帧尾}

 // senddata;{调用发送函数}
end;

//接收过程
procedure TFcomm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
  i:integer;
begin
  viewstring:='';

  move(buffer^,pchar(@rbuf)^,bufferlength);

  for i:=1 to bufferlength do

    viewstring:=viewstring+inttohex(rbuf[i],2)+' ';

  viewstring:='接收'+viewstring;

  memo1.lines.add(viewstring);

  memo1.lines.add('');

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -