📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm, ComCtrls, TeEngine, Series, ExtCtrls,
TeeProcs, Chart, CheckLst;
type
TForm1 = class(TForm)
Comm1: TComm;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Timer1: TTimer;
Chart1: TChart;
Label5: TLabel;
Series1: TFastLineSeries;
memo1: TMemo;
Button3: TButton;
Label6: TLabel;
Button4: TButton;
StatusBar1: TStatusBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
s1,shu1,shu2,shu3,shu4:string;
k1,k2,k3,k4,k5,k6,k7,k8,t1,t2,t3,t4:integer;
k0:double;
buf:array[1..16]of byte;
implementation
{$R *.dfm}
function hextoint(s:string):dword;
var
r,k:dword;
hexch:string;
c,d:byte;
n:byte;
ch:char;
begin
hexch:='0123456789ABCDEF';
k:=1;r:=0;
for c:=length(s) downto 1 do
begin
ch:=s[c];n:=0;
for d:=0 to 16 do
if upcase(ch)=hexch[d] then
n:=d-1;
r:=r+n*k;
if c>1 then
k:=k*16;
end;
result:=r;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
comm1.StartComm;
button2.Enabled :=true;
button1.Enabled:=false;
statusbar1.Panels[3].Text:=comm1.Name+'已打开';
statusbar1.Refresh;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
comm1.StopComm;
button1.Enabled:=true;
button2.Enabled:=false;
statusbar1.Panels[3].Text:=comm1.Name+'已关闭';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
button2.Enabled:=false;
timer1.Enabled:=false;
statusbar1.Panels[2].Text:=datetimetostr(now);
statusbar1.Panels[0].Text:=form1.Caption;
statusbar1.Refresh;
end;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
k:integer;
viewstring:string;
strRecv:string;
begin
sleep(100);
viewstring:='';
setlength(strRecv,bufferlength);
move(Buffer^,pchar(@buf)^,Bufferlength);
for k:=1 to bufferlength do
viewstring:=viewstring+inttohex(buf[k],2)+'';
viewstring:='接收'+viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');
shu1:=inttohex(buf[1],2);
label1.Caption:=shu1;
t1:=buf[1];
t2:=buf[2];
t3:=buf[3];
t4:=buf[4];
edit1.Text:=inttostr(t3)+inttostr(t2)+'.'+inttostr(t1);//++'.'+inttostr(t4);
k0:=t3*10+t2+t1*0.1;
k1:=t3*10+t2;
//k2:=strtoint(edit2.Text);
//k3:=strtoint(edit3.Text);
//begin
//if k1>k2 then
//shape1.Brush.Color:=clred;
// shape1.Brush.Color:=clgreen;
//end;
//begin
//if k1<k3 then
//shape1.Brush.Color:=clred;
//end;
//shape1.Brush.Color:=clgreen;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
comm1.StopComm;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
chart1.Series[0].Add(k0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -