📄 formrun.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 + -