📄 main.pas
字号:
{Open device}
If DAQDO1.OpenDevice Then
begin
ErrorMsgBox(DAQDO1.ErrorMessage);
Exit;
End;
bDeviceOpen := True;
{Get device feature and}
{Assign this device selectable features}
For i := 0 To DAQDO1.MaxPortNumber - 1 do
begin
str(i, sTmp);
cmbPort.Items.Add(sTmp);
end;
If DAQDO1.MaxPortNumber > 0 Then
cmbPort.ItemIndex := 0;
frmAction.Enabled := True;
{Manage UI}
DAQDO1.Port := cmbPort.ItemIndex;
i := DAQDO1.ByteReadBack;
txtReadBack.Text := IntToHex(i, 2);
txtOutValue.Text := txtReadBack.Text;
UpdateBitOutButtons();
end;
procedure TfMain.FormCreate(Sender: TObject);
begin
{Out bits}
pcmdBitOn[0] := @cmdChlOn0;
pcmdBitOn[1] := @cmdChlOn1;
pcmdBitOn[2] := @cmdChlOn2;
pcmdBitOn[3] := @cmdChlOn3;
pcmdBitOn[4] := @cmdChlOn4;
pcmdBitOn[5] := @cmdChlOn5;
pcmdBitOn[6] := @cmdChlOn6;
pcmdBitOn[7] := @cmdChlOn7;
{Mask bits}
pspMask[0] := @spMask0;
pspMask[1] := @spMask1;
pspMask[2] := @spMask2;
pspMask[3] := @spMask3;
pspMask[4] := @spMask4;
pspMask[5] := @spMask5;
pspMask[6] := @spMask6;
pspMask[7] := @spMask7;
bDeviceOpen := False;
cmdSelectDeviceClick(Sender);
end;
procedure TfMain.cmdChlOn0Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,0,False);
end;
procedure TfMain.cmdChlOn1Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,1,False);
end;
procedure TfMain.cmdChlOn2Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,2,False);
end;
procedure TfMain.cmdChlOn3Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,3,False);
end;
procedure TfMain.cmdChlOn4Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,4,False);
end;
procedure TfMain.cmdChlOn5Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,5,False);
end;
procedure TfMain.cmdChlOn6Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,6,False);
end;
procedure TfMain.cmdChlOn7Click(Sender: TObject);
begin
DoBitOut(cmbPort.ItemIndex,7,False);
end;
procedure TfMain.spChlOff0MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,0,True);
end;
procedure TfMain.spChlOff1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,1,True);
end;
procedure TfMain.spChlOff2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,2,True);
end;
procedure TfMain.spChlOff3MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,3,True);
end;
procedure TfMain.spChlOff4MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,4,True);
end;
procedure TfMain.spChlOff5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,5,True);
end;
procedure TfMain.spChlOff6MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,6,True);
end;
procedure TfMain.spChlOff7MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DoBitOut(cmbPort.ItemIndex,7,True);
end;
procedure TfMain.cmdByteOutClick(Sender: TObject);
var
iValue : integer;
begin
{Check device open}
if not bDeviceOpen then
begin
ErrorMsgBox('Device not open');
Exit;
End;
{Out data }
iValue := HexToInt(txtOutValue.text) and 255;
DAQDO1.Port := cmbPort.ItemIndex;
DAQDO1.Mask := HexToInt(txtMask.Text);
DAQDO1.ByteOutput(iValue);
end;
procedure TfMain.txtMaskChange(Sender: TObject);
var
i, iValue : integer;
begin
DAQDO1.Mask := HexToInt(txtMask.Text);
iValue := DAQDO1.Mask;
// txtMask.Text := IntToHex(iValue, 2);
{Update Mask bit display}
for i:=0 to 7 do
begin
if (iValue and 1) = 1 then
begin
pspMask[i]^.brush.Color := clLime;
pspMask[i]^.Tag := 1 shl i;
end
else
begin
pspMask[i]^.brush.Color := clRed;
pspMask[i]^.Tag := 0;
end;
iValue := iValue shr 1;
end;
end;
procedure TfMain.spMask0MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue(1, not spMask0.Tag);
end;
procedure TfMain.spMask1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue(2, not spMask1.Tag);
end;
procedure TfMain.spMask2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue(4, not spMask2.Tag);
end;
procedure TfMain.spMask3MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue(8, not spMask3.Tag);
end;
procedure TfMain.spMask4MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue($10, not spMask4.Tag);
end;
procedure TfMain.spMask5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue($20, not spMask5.Tag);
end;
procedure TfMain.spMask6MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue($40, not spMask6.Tag);
end;
procedure TfMain.spMask7MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WriteMaskValue($80, not spMask7.Tag);
end;
procedure TfMain.cmdReadBackClick(Sender: TObject);
var
iValue : integer;
begin
{Check device open}
if not bDeviceOpen then
begin
ErrorMsgBox('Device not open');
Exit;
End;
DAQDO1.Port := cmbPort.ItemIndex;
iValue := DAQDO1.ByteReadBack;
txtReadBack.text := IntToHex(iValue, 2);
UpdateBitOutButtons();
end;
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if bDeviceOpen Then
begin
DAQDO1.CloseDevice;
bDeviceOpen := False;
end;
end;
procedure TfMain.cmbPortChange(Sender: TObject);
var
iValue : integer;
begin
DAQDO1.Port := cmbPort.ItemIndex;
UpdateBitOutButtons();
iValue := DAQDO1.ByteReadBack;
txtReadBack.text := IntToHex(iValue, 2);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -