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

📄 gainlistform.pas

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 PAS
字号:
unit GainListForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Global, Driver;

type
  TfrmGainList = class(TForm)
    Label1: TLabel;
    lstGainCtrl: TListView;
    cmbGain: TComboBox;
    btnExit: TButton;
    procedure SetGainList();
    procedure cmbGainChange(Sender: TObject);
    procedure lstGainCtrlClick(Sender: TObject);
    procedure btnExitClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmGainList: TfrmGainList;

implementation
uses Init;
{$R *.dfm}

procedure TfrmGainList.SetGainList();
var
    i           : integer;
    GainItem    : TListItem;
    temp        : integer;
    iPhyChan    : integer;

begin
    lstGainCtrl.Clear();
    cmbGain.Clear();


    for i := 0 to lpDevFeatures.usNumGain-1 do
        cmbGain.Items.Add(lpDevFeatures.glGainList[i].szGainStr);
    cmbGain.ItemIndex := 0;

    iPhyChan := usStartChan;
    for i:=0 to usChanNum-1 do
    begin
        if(lpDevConfig_AI.ulChanConfig = 1) then
        begin
                if(iPhyChan >= lpDevFeatures.usMaxAIDiffChl) then
                        iPhyChan := iPhyChan - lpDevFeatures.usMaxAIDiffChl;
        end
        else
        begin
            if(iPhyChan >= lpDevFeatures.usMaxAISiglChl) then
                     iPhyChan := iPhyChan - lpDevFeatures.usMaxAISiglChl;;
        end;

        GainItem := lstGainCtrl.Items.Add();
        GainItem.Caption := 'Chan '+ IntToStr(iPhyChan);
        GainItem.SubItems.Add(lpDevFeatures.glGainList[usGainIndx[PhyChanToLogChan(DevConfig_AI,SmallInt(iPhyChan))]].szGainStr );

        if(lpDevConfig_AI.ulChanConfig = 1) then
        begin
              GainItem.Caption := 'Chan '+ IntToStr(iPhyChan);
              GainItem.SubItems.Add( 'Differential' );
              iPhyChan := iPhyChan + 1;
        end
        else
        begin
               if (iPhyChan < 32) then
                  temp :=  (lpDevConfig_AI.ulChanConfig  and (1 shl (iPhyChan)))
               else
                  temp :=  (lpDevConfig_AI.ulChanConfigEx[0] and (1 shl (iPhyChan-32)));

               if( temp <> 0 )  then
               begin
                  GainItem.SubItems.Add( 'Differential' );
                  if( (iPhyChan mod 2) = 0 ) then
                     iPhyChan := iPhyChan + 1;
                  GainItem.Caption := 'Chan '+ IntToStr(iPhyChan-1) + ',' + IntToStr(iPhyChan);
               end
               else
                  GainItem.SubItems.Add( 'Single-Ended' );

               iPhyChan := iPhyChan + 1;
        end;
    end;

end;
procedure TfrmGainList.cmbGainChange(Sender: TObject);
begin
       if( lstGainCtrl.ItemIndex < 0 ) then
       Exit;

   lstGainCtrl.Items[lstGainCtrl.ItemIndex].SubItems[0] :=
   lpDevFeatures.glGainList[cmbGain.ItemIndex].szGainStr;
   usGainIndx[(PhyChanToLogChan(DevConfig_AI,usStartChan)+lstGainCtrl.ItemIndex) mod gwMaxLogChanNum] := cmbGain.ItemIndex;

end;

procedure TfrmGainList.lstGainCtrlClick(Sender: TObject);
begin
       if( lstGainCtrl.ItemIndex < 0 ) then
       Exit;
       cmbGain.ItemIndex := usGainIndx[(PhyChanToLogChan(DevConfig_AI,usStartChan)+lstGainCtrl.ItemIndex)  mod gwMaxLogChanNum];

end;

procedure TfrmGainList.btnExitClick(Sender: TObject);
begin
  Close();
end;

procedure TfrmGainList.FormShow(Sender: TObject);
begin

    ErrCde := DRV_DeviceOpen(DeviceList[frmInit.lstDevice.ItemIndex].dwDeviceNum, frmInit.ghDev);
    if( DoesErr(ErrCde) = 1 ) then
        Exit;

    // get AI configuration
    ptAIConfig.size := SizeOf(DEVCONFIG_AI);
    DevConfig_AI.ulChanConfig := 0;
    ptAIConfig.buffer := @DevConfig_AI;
    ErrCde := DRV_AIGetConfig(frmInit.ghDev, ptAIConfig);
    if DoesErr(ErrCde) = 1  then
    begin
        DRV_DeviceClose(frmInit.ghDev);
        Exit;
    end;

    // close device
    DRV_DeviceClose(frmInit.ghDev);

    SetGainList;
end;

end.

⌨️ 快捷键说明

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