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

📄 formrun.pas

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

interface

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

type
  Tfrmrun = class(TForm)
    txtVoltRead: TEdit;
    CmdRead: TButton;
    CmdExit: TButton;
    GroupSample: TGroupBox;
    hscrFreq: TScrollBar;
    labStart: TLabel;
    labEnd: TLabel;
    tmrLed: TTimer;
    tmrRead: TTimer;
    shapLed: TShape;
    labVolRead: TLabel;
    txtSample: TEdit;
    procedure CmdExitClick(Sender: TObject);
    procedure hscrFreqChange(Sender: TObject);
    procedure tmrReadTimer(Sender: TObject);
    procedure tmrLedTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CmdReadClick(Sender: TObject);
  private
    { Private declarations }
    ErrCount: Integer;
  public
    { Public declarations }
  end;

var
  frmrun: Tfrmrun;

implementation

uses formstar;

var
   Response       : Integer;
{$R *.DFM}

procedure Tfrmrun.CmdExitClick(Sender: TObject);
begin
     tmrRead.Enabled := True;
     frmrun.tmrLed.Enabled := True;
     frmRun.Close;
     Formstar.frmstart.Show;
end;

procedure Tfrmrun.hscrFreqChange(Sender: TObject);
begin
     if hscrFreq.Position = 0 then
        tmrRead.Interval := 0
     else
        tmrRead.Interval := trunc(10000/ hscrFreq.Position);

     txtSample.Text := FloatToStrF((hscrFreq.Position / 10), ffFixed, 5, 2);
     { "Read One Shot" would disable the Timer, so it need to enable here.} 
     tmrRead.Enabled := True;
end;

procedure Tfrmrun.tmrReadTimer(Sender: TObject);
var
   Voltage : Single;
begin
  shapLed.Brush.Color := clRed;
  AiVolIn.chan := ptAIConfig.DasChan;
  AiVolIn.gain := ptAIConfig.DasGain;
  {AiVolIn.TrigMode := AiCtrMode;}
  AivolIn.TrigMode := 0; {internal triger}
  AiVolIn.voltage := @Voltage;
  { if AiVolIn.voltage doesn't point to a variable, then it would be nil }
  ErrCde := DRV_AIVoltageIn(DeviceHandle, AiVolIn);
  If (ErrCde <> 0) Then
  begin
       ErrCount := ErrCount + 1;
       if (ErrCount > 2) then
          close
       else
       begin
          DRV_GetErrorMessage(ErrCde, pszErrMsg);
          Response := Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
          Exit;
       end;
  end;
  txtVoltRead.Text := FloatToStrF(Voltage, ffFixed, 5, 2);
  { You can also use AiVolIn.voltage^ instead of Voltage here. }
end;

procedure Tfrmrun.tmrLedTimer(Sender: TObject);
begin
     shapLed.Brush.Color := clGray;
end;

procedure Tfrmrun.FormCreate(Sender: TObject);
begin
     hscrFreq.Position := 10;
     ErrCount := 0;
     tmrRead.Enabled   := False;
     tmrLed.Enabled    := False;
end;

procedure Tfrmrun.CmdReadClick(Sender: TObject);
var
   voltage : Single;
begin
  tmrRead.Enabled := False;
  shapLed.Brush.Color := clRed;

  AiVolIn.chan := ptAIConfig.DasChan;
  AiVolIn.gain := ptAIConfig.DasGain;
  {AiVolIn.TrigMode := AiCtrMode;}
  AivolIn.TrigMode := 0; {internal Triger}
  AiVolIn.voltage := @voltage;
  ErrCde := DRV_AIVoltageIn(DeviceHandle, AiVolIn);
  If (ErrCde <> 0) Then
  begin
       DRV_GetErrorMessage(ErrCde, pszErrMsg);
       Response := Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
       Exit;
  end;
  txtVoltRead.Text := FloatToStrF(Voltage, ffFixed, 5, 2);
end;

end.

⌨️ 快捷键说明

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