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

📄 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, Menus;

type
  Tfrmrun = class(TForm)
    GroupSample: TGroupBox;
    PictureBit0: Timage;
    PictureBit1: TImage;
    PictureBit2: TImage;
    PictureBit3: TImage;
    PictureBit4: TImage;
    PictureBit5: TImage;
    PictureBit7: TImage;
    labBit0: TLabel;
    labBit1: TLabel;
    labBit2: TLabel;
    labBit3: TLabel;
    labBit4: TLabel;
    labBit5: TLabel;
    labBit6: TLabel;
    labBit7: TLabel;
    CmdRead: TButton;
    frmSampleRate: TGroupBox;
    tmrRead: TTimer;
    hscrFreq: TScrollBar;
    labStart: TLabel;
    labEnd: TLabel;
    PictureBit6: TImage;
    CmdExit: TButton;
    procedure FormCreate(Sender: TObject);
    procedure tmrReadTimer(Sender: TObject);
    procedure CmdReadClick(Sender: TObject);
    procedure hscrFreqChange(Sender: TObject);
    procedure CmdExitClick(Sender: TObject);
  private
    { Private declarations }
    DiValue : Smallint;
    procedure UpdateLED;
  public
    { Public declarations }
  end;

var
  frmrun: Tfrmrun;

implementation

uses formstar;

const
     LedON  = True;
     LedOFF = False;
var
   Response       : Integer;
{$R *.DFM}

procedure Tfrmrun.UpdateLED;
var
   LedStatus, tempBit, value : Smallint;
begin
    value := DiValue;
    { Check every Digtial data bit }
    For tempBit := 0 To 7 do
    begin
        LedStatus := value mod 2;
        value := value div 2;
        if LedStatus = 1 then
        begin
           case tempBit of
                0 : PictureBit0.Visible := True;
                1 : PictureBit1.Visible := True;
                2 : PictureBit2.Visible := True;
                3 : PictureBit3.Visible := True;
                4 : PictureBit4.Visible := True;
                5 : PictureBit5.Visible := True;
                6 : PictureBit6.Visible := True;
                7 : PictureBit7.Visible := True;
           end;
        end
        else
        begin
            case tempBit of
                0 : PictureBit0.Visible := False;
                1 : PictureBit1.Visible := False;
                2 : PictureBit2.Visible := False;
                3 : PictureBit3.Visible := False;
                4 : PictureBit4.Visible := False;
                5 : PictureBit5.Visible := False;
                6 : PictureBit6.Visible := False;
                7 : PictureBit7.Visible := False;
           end;
        end;
    end;
end;

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

procedure Tfrmrun.tmrReadTimer(Sender: TObject);
begin
     lpDioReadPort.port := lpDioPortMode.port;
     lpDioReadPort.value := @DiValue;
     ErrCde := DRV_DioReadPortByte(DeviceHandle, lpDioReadPort);
     If (ErrCde <> 0) Then
     begin
          DRV_GetErrorMessage(ErrCde, pszErrMsg);
          Response := Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
          Exit;
     end;
     UpdateLed;
end;

procedure Tfrmrun.CmdReadClick(Sender: TObject);
begin
     tmrRead.Enabled := False;
     lpDioReadPort.port := lpDioPortMode.port;
     lpDioReadPort.value := @DiValue;
     ErrCde := DRV_DioReadPortByte(DeviceHandle, lpDioReadPort);
     If (ErrCde <> 0) Then
     begin
          DRV_GetErrorMessage(ErrCde, pszErrMsg);
          Response := Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
          Exit;
     end;
     UpdateLed;
end;

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

procedure Tfrmrun.CmdExitClick(Sender: TObject);
begin
     frmRun.Close;
     Formstar.frmstart.Show;
end;

end.

⌨️ 快捷键说明

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