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

📄 pmcfg.pas

📁 usb4711A数据采集卡的DI转换通道程序
💻 PAS
字号:
unit PMCfg;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TfPMConfig = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    chkEnablePA00: TCheckBox;
    chkEnablePA01: TCheckBox;
    chkEnablePA02: TCheckBox;
    chkEnablePA03: TCheckBox;
    chkEnablePA04: TCheckBox;
    chkEnablePA05: TCheckBox;
    chkEnablePA06: TCheckBox;
    chkEnablePA07: TCheckBox;
    Panel1: TPanel;
    radHighPA00: TRadioButton;
    radLowPA00: TRadioButton;
    Panel2: TPanel;
    radHighPA01: TRadioButton;
    radLowPA01: TRadioButton;
    Panel3: TPanel;
    radHighPA02: TRadioButton;
    radLowPA02: TRadioButton;
    Panel4: TPanel;
    radHighPA03: TRadioButton;
    radLowPA03: TRadioButton;
    Panel5: TPanel;
    radHighPA04: TRadioButton;
    radLowPA04: TRadioButton;
    Panel6: TPanel;
    radHighPA05: TRadioButton;
    radLowPA05: TRadioButton;
    Panel7: TPanel;
    radHighPA06: TRadioButton;
    radLowPA06: TRadioButton;
    Panel8: TPanel;
    radHighPA07: TRadioButton;
    radLowPA07: TRadioButton;
    Label10: TLabel;
    Label11: TLabel;
    GroupBox2: TGroupBox;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    chkEnablePA40: TCheckBox;
    chkEnablePA41: TCheckBox;
    chkEnablePA42: TCheckBox;
    chkEnablePA43: TCheckBox;
    chkEnablePA44: TCheckBox;
    chkEnablePA45: TCheckBox;
    chkEnablePA46: TCheckBox;
    chkEnablePA47: TCheckBox;
    Panel9: TPanel;
    radHighPA40: TRadioButton;
    radLowPA40: TRadioButton;
    Panel10: TPanel;
    radHighPA41: TRadioButton;
    radLowPA41: TRadioButton;
    Panel11: TPanel;
    radHighPA42: TRadioButton;
    radLowPA42: TRadioButton;
    Panel12: TPanel;
    radHighPA43: TRadioButton;
    radLowPA43: TRadioButton;
    Panel13: TPanel;
    radHighPA44: TRadioButton;
    radLowPA44: TRadioButton;
    Panel14: TPanel;
    radHighPA45: TRadioButton;
    radLowPA45: TRadioButton;
    Panel15: TPanel;
    radHighPA46: TRadioButton;
    radLowPA46: TRadioButton;
    Panel16: TPanel;
    radHighPA47: TRadioButton;
    radLowPA47: TRadioButton;
    cmdCancel: TButton;
    cmdOk: TButton;

    procedure chkEnablePAClick(iPort: Integer ; i : Integer);

    procedure cmdCancelClick(Sender: TObject);
    procedure cmdOkClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure chkEnablePA00Click(Sender: TObject);
    procedure chkEnablePA01Click(Sender: TObject);
    procedure chkEnablePA02Click(Sender: TObject);
    procedure chkEnablePA03Click(Sender: TObject);
    procedure chkEnablePA04Click(Sender: TObject);
    procedure chkEnablePA05Click(Sender: TObject);
    procedure chkEnablePA06Click(Sender: TObject);
    procedure chkEnablePA07Click(Sender: TObject);
    procedure chkEnablePA40Click(Sender: TObject);
    procedure chkEnablePA41Click(Sender: TObject);
    procedure chkEnablePA42Click(Sender: TObject);
    procedure chkEnablePA43Click(Sender: TObject);
    procedure chkEnablePA44Click(Sender: TObject);
    procedure chkEnablePA45Click(Sender: TObject);
    procedure chkEnablePA46Click(Sender: TObject);
    procedure chkEnablePA47Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
    pchkEnablePA : array[0..2,0..7] of ^TCheckBox;
    pradHighPA :   array[0..1,0..7] of ^TRadioButton;
    pradLowPA  :   array[0..1,0..7] of ^TRadioButton;
  public
    { Public declarations }
    iPA0Value : Integer;
    iPA0Mask  : Integer;

    iPA4Value : Integer;
    iPA4Mask  : Integer;
  end;

var
  fPMConfig: TfPMConfig;

implementation

{$R *.DFM}
procedure TfPMConfig.chkEnablePAClick(iPort: Integer; i : Integer);
Begin
    pradHighPA[iPort][i]^.Enabled := pchkEnablePA[iPort][i]^.Checked;
    pradLowPA[iPort][i]^.Enabled := pchkEnablePA[iPort][i]^.Checked;
End;

procedure TfPMConfig.cmdCancelClick(Sender: TObject);
begin
    fPMConfig.Close;
end;

procedure TfPMConfig.cmdOkClick(Sender: TObject);
var
    i, j, k : integer;
    iMask, iValue : array[0..1] of integer;
begin
    iMask[0] := 0;
    iMask[1] := 0;
    iValue[0] := 0;
    iValue[1] := 0;

    {Read user config}
    for j := 0 to 1 do
    begin
        for k:=0 to 7 do
        begin
            {Shift 1 bit left}
            i := 7 - k;
            iMask[j] := iMask[j] * 2;
            iValue[j] := iValue[j] * 2;

            {read setting from configuration}
            if pchkEnablePA[j][i]^.Checked = True then
                iMask[j] := iMask[j] + 1;

            if pradHighPA[j][i]^.Checked = True then
                iValue[j] := iValue[j] + 1
        end; {End of k Loop}
    end; {End of j Loop}

    iPA0Mask := iMask[0];
    iPA4Mask := iMask[1];
    iPA0Value := iValue[0];
    iPA4Value := iValue[1];
    fPMConfig.Close;
end;

procedure TfPMConfig.FormCreate(Sender: TObject);
begin
    {PA0 }
    pchkEnablePA[0][0] := @chkEnablePA00;
    pchkEnablePA[0][1] := @chkEnablePA01;
    pchkEnablePA[0][2] := @chkEnablePA02;
    pchkEnablePA[0][3] := @chkEnablePA03;
    pchkEnablePA[0][4] := @chkEnablePA04;
    pchkEnablePA[0][5] := @chkEnablePA05;
    pchkEnablePA[0][6] := @chkEnablePA06;
    pchkEnablePA[0][7] := @chkEnablePA07;

    pradHighPA[0][0] := @radHighPA00;
    pradHighPA[0][1] := @radHighPA01;
    pradHighPA[0][2] := @radHighPA02;
    pradHighPA[0][3] := @radHighPA03;
    pradHighPA[0][4] := @radHighPA04;
    pradHighPA[0][5] := @radHighPA05;
    pradHighPA[0][6] := @radHighPA06;
    pradHighPA[0][7] := @radHighPA07;

    pradLowPA[0][0] := @radLowPA00;
    pradLowPA[0][1] := @radLowPA01;
    pradLowPA[0][2] := @radLowPA02;
    pradLowPA[0][3] := @radLowPA03;
    pradLowPA[0][4] := @radLowPA04;
    pradLowPA[0][5] := @radLowPA05;
    pradLowPA[0][6] := @radLowPA06;
    pradLowPA[0][7] := @radLowPA07;

    {PA4}
    pchkEnablePA[1][0] := @chkEnablePA40;
    pchkEnablePA[1][1] := @chkEnablePA41;
    pchkEnablePA[1][2] := @chkEnablePA42;
    pchkEnablePA[1][3] := @chkEnablePA43;
    pchkEnablePA[1][4] := @chkEnablePA44;
    pchkEnablePA[1][5] := @chkEnablePA45;
    pchkEnablePA[1][6] := @chkEnablePA46;
    pchkEnablePA[1][7] := @chkEnablePA47;

    pradHighPA[1][0] := @radHighPA40;
    pradHighPA[1][1] := @radHighPA41;
    pradHighPA[1][2] := @radHighPA42;
    pradHighPA[1][3] := @radHighPA43;
    pradHighPA[1][4] := @radHighPA44;
    pradHighPA[1][5] := @radHighPA45;
    pradHighPA[1][6] := @radHighPA46;
    pradHighPA[1][7] := @radHighPA47;

    pradLowPA[1][0] := @radLowPA40;
    pradLowPA[1][1] := @radLowPA41;
    pradLowPA[1][2] := @radLowPA42;
    pradLowPA[1][3] := @radLowPA43;
    pradLowPA[1][4] := @radLowPA44;
    pradLowPA[1][5] := @radLowPA45;
    pradLowPA[1][6] := @radLowPA46;
    pradLowPA[1][7] := @radLowPA47;
end;

procedure TfPMConfig.chkEnablePA00Click(Sender: TObject);
begin
    chkEnablePAClick(0,0);
end;

procedure TfPMConfig.chkEnablePA01Click(Sender: TObject);
begin
    chkEnablePAClick(0,1);
end;

procedure TfPMConfig.chkEnablePA02Click(Sender: TObject);
begin
    chkEnablePAClick(0,2);
end;

procedure TfPMConfig.chkEnablePA03Click(Sender: TObject);
begin
    chkEnablePAClick(0,3);
end;

procedure TfPMConfig.chkEnablePA04Click(Sender: TObject);
begin
    chkEnablePAClick(0,4);
end;

procedure TfPMConfig.chkEnablePA05Click(Sender: TObject);
begin
    chkEnablePAClick(0,5);
end;

procedure TfPMConfig.chkEnablePA06Click(Sender: TObject);
begin
    chkEnablePAClick(0,6);
end;

procedure TfPMConfig.chkEnablePA07Click(Sender: TObject);
begin
    chkEnablePAClick(0,7);
end;

procedure TfPMConfig.chkEnablePA40Click(Sender: TObject);
begin
    chkEnablePAClick(1,0);
end;

procedure TfPMConfig.chkEnablePA41Click(Sender: TObject);
begin
    chkEnablePAClick(1,1);
end;

procedure TfPMConfig.chkEnablePA42Click(Sender: TObject);
begin
    chkEnablePAClick(1,2);
end;

procedure TfPMConfig.chkEnablePA43Click(Sender: TObject);
begin
    chkEnablePAClick(1,3);
end;

procedure TfPMConfig.chkEnablePA44Click(Sender: TObject);
begin
    chkEnablePAClick(1,4);
end;

procedure TfPMConfig.chkEnablePA45Click(Sender: TObject);
begin
    chkEnablePAClick(1,5);
end;

procedure TfPMConfig.chkEnablePA46Click(Sender: TObject);
begin
    chkEnablePAClick(1,6);
end;

procedure TfPMConfig.chkEnablePA47Click(Sender: TObject);
begin
    chkEnablePAClick(1,7);
end;

procedure TfPMConfig.FormActivate(Sender: TObject);
var
    i , j : integer;
    iValue, iMask : array[0..1] of integer;
begin

    iValue[0] := iPA0Value;
    iMask[0] := iPA0Mask;

    iValue[1] := iPA4Value;
    iMask[1] := iPA4Mask;

    {Initialize PA0 and PA4 configure of user interface}
    for j := 0 to 1 do
    begin
        For i := 0 to 7 do
        begin
            {Mask register config}
            if (iMask[j] And 1) = 1 then
                pchkEnablePA[j][i]^.Checked := True
            else
                pchkEnablePA[j][i]^.Checked := False;

            chkEnablePAClick(j,i);
            iMask[j] := iMask[j] div 2;

            {Value register config}
            if (iValue[j] And 1) = 1 then
            begin
                pradHighPA[j][i]^.Checked := True;
                pradLowPA[j][i]^.Checked := False;
            end
            else
            begin
                pradHighPA[j][i]^.Checked := False;
                pradLowPA[j][i]^.Checked := True;
            end;
            iValue[j] := iValue[j] div 2;

        end; {End of i loop}
    end; {End of j loop}
end;

End.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -