📄 asc2setup.pas
字号:
{ 双门控制器设置 }
unit asc2setup;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, CheckLst, ComCtrls, ExtCtrls, Buttons, common;
type
TASC2SetupForm = class(TForm)
PageControl: TPageControl;
TabSheet1: TTabSheet;
InitButton: TSpeedButton;
WriteDateTimeButton: TSpeedButton;
ReadButton: TSpeedButton;
TabSheet2: TTabSheet;
TimeSegGrpBox: TGroupBox;
ReadTimeCodeButton: TSpeedButton;
WriteTimeCodeButton: TSpeedButton;
TimePickerA11: TDateTimePicker;
TimePickerA12: TDateTimePicker;
TimePickerB11: TDateTimePicker;
TimePickerB12: TDateTimePicker;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TimePickerA21: TDateTimePicker;
TimePickerA22: TDateTimePicker;
TimePickerB21: TDateTimePicker;
TimePickerB22: TDateTimePicker;
TimePickerA31: TDateTimePicker;
TimePickerB31: TDateTimePicker;
TimePickerA32: TDateTimePicker;
TimePickerB32: TDateTimePicker;
TimePickerA41: TDateTimePicker;
TimePickerB41: TDateTimePicker;
TimePickerA42: TDateTimePicker;
TimePickerB42: TDateTimePicker;
TimePickerA51: TDateTimePicker;
TimePickerA52: TDateTimePicker;
TimePickerA61: TDateTimePicker;
TimePickerA62: TDateTimePicker;
TimePickerB62: TDateTimePicker;
TimePickerB61: TDateTimePicker;
TimePickerB52: TDateTimePicker;
TimePickerB51: TDateTimePicker;
TimePickerA82: TDateTimePicker;
TimePickerA81: TDateTimePicker;
TimePickerA72: TDateTimePicker;
TimePickerA71: TDateTimePicker;
TimePickerB71: TDateTimePicker;
TimePickerB72: TDateTimePicker;
TimePickerB81: TDateTimePicker;
TimePickerB82: TDateTimePicker;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
ClrTimeCodeButton: TSpeedButton;
Label9: TLabel;
Label10: TLabel;
TimeCodesEdit: TEdit;
StaticText2: TStaticText;
VersionEdit: TEdit;
StaticText13: TStaticText;
POSTypeEdit: TEdit;
IDCboBox: TComboBox;
DateTimeEdit: TEdit;
StaticText6: TStaticText;
StaticText1: TStaticText;
Panel1: TPanel;
Label11: TLabel;
PtrButton1: TRadioButton;
PtrButton2: TRadioButton;
Panel2: TPanel;
Label12: TLabel;
TotalButton1: TRadioButton;
TotalButton2: TRadioButton;
TotalButton3: TRadioButton;
TabSheet6: TTabSheet;
StaticText39: TStaticText;
ValidCardCntEdit: TEdit;
ValidCardStringGrid: TStringGrid;
ValidCardClearButton: TSpeedButton;
ValidCardReadButton: TSpeedButton;
StaticText18: TStaticText;
RecCountEdit: TEdit;
StaticText5: TStaticText;
StaticText12: TStaticText;
ReadRecordCountButton: TSpeedButton;
RecReadCountEdit: TEdit;
RecAddrEdit: TEdit;
ReadRecordButton: TSpeedButton;
ClearRecordButton: TSpeedButton;
ForceReadRecordButton: TSpeedButton;
StopButton: TSpeedButton;
RecordStringGrid: TStringGrid;
ClearCardDefButton: TSpeedButton;
ReadCardDefButton: TSpeedButton;
WriteCardDefButton: TSpeedButton;
TabSheet7: TTabSheet;
GroupBox1: TGroupBox;
Label13: TLabel;
ActiveTimeEditL: TEdit;
PasswordEditL: TEdit;
GroupBox2: TGroupBox;
ErrUnknowChkBoxL: TCheckBox;
ErrPINChkBoxL: TCheckBox;
ErrDateChkBoxL: TCheckBox;
ErrTimeChkBoxL: TCheckBox;
ErrDoorCloseChkBoxL: TCheckBox;
ErrDoorOpenChkBoxL: TCheckBox;
ErrPassbackChkBoxL: TCheckBox;
AlarmCountEditL1: TEdit;
AlarmCodeCboBoxL1: TComboBox;
AlarmCountEditL2: TEdit;
AlarmCodeCboBoxL2: TComboBox;
AlarmCountEditL3: TEdit;
AlarmCodeCboBoxL3: TComboBox;
AlarmCountEditL4: TEdit;
AlarmCodeCboBoxL4: TComboBox;
AlarmCountEditL5: TEdit;
AlarmCodeCboBoxL5: TComboBox;
AlarmCountEditL6: TEdit;
AlarmCodeCboBoxL6: TComboBox;
AlarmCountEditL7: TEdit;
AlarmCodeCboBoxL7: TComboBox;
PasswordChkBoxL: TCheckBox;
PINChkBoxL: TCheckBox;
MstSlvChkBoxL: TCheckBox;
AntiPassBackChkBoxL: TCheckBox;
PasswordChkBoxR: TCheckBox;
PINChkBoxR: TCheckBox;
MstSlvChkBoxR: TCheckBox;
AntiPassBackChkBoxR: TCheckBox;
PasswordEditR: TEdit;
ActiveTimeEditR: TEdit;
Label14: TLabel;
ErrUnknowChkBoxR: TCheckBox;
ErrPINChkBoxR: TCheckBox;
ErrDateChkBoxR: TCheckBox;
ErrTimeChkBoxR: TCheckBox;
ErrPassbackChkBoxR: TCheckBox;
ErrDoorCloseChkBoxR: TCheckBox;
ErrDoorOpenChkBoxR: TCheckBox;
AlarmCountEditR7: TEdit;
AlarmCountEditR6: TEdit;
AlarmCountEditR5: TEdit;
AlarmCountEditR4: TEdit;
AlarmCountEditR3: TEdit;
AlarmCountEditR2: TEdit;
AlarmCountEditR1: TEdit;
AlarmCodeCboBoxR1: TComboBox;
AlarmCodeCboBoxR2: TComboBox;
AlarmCodeCboBoxR3: TComboBox;
AlarmCodeCboBoxR4: TComboBox;
AlarmCodeCboBoxR5: TComboBox;
AlarmCodeCboBoxR6: TComboBox;
AlarmCodeCboBoxR7: TComboBox;
ReadPropButton: TSpeedButton;
WritePropButton: TSpeedButton;
HolidayMemo: TMemo;
Label15: TLabel;
HolidayPicker: TMonthCalendar;
Label16: TLabel;
AlarmBellEdit1: TEdit;
AlarmStopEdit1: TEdit;
Label17: TLabel;
AlarmBellEdit2: TEdit;
AlarmStopEdit2: TEdit;
Label18: TLabel;
AlarmBellEdit3: TEdit;
AlarmStopEdit3: TEdit;
Label19: TLabel;
AlarmBellEdit4: TEdit;
AlarmStopEdit4: TEdit;
TimeCodeEdit: TEdit;
TimeCodeUpDown: TUpDown;
ReadHoliAlmButton: TSpeedButton;
WriteHoliAlmButton: TSpeedButton;
ClrHoliButton: TSpeedButton;
HolidaysEdit: TEdit;
CardStringGrid: TStringGrid;
ValidChkBox: TCheckBox;
PINLenEdit: TEdit;
Label20: TLabel;
CardLevelChkBox: TCheckBox;
UpdateCardDefButton: TSpeedButton;
SpeedButton1: TSpeedButton;
Label21: TLabel;
CardCountEdit: TEdit;
Label22: TLabel;
CardPtrEdit: TEdit;
ExitButtonChkBoxL: TCheckBox;
LockStatusChkBoxL: TCheckBox;
ExitButtonChkBoxR: TCheckBox;
LockStatusChkBoxR: TCheckBox;
ReaderChkBoxL: TCheckBox;
ReaderChkBoxR: TCheckBox;
TSEnChkBox0: TCheckBox;
TSEnChkBox1: TCheckBox;
TSEnChkBox2: TCheckBox;
TSEnChkBox3: TCheckBox;
TSEnChkBox4: TCheckBox;
TSEnChkBox6: TCheckBox;
TSEnChkBox5: TCheckBox;
TSEnChkBox7: TCheckBox;
AlarmingChkBoxL: TCheckBox;
AlarmCountEditL8: TEdit;
AlarmCodeCboBoxL8: TComboBox;
AlarmingChkBoxR: TCheckBox;
AlarmCountEditR8: TEdit;
AlarmCodeCboBoxR8: TComboBox;
bgAlarmCboBoxL1: TComboBox;
bgAlarmCboBoxL2: TComboBox;
bgAlarmCboBoxL3: TComboBox;
bgAlarmCboBoxL4: TComboBox;
bgAlarmCboBoxL5: TComboBox;
bgAlarmCboBoxL6: TComboBox;
bgAlarmCboBoxL7: TComboBox;
bgAlarmCboBoxL8: TComboBox;
bgAlarmCboBoxR1: TComboBox;
bgAlarmCboBoxR2: TComboBox;
bgAlarmCboBoxR3: TComboBox;
bgAlarmCboBoxR4: TComboBox;
bgAlarmCboBoxR5: TComboBox;
bgAlarmCboBoxR6: TComboBox;
bgAlarmCboBoxR7: TComboBox;
bgAlarmCboBoxR8: TComboBox;
INCChkBoxL: TCheckBox;
INCChkBoxR: TCheckBox;
InterLockChkBox: TCheckBox;
ExitbuttonRecChkBoxL: TCheckBox;
ExitbuttonRecChkBoxR: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure InitButtonClick(Sender: TObject);
procedure WriteDateTimeButtonClick(Sender: TObject);
procedure ReadButtonClick(Sender: TObject);
procedure IDCboBoxChange(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ReadTimeCodeButtonClick(Sender: TObject);
procedure WriteTimeCodeButtonClick(Sender: TObject);
procedure ClrTimeCodeButtonClick(Sender: TObject);
procedure TimeCodeEditChange(Sender: TObject);
procedure TimeCodeUpDownChanging(Sender: TObject; var AllowChange: Boolean);
procedure ReadHoliAlmButtonClick(Sender: TObject);
procedure WriteHoliAlmButtonClick(Sender: TObject);
procedure ClrHoliButtonClick(Sender: TObject);
procedure HolidayPickerDblClick(Sender: TObject);
procedure ReadPropButtonClick(Sender: TObject);
procedure WritePropButtonClick(Sender: TObject);
procedure ReadCardDefButtonClick(Sender: TObject);
procedure WriteCardDefButtonClick(Sender: TObject);
procedure UpdateCardDefButtonClick(Sender: TObject);
procedure ClearCardDefButtonClick(Sender: TObject);
procedure CardStringGridSelectCell(Sender: TObject; ACol,ARow: Integer; var CanSelect: Boolean);
procedure CardLevelChkBoxClick(Sender: TObject);
procedure ValidChkBoxClick(Sender: TObject);
procedure PINLenEditChange(Sender: TObject);
procedure ReadRecordCountButtonClick(Sender: TObject);
procedure ReadRecordButtonClick(Sender: TObject);
procedure ForceReadRecordButtonClick(Sender: TObject);
procedure ClearRecordButtonClick(Sender: TObject);
procedure StopButtonClick(Sender: TObject);
procedure ReaderChkBoxLClick(Sender: TObject);
procedure ReaderChkBoxRClick(Sender: TObject);
procedure ValidCardClearButtonClick(Sender: TObject);
procedure ValidCardReadButtonClick(Sender: TObject);
procedure TSEnChkBox0Click(Sender: TObject);
private
procedure LoadTimeCodeDef();
procedure StoreTimeCodeDef();
public
{ Public declarations }
end;
var
ASC2SetupForm: TASC2SetupForm;
stopprocess: Boolean;
devid,ascid: Byte;
TimeCodeEnable: array [0..31] of Byte;
TimeCode: array [0..31,0..7,0..3] of string;
CardAttribute : array [0..4095,0..1] of Byte;
implementation
{$R *.DFM}
procedure TASC2SetupForm.FormCreate(Sender: TObject);
begin
ASC2SetupForm.Caption := '双门控制器设置';
ASC2SetupForm.Top := (Screen.Height-ASC2SetupForm.Height) div 2;
ASC2SetupForm.Left := (Screen.Width-ASC2SetupForm.Width) div 2;
end;
procedure TASC2SetupForm.FormActivate(Sender: TObject);
var
i,j,k: Smallint;
begin
hComDev:=COM_OPEN('Com2',BaudRate);
if hComDev<=0 then
MessageDlg('打开通讯口 Com2 失败!',mtCustom,[mbOk],0);
devid := 1;
ascid := 1;
for i:=0 to 31 do
for j:=0 to 7 do
for k:=0 to 3 do
TimeCode[i,j,k] := '00:00:00';
LoadTimeCodeDef();
with CardStringGrid do
begin
Cells[0,0] := ' 卡号';
Cells[1,0] := ' ID';
Cells[2,0] := ' PIN';
Cells[3,0] := ' 有效期';
Cells[4,0] := ' 时间表';
end;
with RecordStringGrid do
begin
Cells[0,0] := ' 指针';
Cells[1,0] := ' 事件';
Cells[2,0] := ' 读头';
Cells[3,0] := ' ID';
Cells[4,0] := ' 日期';
Cells[5,0] := ' 时间';
end;
end;
procedure TASC2SetupForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
// 基本参数
procedure TASC2SetupForm.IDCboBoxChange(Sender: TObject);
begin
if IsDigit(IDCboBox.Text) then
devid := StrToInt(IDCboBox.Text);
end;
procedure TASC2SetupForm.InitButtonClick(Sender: TObject);
begin
SetLamp(2);
if ascInitial(hComDev,1,devid,0)=0 then
SetLamp(3)
else
SetLamp(1);
end;
procedure TASC2SetupForm.WriteDateTimeButtonClick(Sender: TObject);
var
datetime,mydate,mytime: string;
begin
if DayOfWeek(Now)=1 then
datetime := '00'
else
datetime := '0'+IntToStr(DayOfWeek(Now)-1);
mydate := DateToStr(Now);
datetime := datetime+Copy(mydate,3,2)+Copy(mydate,6,2)+Copy(mydate,9,2);
mytime := TimeToStr(Now);
datetime := datetime+Copy(mytime,1,2)+Copy(mytime,4,2)+Copy(mytime,7,2);
SetLamp(2);
if ascSetDateTime(hComDev,1,devid,datetime)=0 then
SetLamp(3)
else
SetLamp(1);
end;
procedure TASC2SetupForm.ReadButtonClick(Sender: TObject);
var
S: string;
begin
S := StringOfChar(' ',16);
SetLamp(2);
if ecGetDevType(hComDev,1,devid,S)=0 then
begin
SetLamp(3);
PosTypeEdit.Text := S;
end else
SetLamp(1);
S := StringOfChar(' ',16);
SetLamp(2);
if ecGetVersion(hComDev,1,devid,S)=0 then
begin
VersionEdit.Text := Copy(S,5,5);
SetLamp(3);
end else
SetLamp(1);
SetLamp(2);
S := StringOfChar(' ',16);
if ascGetDateTime(hComDev,1,devid,S)=0 then
begin
SetLamp(3);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -