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

📄 asc2setup.pas

📁 朗铭科技Ls-810 门禁控制器接口 delphi源程
💻 PAS
📖 第 1 页 / 共 4 页
字号:

{ 双门控制器设置 }

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 + -