📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Spin, ExtCtrls, ComCtrls, Menus, CheckLst, RXSpin;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
pagecontrol1: TPageControl;
ts_common: TTabSheet;
ts_real: TTabSheet;
GroupBox3: TGroupBox;
Memo1: TMemo;
GroupBox1: TGroupBox;
Memo2: TMemo;
Splitter1: TSplitter;
GroupBox4: TGroupBox;
bt_query_s: TButton;
bt_query_e: TButton;
se_node_s: TSpinEdit;
se_node_e: TSpinEdit;
Label3: TLabel;
Label4: TLabel;
Panel3: TPanel;
rg_comm: TRadioGroup;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
bt_opencomm: TButton;
bt_handshake: TButton;
se_node_addr: TSpinEdit;
ed_password: TEdit;
ts_para: TTabSheet;
ts_record: TTabSheet;
ts_author: TTabSheet;
ts_timeauthor: TTabSheet;
ts_timetable: TTabSheet;
ts_modem: TTabSheet;
Memo3: TMemo;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
se_usermode: TSpinEdit;
se_rly1time: TSpinEdit;
se_rly2time: TSpinEdit;
CheckBox1: TCheckBox;
se_times: TSpinEdit;
se_node_addr1: TSpinEdit;
Button12: TButton;
Button13: TButton;
Label8: TLabel;
Label9: TLabel;
Button14: TButton;
GroupBox5: TGroupBox;
Memo4: TMemo;
Panel4: TPanel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
bt_get_curr: TButton;
bt_get_next: TButton;
bt_get_rec: TButton;
se_recnum: TSpinEdit;
bt_getallrecord: TButton;
bt_getallrecord1: TButton;
se_recnum_s: TSpinEdit;
se_recnum_e: TSpinEdit;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
SaveDialog1: TSaveDialog;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
se_node_addr2: TSpinEdit;
GroupBox6: TGroupBox;
Memo5: TMemo;
Panel5: TPanel;
GroupBox8: TGroupBox;
Label16: TLabel;
Label17: TLabel;
se_node_addr3: TSpinEdit;
se_author_num: TSpinEdit;
Button15: TButton;
Button16: TButton;
GroupBox7: TGroupBox;
Label14: TLabel;
Label15: TLabel;
se_snr_s: TSpinEdit;
se_snr_e: TSpinEdit;
cb_author: TCheckBox;
Button17: TButton;
Panel6: TPanel;
GroupBox9: TGroupBox;
clb_timeseg1: TCheckListBox;
clb_timeseg2: TCheckListBox;
Label18: TLabel;
Label19: TLabel;
Button18: TButton;
se_snr_s1: TSpinEdit;
se_snr_e1: TSpinEdit;
GroupBox10: TGroupBox;
Label20: TLabel;
Label21: TLabel;
Button19: TButton;
Button20: TButton;
se_node_addr4: TSpinEdit;
se_timeauthor_num: TSpinEdit;
Memo6: TMemo;
Panel7: TPanel;
Button21: TButton;
GroupBox11: TGroupBox;
Memo7: TMemo;
Button22: TButton;
GroupBox12: TGroupBox;
Label22: TLabel;
dtp_1s: TDateTimePicker;
dtp_1e: TDateTimePicker;
dtp_2e: TDateTimePicker;
dtp_2s: TDateTimePicker;
Label23: TLabel;
Label24: TLabel;
dtp_3s: TDateTimePicker;
dtp_3e: TDateTimePicker;
dtp_4e: TDateTimePicker;
dtp_4s: TDateTimePicker;
Label25: TLabel;
Label26: TLabel;
dtp_5s: TDateTimePicker;
dtp_5e: TDateTimePicker;
dtp_6s: TDateTimePicker;
Label27: TLabel;
Label28: TLabel;
dtp_7s: TDateTimePicker;
Label29: TLabel;
dtp_8s: TDateTimePicker;
dtp_8e: TDateTimePicker;
dtp_7e: TDateTimePicker;
dtp_6e: TDateTimePicker;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
dtp_9s: TDateTimePicker;
dtp_10s: TDateTimePicker;
dtp_11s: TDateTimePicker;
dtp_12s: TDateTimePicker;
dtp_13s: TDateTimePicker;
dtp_14s: TDateTimePicker;
dtp_15s: TDateTimePicker;
dtp_16s: TDateTimePicker;
dtp_16e: TDateTimePicker;
dtp_15e: TDateTimePicker;
dtp_14e: TDateTimePicker;
dtp_13e: TDateTimePicker;
dtp_12e: TDateTimePicker;
dtp_11e: TDateTimePicker;
dtp_10e: TDateTimePicker;
dtp_9e: TDateTimePicker;
se_node_addr5: TSpinEdit;
Label38: TLabel;
Panel8: TPanel;
GroupBox13: TGroupBox;
Button23: TButton;
Edit1: TEdit;
Button24: TButton;
Label39: TLabel;
Memo8: TMemo;
Button11: TButton;
Button10: TButton;
Button9: TButton;
Button8: TButton;
Button7: TButton;
Button6: TButton;
Button5: TButton;
Button4: TButton;
Button2: TButton;
Button1: TButton;
Button3: TButton;
Button25: TButton;
ts_idcard: TTabSheet;
Memo9: TMemo;
Panel9: TPanel;
rxseUser: TRxSpinEdit;
Button26: TButton;
Button27: TButton;
Label40: TLabel;
cbHex: TCheckBox;
Label42: TLabel;
rxseGroup: TRxSpinEdit;
Button28: TButton;
Label43: TLabel;
rxseUserNum: TRxSpinEdit;
procedure bt_opencommClick(Sender: TObject);
procedure rg_commClick(Sender: TObject);
procedure bt_handshakeClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure bt_query_sClick(Sender: TObject);
procedure bt_query_eClick(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure bt_get_currClick(Sender: TObject);
procedure bt_get_nextClick(Sender: TObject);
procedure bt_get_recClick(Sender: TObject);
procedure bt_getallrecordClick(Sender: TObject);
procedure bt_getallrecord1Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure se_node_addrChange(Sender: TObject);
procedure se_node_addr1Change(Sender: TObject);
procedure se_node_addr2Change(Sender: TObject);
procedure se_node_addr3Change(Sender: TObject);
procedure se_node_addr4Change(Sender: TObject);
procedure se_node_addr5Change(Sender: TObject);
procedure MemoMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button26Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure Button28Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure cbHexClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
// define gobal varible
icdev:integer;
password:string;
loop:boolean;
__memo:tmemo;
implementation
uses tccomm_def;
{$R *.DFM}
procedure TForm1.bt_opencommClick(Sender: TObject);
begin
icdev := OpenComm(rg_comm.itemindex);
if (icdev>0) then begin
memo1.Lines.Add('打开串口'+inttostr(rg_comm.itemindex+1)+'成功!');
bt_opencomm.Enabled := false;
bt_handshake.Enabled := true;
// gb_command.Enabled := true;
end
else begin
memo1.Lines.Add('打开串口'+inttostr(rg_comm.itemindex+1)+'失败!');
end
end;
procedure TForm1.rg_commClick(Sender: TObject);
begin
if (icdev>0) then begin
closecomm(icdev);
memo1.Lines.Add('关闭串口'+inttostr(rg_comm.itemindex+1)+'成功!');
bt_opencomm.Enabled := true;
bt_handshake.Enabled := false;
end;
end;
procedure TForm1.bt_handshakeClick(Sender: TObject);
var
st:integer;
begin
setlength(password,20);
st:=GetPassword(icdev,se_node_addr.Value,pchar(password));
st:=hand_shake(icdev,se_node_addr.value,password);
if (st=0) then begin
ed_password.Text := password;
memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手成功!');
end
else begin
memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手失败!'+inttostr(st));
end
end;
procedure TForm1.Button1Click(Sender: TObject);
var
adatetime:string;
st :integer;
begin
pagecontrol1.ActivePage := ts_common;
if length(ed_password.text)<8 then begin
application.MessageBox('密码长度不足!','警告',mb_ok);
exit;
end ;
st:=hand_shake(icdev,se_node_addr.Value,ed_password.text);
if (st=0) then begin
memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手成功!');
end
else begin
memo1.Lines.add('与'+inttostr(se_node_addr.Value)+'号机握手失败!'+inttostr(st));
exit;
end;
DateTimeToString(adatetime,'yyyymmddhhmmss',now);
st := set_time(icdev,adatetime);
if (st = 0) then begin
memo1.Lines.add('设置时间成功!');
setlength(adatetime,50);
st := get_time(icdev,pchar(adatetime));
if (st=0) then begin
memo1.Lines.add('取时间成功,时间为:'+adatetime);
end
else
memo1.Lines.add('取时间失败!'+inttostr(st));
end
else
memo1.Lines.add('设置时间失败!'+inttostr(st));
end;
procedure TForm1.bt_query_sClick(Sender: TObject);
var
node,i:integer;
st:integer;
adata:String;
begin
bt_query_s.Enabled := false;
bt_query_e.Enabled := true;
loop:=true;
setlength(adata,100);
i := 0;
while(true) do begin
for node:=se_node_s.value to se_node_e.Value do begin
sleep(50);
st := Real_Query(icdev,Node,pchar(aData));
if (st=0) then begin
if (strtoint(copy(adata,17,6))<>0) then begin
memo2.Lines.Add(inttostr(node)+'号机打卡数据为:'+adata);
end
end
else begin
i := i+1;
memo2.Lines.Add(inttostr(i) + ': 与' + inttostr(node)+'号机通讯错误!'+inttostr(st));
end
end;
application.ProcessMessages;
if not (loop) then begin
bt_query_s.Enabled := true;
bt_query_e.Enabled := false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -