📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, TComm1, ExtCtrls;
type
TForm1 = class(TForm)
cmbCMD: TComboBox;
Label1: TLabel;
Label2: TLabel;
mReceive: TMemo;
lblMsg: TLabel;
Button1: TButton;
Button2: TButton;
Comm1: TComm;
Timer1: TTimer;
Label3: TLabel;
txtSLM: TEdit;
Label4: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure cmbCMDClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
CmdFlag:Boolean;
Procedure TimeDelay(DT:DWORD);
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Comm1.PortOpen := True;
cmbCMD.Clear;
cmbCMD.Items.Add('AUTOLog');
cmbCMD.Items.Add('AUTOStart');
cmbCMD.Items.Add('BATt');
cmbCMD.Items.Add('BAUd');
cmbCMD.Items.Add('CLock');
cmbCMD.Items.Add('CONtinue');
cmbCMD.Items.Add('Default');
cmbCMD.Items.Add('DISp');
cmbCMD.Items.Add('ELapsed');
cmbCMD.Items.Add('EXChange');
cmbCMD.Items.Add('EXPosure');
cmbCMD.Items.Add('Format');
cmbCMD.Items.Add('FREE');
cmbCMD.Items.Add('FW');
cmbCMD.Items.Add('HAndshake');
cmbCMD.Items.Add('OFf');
cmbCMD.Items.Add('PAuse');
cmbCMD.Items.Add('PErcentile');
cmbCMD.Items.Add('Print');
cmbCMD.Items.Add('PW');
cmbCMD.Items.Add('RANge');
cmbCMD.Items.Add('Reset');
cmbCMD.Items.Add('SETup');
cmbCMD.Items.Add('TW');
cmbCMD.Items.Add('VErsion');
cmbCMD.ItemIndex := 0;
cmbCMDClick(nil);
Timer1.Enabled := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CmdFlag := True;
end;
//以下是延迟函数,单位毫秒
Procedure TimeDelay(DT:DWORD);
var
TT:DWORD;
begin
//取得现在的Tick值
TT:=GetTickCount();
//计算Tick差值是否超过设置值
while GetTickCount()-TT<DT do
Application.ProcessMessages; //释放控制权
end;
procedure TForm1.cmbCMDClick(Sender: TObject);
begin
case cmbCMD.ItemIndex of
0:lblMsg.Caption := '自动记录测量的数值';
1:lblMsg.Caption :='开始的时间。';
2:lblMsg.Caption :='返回噪音计内的电池存量。';
3:lblMsg.Caption :='串行通信的Baud Rate值。';
4:lblMsg.Caption :='噪音计内的日期时间。';
5:lblMsg.Caption :='开始噪音计的测量。';
6:lblMsg.Caption :='将噪音计内的设置值重设为默认值。';
7:lblMsg.Caption :='目前显示在噪音计上的参数。';
8:lblMsg.Caption :='取得目前已测量的经过时间。';
9:lblMsg.Caption :='目前的交换率。';
10:lblMsg.Caption :='曝露时间。';
11:lblMsg.Caption :='输出格式。';
12:lblMsg.Caption :='剩下的时间,以及噪音计内存内剩下的记录数。';
13:lblMsg.Caption :='RMS信号的频率加权值。';
14:lblMsg.Caption :='流量控制协议。';
15:lblMsg.Caption :='关闭噪音计。';
16:lblMsg.Caption :='暂停噪音计的测量工作。';
17:lblMsg.Caption :='目前所计算的百分比种类。';
18:lblMsg.Caption :='将数据由打印机或计算机以目前的输出格式输出。';
19:lblMsg.Caption :='目前噪音计内所使用的峰值信号的频率加权值。';
20:lblMsg.Caption :='目前噪音计的测量范围。';
21:lblMsg.Caption :='重置噪音计。';
22:lblMsg.Caption :='返回目前噪音计内的设置值。';
23:lblMsg.Caption :='噪音计目前所使用的时域加权种类。';
24:lblMsg.Caption :='取得版本号码。';
End;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Comm1.PortOpen := False;
Close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Buf:String;
Pos1:integer;
begin
if CmdFlag then
begin
Comm1.OutputString(cmbCMD.Text + Chr(13));
TimeDelay(300);
mReceive.Text := Comm1.Input;
CmdFlag := False;
end;
Comm1.OutputString('DISP'+ Chr(13));
TimeDelay(300);
Buf := Comm1.Input ;
Pos1 := Pos('LEQ',Buf);
if Pos1>0 then
txtSLM.Text := Copy(Buf,Pos1+4,6);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -