亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? formmain.pas

?? 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
?? PAS
字號:
{test descrption:
Computer : Pentium II 266Hz
Input Source : function generator
this program can run PCI-1760 safely under 500Hz DI input in Windows NT
but due to OS windows 95, this program only can run PCi-1760 safely under
200 Hz DI input
So if you want more high speed performance please use VC++ language to write
you project or run this program under Windows NT OS
Note: project property in compile item you must select compile to native code}

unit FormMain;

interface

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

type
  TfrmMain = class(TForm)
    GroupBox1: TGroupBox;
    labDeviceName: TStaticText;
    btnSelectDevice: TButton;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    txtChannelNo: TEdit;
    labValue: TStaticText;
    StaticText3: TStaticText;
    txtScanTime: TEdit;
    StaticText4: TStaticText;
    chkFilter: TCheckBox;
    chkPattern: TCheckBox;
    chkCounter: TCheckBox;
    chkStatus: TCheckBox;
    labPatternMatchCount: TStaticText;
    labMatchChannel: TStaticText;
    StaticText7: TStaticText;
    StaticText8: TStaticText;
    labMatchCount: TStaticText;
    cmdStart: TButton;
    cmdStop: TButton;
    ScanTimer: TTimer;
    BitBtn1: TBitBtn;

    labOverflowChannel: TStaticText;
    StaticText11:       TStaticText;
    labOverflowCount:   TStaticText;
    labStatus:          TStaticText;
    StaticText14:       TStaticText;
    labChannelNo:       TStaticText;
    StaticText16:       TStaticText;
    labStatusCount:     TStaticText;

    procedure chkFilterClick(Sender: TObject);
    procedure chkPatternClick(Sender: TObject);
    procedure chkStatusClick(Sender: TObject);
    procedure chkCounterClick(Sender: TObject);
    procedure btnSelectDeviceClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cmdStartClick(Sender: TObject);
    procedure cmdStopClick(Sender: TObject);
    procedure txtScanTimeChange(Sender: TObject);
    procedure ScanTimerTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  	lDeviceNum    :	Longint;
	lDeviceHandle :	Longint;
  	szDescription :	array[0..81] of Char;

  	bRun     : Boolean;
  	bPattern : Boolean;
  	bStatus  : Boolean;
  	bFilter  : Boolean;
  	bCounter : Boolean;

  	ptFilter          : PT_DIFilter;
  	ptDIPattern       : PT_DIPattern;
  	ptDICounter       : PT_DICounter;
  	ptDIStatus        : PT_DIStatus;
  	ptFDITransfer     : PT_FDITransfer;
  	ptDioReadPortByte : PT_DioReadPortByte;

  	wThread: TWatchThread;
  	TData:   PT_ThreadData;

  	RisingEventCount     :	Integer;
  	FallingEventCount    :	Integer;
  	PatternEventCount    :	Integer;
  	CountMatchEventCount :	Integer;
  	CountOverflowEventCount :	Integer;
  end;

var
  frmMain:	TfrmMain;

implementation

uses FormFilt, FormPatt, FormCoun, FormStat;

{$R *.DFM}



{*************************************************************
 * Function: Handle the error code. If the input error code > 0,
 *           it means some error apperent.  This function can
 *           show the error message to a message box and stop
 *           this application.
 * Input:    The error code.
 * return:   none
 ************************************************************* }
Function DoesErr(var lErrCode: LongInt): integer;
var
	szErrMsg   : string[100];
	pszErrMsg  : PChar;
begin
     {Check the pressed error code}
	If (lErrCode <> 0) Then
     Begin
		pszErrMsg := @szErrMsg;
		DRV_GetErrorMessage(lErrCode, pszErrMsg);
		Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
		DoesErr := 1;
	  End
	Else
		DoesErr := 0;
end;


procedure TfrmMain.chkFilterClick(Sender: TObject);
begin
	If chkFilter.Checked = True Then Begin
		frmFilter.ShowModal;
	   If frmFilter.bCancel = True Then Begin
			chkFilter.Checked := False;
	      bFilter := False;
		End Else Begin
	      bFilter := True;
		End
   End Else
      bFilter := False;
end;


procedure TfrmMain.chkPatternClick(Sender: TObject);
begin
	If chkPattern.Checked = True Then Begin
   	frmPattern.ShowModal;
	   If frmPattern.bCancel = True Then Begin
			chkPattern.Checked := False;
	      bPattern := False;
		End Else Begin
	      bPattern := True;
		End
   End Else
   	bPattern := False;
end;


procedure TfrmMain.chkStatusClick(Sender: TObject);
begin
	If chkStatus.Checked = True then Begin
   	frmStatus.ShowModal;
	   If frmStatus.bCancel = True Then Begin
			chkStatus.Checked := False;
	      bStatus := False;
		End Else Begin
	      bStatus := True;
		End
   End Else
      bStatus := False;
end;


procedure TfrmMain.chkCounterClick(Sender: TObject);
begin
	if chkCounter.Checked = True Then Begin
   	frmCounter.ShowModal;
	   If frmCounter.bCancel = True Then Begin
			chkCounter.Checked := False;
			bCounter := False;
		End Else Begin
			bCounter := True;
		End
   End Else
		bCounter := False;
end;


procedure TfrmMain.btnSelectDeviceClick(Sender: TObject);
begin
	DRV_SelectDevice(Handle, True, lDeviceNum, szDescription);
   labDeviceName.Caption := szDescription;
end;


procedure TfrmMain.FormCreate(Sender: TObject);
begin
	DRV_SelectDevice(Handle, False, lDeviceNum, szDescription);
   labDeviceName.Caption := szDescription;

   bRun     := False;
	bPattern := False;
	bStatus  := False;
	bFilter  := False;
	bCounter := False;

	RisingEventCount        := 0;
   FallingEventCount       := 0;
   PatternEventCount       := 0;
   CountMatchEventCount    := 0;
   CountOverflowEventCount := 0;

end;


procedure TfrmMain.cmdStartClick(Sender: TObject);
var
	lErrCde       : Longint;
begin
	lErrCde := DRV_DeviceOpen( lDeviceNum, lDeviceHandle);
	If ( DoesErr(lErrCde) = 1 ) Then
		Exit;

   If bFilter Then
     Begin
		ptFilter.EventType    := ADS_EVT_FILTER;
		ptFilter.EventEnabled := 1;
		ptFilter.Count        := 1;
		ptFilter.EnableMask   := frmFilter.EnableMask;
		ptFilter.HiValue      := @frmFilter.HiValue[0];
		ptFilter.LowValue     := @frmFilter.LoValue[0];
		lErrCde := DRV_EnableEventEx(lDeviceHandle, @ptFilter);
     End;

   If bPattern Then
     Begin
      ptDIPattern.EventType    := ADS_EVT_PATTERNMATCH;
      ptDIPattern.EventEnabled := 1;
      ptDIPattern.Count        := 1;
      ptDIPattern.EnableMask   := frmPattern.EnableMask;
      ptDIPattern.PatternValue := frmPattern.PatternValue;
      lErrCde := DRV_EnableEventEx(lDeviceHandle, @ptDIPattern);
		if ( DoesErr(lErrCde) = 1 ) then
			Exit;
     End;

   If bCounter Then
     Begin
      ptDICounter.EventType    := ADS_EVT_COUNTER;
      ptDICounter.EventEnabled := 1;
      ptDICounter.Count        := 1;
      ptDICounter.Direction    := frmCounter.Direction;
      ptDICounter.EnableMask   := frmCounter.EnableMask;
      ptDICounter.MatchEnableMask    := frmCounter.MatchEnableMask;
      ptDICounter.OverflowEnableMask := frmCounter.OverflowEnableMask;
      ptDICounter.TrigEdge     := frmCounter.TrigEdge;
      ptDICounter.PresetValue  := @frmCounter.PresetValue[0];
      ptDICounter.MatchValue   := @frmCounter.MatchValue[0];
      lErrCde := DRV_EnableEventEx(lDeviceHandle, @ptDICounter);
		if ( DoesErr(lErrCde) = 1 ) then
			Exit;
      {lErrCde := DRV_DICounterReset(lDeviceHandle, frmCounter.MatchEnableMask);
		if ( DoesErr(lErrCde) = 1 ) then
			Exit;         Eric Lin 3/19/99}
     End;

   If bStatus Then
     Begin
      ptDIStatus.EventType    := ADS_EVT_STATUSCHANGE;
      ptDIStatus.EventEnabled := 1;
      ptDIStatus.Count        := 1;
      ptDIStatus.EnableMask   := frmStatus.EnableMask;
      ptDIStatus.RisingEdge   := frmStatus.RisingEdge;
      ptDIStatus.FallingEdge  := frmStatus.FallingEdge;
      lErrCde := DRV_EnableEventEx(lDeviceHandle, @ptDIStatus);
		if ( DoesErr(lErrCde) = 1 ) then
			Exit;
     End;

   if (bFilter or bPattern or bCounter or bStatus) Then
     Begin

   	TData.lDeviceHandle        := lDeviceHandle;
	   TData.labPatternMatchCount := @labPatternMatchCount;
	   TData.labMatchChannel      := @labMatchChannel;
	   TData.labMatchCount        := @labMatchCount;
	   TData.labOverflowChannel   := @labOverflowChannel;
	   TData.labOverflowCount     := @labOverflowCount;
	   TData.labStatus            := @labStatus;
	   TData.labChannelNo         := @labChannelNo;
	   TData.labStatusCount       := @labStatusCount;

		TData.RisingEventCount        := @RisingEventCount;
		TData.FallingEventCount       := @FallingEventCount;
		TData.PatternEventCount       := @PatternEventCount;
		TData.CountMatchEventCount    := @CountMatchEventCount;
		TData.CountOverflowEventCount := @CountOverflowEventCount;

		wThread := TWatchThread.Create(TData);

     End;

   cmdStart.Enabled  := False;
   cmdStop.Enabled   := True;
   ScanTimer.Enabled := True;
   bRun              := True;
end;


procedure TfrmMain.cmdStopClick(Sender: TObject);
var
	lErrCde       : Longint;
begin
	If Assigned(WThread) Then
   	WThread.Terminate;

{	ptDIPattern.EventType := 0;
	ptDIPattern.EventEnabled := 0;
	lErrCde := DRV_EnableEventEx(lDeviceHandle, @ptDIPattern); }
   ptFilter.EventType := 0;
   ptFilter.EventEnabled := 0;
	lErrCde := DRV_EnableEventEx(lDeviceHandle, @ptFilter);
   DoesErr(lErrCde);

   DRV_DeviceClose(lDeviceHandle);

   cmdStart.Enabled  := True;
   cmdStop.Enabled   := False;
   ScanTimer.Enabled := False;
   bRun              := False;
end;

procedure TfrmMain.txtScanTimeChange(Sender: TObject);
begin
	ScanTimer.Interval := StrToInt(txtScanTime.Text);
end;

procedure TfrmMain.ScanTimerTimer(Sender: TObject);
Var
	lErrCde     : Longint;
   InputData	: Smallint;
begin
   ptDioReadPortByte.Port := StrToInt(txtChannelNo.Text);
   ptDioReadPortByte.Value := @InputData;
   lErrCde := DRV_DioReadPortByte(lDeviceHandle, ptDioReadPortByte);
	if ( DoesErr(lErrCde) = 1 ) then
		Exit;
   labValue.Caption := IntToStr(InputData);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人片在线观看无码| 欧美熟乱第一页| 日韩女优毛片在线| 日韩成人免费看| 91精品国产日韩91久久久久久| 天天操天天综合网| 91精品国产日韩91久久久久久| 美女视频网站久久| 久久久久久久国产精品影院| 成人综合激情网| 一区二区高清在线| 91精品婷婷国产综合久久竹菊| 美女高潮久久久| 国产喂奶挤奶一区二区三区| jvid福利写真一区二区三区| 伊人色综合久久天天人手人婷| 欧美日本一区二区三区| 久久成人综合网| 国产精品乱码人人做人人爱| 色呦呦日韩精品| 麻豆成人91精品二区三区| 国产欧美在线观看一区| 91久久精品一区二区三| 蜜桃视频免费观看一区| 日本一区二区三区四区| 日本精品一区二区三区四区的功能| 亚洲6080在线| 欧美国产欧美综合| 欧美日韩精品一二三区| 国内精品写真在线观看| 一区二区三区在线观看视频| 538prom精品视频线放| 国产超碰在线一区| 日韩国产欧美一区二区三区| 日本一区二区三区免费乱视频| 色激情天天射综合网| 国产乱子伦视频一区二区三区| 一区二区三区自拍| 久久精品日产第一区二区三区高清版 | 大美女一区二区三区| 精品1区2区3区| 国产清纯白嫩初高生在线观看91 | 亚洲黄色片在线观看| 亚洲成av人**亚洲成av**| 国产精品一区二区在线观看不卡| 欧美日韩色综合| 国产精品国产三级国产普通话三级| 免费成人在线网站| 成人国产精品免费网站| 夜夜夜精品看看| 日本一区二区三区在线观看| 欧美一区二区三区精品| 欧美日韩精品系列| 91麻豆视频网站| 成人性视频网站| 美女一区二区在线观看| 亚洲欧美成人一区二区三区| 欧美成人免费网站| 91精品国产乱码久久蜜臀| 色8久久人人97超碰香蕉987| 成人午夜av影视| 国产精品一区二区三区99| 日韩高清中文字幕一区| 亚洲最快最全在线视频| 中文字幕在线一区二区三区| 亚洲大片免费看| 欧美肥妇free| 欧美在线观看视频一区二区| 九色综合狠狠综合久久| 青青草原综合久久大伊人精品优势 | 亚洲欧美日韩国产手机在线| 欧美极品美女视频| 国产欧美日本一区二区三区| 久久久亚洲精品一区二区三区| 91精品福利在线一区二区三区| 欧美日韩mp4| 欧美老女人在线| 5858s免费视频成人| 91精品免费在线观看| 5566中文字幕一区二区电影| 欧美一级精品在线| 日韩欧美精品在线视频| wwwwww.欧美系列| 久久精品免视看| 国产精品亲子伦对白| 成人免费在线播放视频| 亚洲人快播电影网| 亚洲最大成人综合| 婷婷国产v国产偷v亚洲高清| 午夜精品久久久久久久| 欧美aaaaaa午夜精品| 久久99久久99| 成人av免费在线播放| 99久久亚洲一区二区三区青草| 91麻豆免费看| 91精品国产免费| 国产天堂亚洲国产碰碰| 91浏览器打开| 3atv一区二区三区| 欧美一级黄色录像| 欧美日韩国产精选| 日韩一二三区不卡| 欧美一区欧美二区| 欧美r级在线观看| 91.com在线观看| 97久久精品人人澡人人爽| 欧美日韩久久一区二区| 国产女同性恋一区二区| 亚洲视频在线观看一区| 亚洲第一久久影院| 国产酒店精品激情| 一本大道av伊人久久综合| 日韩三级.com| 中文字幕日本不卡| 免费一级片91| 成人爱爱电影网址| 7777精品伊人久久久大香线蕉最新版| 欧美成人猛片aaaaaaa| 亚洲欧美色一区| 黄色日韩网站视频| 欧美性猛交xxxxxx富婆| 久久久亚洲精品石原莉奈| 亚洲一区二区三区中文字幕在线| 精品伊人久久久久7777人| 91美女视频网站| 久久嫩草精品久久久精品| 樱桃国产成人精品视频| 精品制服美女丁香| 欧美婷婷六月丁香综合色| 欧美r级电影在线观看| 亚洲成人av一区二区三区| 粉嫩aⅴ一区二区三区四区| 91精品国产入口| 玉米视频成人免费看| 高清国产一区二区| 日韩欧美一级二级三级| 亚洲h在线观看| 91免费国产在线观看| 欧洲精品在线观看| 亚洲福利电影网| 亚洲一区成人在线| 91丨九色丨蝌蚪富婆spa| 欧美xxxxx裸体时装秀| 亚洲一二三四区不卡| 不卡的电影网站| 国产亚洲一区二区三区| 日韩中文欧美在线| 欧美色视频在线| 亚洲男人的天堂在线观看| 国产成人精品网址| 精品国产一区二区在线观看| 视频在线观看91| 欧美日韩中文另类| 一区二区三区免费网站| 99久精品国产| 亚洲国产经典视频| 成人午夜激情影院| 欧美激情中文不卡| 懂色av一区二区三区免费观看| 精品国产乱码久久久久久1区2区| 人人爽香蕉精品| 91精品国产91热久久久做人人| 三级亚洲高清视频| 日韩一卡二卡三卡国产欧美| 日韩成人免费电影| 日韩网站在线看片你懂的| 欧美a一区二区| 欧美成人video| 韩国成人在线视频| 国产亚洲综合色| 成人高清视频在线| 亚洲欧美一区二区在线观看| 成人激情小说乱人伦| 国产精品福利一区| 91蝌蚪porny| 亚洲电影在线播放| 欧美一区二区私人影院日本| 图片区小说区国产精品视频 | 香蕉成人伊视频在线观看| 欧美午夜理伦三级在线观看| 亚洲成a人在线观看| 欧美理论在线播放| 久久99九九99精品| 国产精品免费aⅴ片在线观看| jizzjizzjizz欧美| 夜色激情一区二区| 日韩一卡二卡三卡四卡| 国产精品一区二区久激情瑜伽 | 亚洲视频中文字幕| 欧美日韩一区在线| 日本成人在线看| 久久久久久久久久久久电影 | www..com久久爱| 一区二区三区免费在线观看| 欧美老肥妇做.爰bbww视频| 免费成人在线观看视频| 国产欧美一区二区在线观看| 色天使色偷偷av一区二区 | 麻豆精品国产传媒mv男同| 国产日韩三级在线|