From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Plugin.DODriverControl/Api/Dask.cs |  801 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 801 insertions(+), 0 deletions(-)

diff --git a/Plugin.DODriverControl/Api/Dask.cs b/Plugin.DODriverControl/Api/Dask.cs
new file mode 100644
index 0000000..a77f6bf
--- /dev/null
+++ b/Plugin.DODriverControl/Api/Dask.cs
@@ -0,0 +1,801 @@
+using System.Runtime.InteropServices;
+
+namespace Plugin.DODriverControl.Api;
+
+public delegate void CallbackDelegate();  
+
+public class DASK
+{
+	//ADLink PCI Card Type
+	public const ushort PCI_6208V		=1;
+	public const ushort PCI_6208A		=2;
+	public const ushort PCI_6308V       =3;
+	public const ushort PCI_6308A       =4;
+	public const ushort PCI_7200        =5;
+	public const ushort PCI_7230        =6;
+	public const ushort PCI_7233        =7;
+	public const ushort PCI_7234        =8;
+	public const ushort PCI_7248        =9;
+	public const ushort PCI_7249        =10;
+	public const ushort PCI_7250        =11;
+	public const ushort PCI_7252        =12;
+	public const ushort PCI_7296        =13;
+	public const ushort PCI_7300A_RevA  =14;
+	public const ushort PCI_7300A_RevB  =15;
+	public const ushort PCI_7432        =16;
+	public const ushort PCI_7433        =17;
+	public const ushort PCI_7434        =18;
+	public const ushort PCI_8554        =19;
+	public const ushort PCI_9111DG      =20;
+	public const ushort PCI_9111HR      =21;
+	public const ushort PCI_9112        =22;
+	public const ushort PCI_9113        =23;
+	public const ushort PCI_9114DG      =24;
+	public const ushort PCI_9114HG      =25;
+	public const ushort PCI_9118DG      =26;
+	public const ushort PCI_9118HG      =27;
+	public const ushort PCI_9118HR      =28;
+	public const ushort PCI_9810        =29;
+	public const ushort PCI_9812        =30;
+	public const ushort PCI_7396        =31;
+	public const ushort PCI_9116        =32;
+	public const ushort PCI_7256        =33;
+	public const ushort PCI_7258        =34;
+    public const ushort PCI_7260        =35;
+    public const ushort PCI_7452        =36;
+    public const ushort PCI_7442        =37;
+
+	public const ushort MAX_CARD        =32;
+
+//Error Number
+	public const short NoError						=0;
+	public const short ErrorUnknownCardType         =-1;
+	public const short ErrorInvalidCardNumber       =-2;
+	public const short ErrorTooManyCardRegistered   =-3;
+	public const short ErrorCardNotRegistered       =-4;
+	public const short ErrorFuncNotSupport          =-5;
+	public const short ErrorInvalidIoChannel        =-6;
+	public const short ErrorInvalidAdRange          =-7;
+	public const short ErrorContIoNotAllowed        =-8;
+	public const short ErrorDiffRangeNotSupport     =-9;
+	public const short ErrorLastChannelNotZero      =-10;
+	public const short ErrorChannelNotDescending    =-11;
+	public const short ErrorChannelNotAscending     =-12;
+	public const short ErrorOpenDriverFailed        =-13;
+	public const short ErrorOpenEventFailed         =-14;
+	public const short ErrorTransferCountTooLarge   =-15;
+	public const short ErrorNotDoubleBufferMode     =-16;
+	public const short ErrorInvalidSampleRate       =-17;
+	public const short ErrorInvalidCounterMode      =-18;
+	public const short ErrorInvalidCounter          =-19;
+	public const short ErrorInvalidCounterState     =-20;
+	public const short ErrorInvalidBinBcdParam      =-21;
+	public const short ErrorBadCardType             =-22;
+	public const short ErrorInvalidDaRefVoltage     =-23;
+	public const short ErrorAdTimeOut               =-24;
+	public const short ErrorNoAsyncAI               =-25;
+	public const short ErrorNoAsyncAO               =-26;
+	public const short ErrorNoAsyncDI               =-27;
+	public const short ErrorNoAsyncDO               =-28;
+	public const short ErrorNotInputPort            =-29;
+	public const short ErrorNotOutputPort           =-30;
+	public const short ErrorInvalidDioPort          =-31;
+	public const short ErrorInvalidDioLine          =-32;
+	public const short ErrorContIoActive            =-33;
+	public const short ErrorDblBufModeNotAllowed    =-34;
+	public const short ErrorConfigFailed            =-35;
+	public const short ErrorInvalidPortDirection    =-36;
+	public const short ErrorBeginThreadError        =-37;
+	public const short ErrorInvalidPortWidth        =-38;
+	public const short ErrorInvalidCtrSource        =-39;
+	public const short ErrorOpenFile                =-40;
+	public const short ErrorAllocateMemory          =-41;
+	public const short ErrorDaVoltageOutOfRange     =-42;
+	public const short ErrorDaExtRefNotAllowed      =-43;
+	public const short ErrorDIODataWidthError       =-44;
+	public const short ErrorTaskCodeError           =-45;
+	public const short ErrortriggercountError       =-46;
+	public const short ErrorInvalidTriggerMode      =-47;
+	public const short ErrorInvalidTriggerType	    =-48;
+	public const short ErrorInvalidCounterValue		=-50;
+	public const short ErrorInvalidEventHandle      =-60;
+	public const short ErrorNoMessageAvailable      =-61;
+	public const short ErrorEventMessgaeNotAdded    =-62;
+//Error number for driver API 
+	public const short ErrorConfigIoctl				=-201;
+	public const short ErrorAsyncSetIoctl			=-202;
+	public const short ErrorDBSetIoctl				=-203;
+	public const short ErrorDBHalfReadyIoctl		=-204;
+	public const short ErrorContOPIoctl				=-205;
+	public const short ErrorContStatusIoctl			=-206;
+	public const short ErrorPIOIoctl				=-207;
+	public const short ErrorDIntSetIoctl			=-208;
+	public const short ErrorWaitEvtIoctl			=-209;
+	public const short ErrorOpenEvtIoctl			=-210;
+	public const short ErrorCOSIntSetIoctl			=-211;
+	public const short ErrorMemMapIoctl				=-212;
+	public const short ErrorMemUMapSetIoctl			=-213;
+	public const short ErrorCTRIoctl			    =-214;
+	public const short ErrorGetResIoctl				=-215;
+
+//Synchronous Mode
+	public const ushort SYNCH_OP        =1;
+	public const ushort ASYNCH_OP       =2;
+
+//AD Range
+	public const ushort AD_B_10_V		=1;
+	public const ushort AD_B_5_V        =2;
+	public const ushort AD_B_2_5_V      =3;
+	public const ushort AD_B_1_25_V     =4;
+	public const ushort AD_B_0_625_V    =5;
+	public const ushort AD_B_0_3125_V   =6;
+	public const ushort AD_B_0_5_V      =7;
+	public const ushort AD_B_0_05_V     =8;
+	public const ushort AD_B_0_005_V    =9;
+	public const ushort AD_B_1_V		=10;
+	public const ushort AD_B_0_1_V		=11;
+	public const ushort AD_B_0_01_V		=12;
+	public const ushort AD_B_0_001_V	=13;
+	public const ushort AD_U_20_V		=14;
+	public const ushort AD_U_10_V		=15;
+	public const ushort AD_U_5_V		=16;
+	public const ushort AD_U_2_5_V		=17;
+	public const ushort AD_U_1_25_V		=18;
+	public const ushort AD_U_1_V		=19;
+	public const ushort AD_U_0_1_V		=20;
+	public const ushort AD_U_0_01_V		=21;
+	public const ushort AD_U_0_001_V	=22;
+
+//Clock Mode
+	public const ushort TRIG_SOFTWARE           =0;
+	public const ushort TRIG_INT_PACER          =1;
+	public const ushort TRIG_EXT_STROBE         =2;
+	public const ushort TRIG_HANDSHAKE          =3;
+	public const ushort TRIG_CLK_10MHZ          =4;  //PCI-7300A
+	public const ushort TRIG_CLK_20MHZ          =5;  //PCI-7300A
+	public const ushort TRIG_DO_CLK_TIMER_ACK   =6;  //PCI-7300A Rev. B
+	public const ushort TRIG_DO_CLK_10M_ACK     =7;  //PCI-7300A Rev. B
+	public const ushort TRIG_DO_CLK_20M_ACK     =8;  //PCI-7300A Rev. B
+//Virtual Sampling Rate for using external clock as the clock source
+	public const double CLKSRC_EXT_SampRate        =10000;
+
+//-------- Constants for PCI-6208A/PCI-6308A/PCI-6308V -------------------
+//Output Mode
+	public const ushort P6208_CURRENT_0_20MA    =0;
+	public const ushort P6208_CURRENT_4_20MA    =3;
+	public const ushort P6208_CURRENT_5_25MA    =1;
+	public const ushort P6308_CURRENT_0_20MA    =0;
+	public const ushort P6308_CURRENT_4_20MA    =3;
+	public const ushort P6308_CURRENT_5_25MA    =1;
+//AO Setting
+	public const ushort P6308V_AO_CH0_3         =0;
+	public const ushort P6308V_AO_CH4_7         =1;
+	public const ushort P6308V_AO_UNIPOLAR      =0;
+	public const ushort P6308V_AO_BIPOLAR       =1;
+//-------- Constants for PCI-7200 --------------------
+//InputMode
+	public const ushort DI_WAITING              =0x02;
+	public const ushort DI_NOWAITING            =0x00;
+
+	public const ushort DI_TRIG_RISING          =0x04;
+	public const ushort DI_TRIG_FALLING         =0x00;
+
+	public const ushort IREQ_RISING             =0x08;
+	public const ushort IREQ_FALLING            =0x00;
+
+//Output Mode
+	public const ushort OREQ_ENABLE             =0x10;
+	public const ushort OREQ_DISABLE            =0x00;
+
+	public const ushort OTRIG_HIGH              =0x20;
+	public const ushort OTRIG_LOW               =0x00;
+
+//-------- Constants for PCI-7248/7296/7396/7442 ---------------
+//DIO Port Direction
+    public const ushort INPUT_PORT = 1;
+    public const ushort OUTPUT_PORT = 2;
+//DIO Line Direction
+    public const ushort INPUT_LINE = 1;
+    public const ushort OUTPUT_LINE = 2;
+
+//Channel & Port
+	public const ushort Channel_P1A             =0;
+	public const ushort Channel_P1B             =1;
+	public const ushort Channel_P1C             =2;
+	public const ushort Channel_P1CL            =3;
+	public const ushort Channel_P1CH            =4;
+	public const ushort Channel_P1AE            =10;
+	public const ushort Channel_P1BE            =11;
+	public const ushort Channel_P1CE            =12;
+	public const ushort Channel_P2A             =5;
+	public const ushort Channel_P2B             =6;
+	public const ushort Channel_P2C             =7;
+	public const ushort Channel_P2CL            =8;
+	public const ushort Channel_P2CH            =9;
+	public const ushort Channel_P2AE            =15;
+	public const ushort Channel_P2BE            =16;
+	public const ushort Channel_P2CE            =17;
+	public const ushort Channel_P3A             =10;
+	public const ushort Channel_P3B             =11;
+	public const ushort Channel_P3C             =12;
+	public const ushort Channel_P3CL            =13;
+	public const ushort Channel_P3CH            =14;
+	public const ushort Channel_P4A             =15;
+	public const ushort Channel_P4B             =16;
+	public const ushort Channel_P4C             =17;
+	public const ushort Channel_P4CL            =18;
+	public const ushort Channel_P4CH            =19;
+	public const ushort Channel_P5A             =20;
+	public const ushort Channel_P5B             =21;
+	public const ushort Channel_P5C             =22;
+	public const ushort Channel_P5CL            =23;
+	public const ushort Channel_P5CH            =24;
+	public const ushort Channel_P6A             =25;
+	public const ushort Channel_P6B             =26;
+	public const ushort Channel_P6C             =27;
+	public const ushort Channel_P6CL            =28;
+	public const ushort Channel_P6CH            =29;
+//the following are used for PCI7396
+	public const ushort Channel_P1              =30;
+	public const ushort Channel_P2              =31;
+	public const ushort Channel_P3              =32;
+	public const ushort Channel_P4              =33;
+	public const ushort Channel_P1E             =34; //only used by DIO_PortConfig function
+	public const ushort Channel_P2E             =35; //only used by DIO_PortConfig function
+	public const ushort Channel_P3E             =36; //only used by DIO_PortConfig function
+	public const ushort Channel_P4E             =37; //only used by DIO_PortConfig function
+//7442
+    public const ushort P7442_CH0 = 0;
+    public const ushort P7442_CH1 = 1;
+    public const ushort P7442_TTL0 = 2;
+    public const ushort P7442_TTL1 = 3;
+//-------- Constants for PCI-7300A -------------------
+//Wait Status
+	public const ushort P7300_WAIT_NO           =0;
+	public const ushort P7300_WAIT_TRG          =1;
+	public const ushort P7300_WAIT_FIFO         =2;
+	public const ushort P7300_WAIT_BOTH         =3;
+
+//Terminator control
+	public const ushort P7300_TERM_OFF          =0;
+	public const ushort P7300_TERM_ON           =1;
+
+//DI control signals polarity for PCI-7300A Rev. B
+	public const ushort P7300_DIREQ_POS         =0x00000000;
+	public const ushort P7300_DIREQ_NEG         =0x00000001;
+	public const ushort P7300_DIACK_POS         =0x00000000;
+	public const ushort P7300_DIACK_NEG         =0x00000002;
+	public const ushort P7300_DITRIG_POS        =0x00000000;
+	public const ushort P7300_DITRIG_NEG        =0x00000004;
+
+//DO control signals polarity for PCI-7300A Rev. B
+	public const ushort P7300_DOREQ_POS         =0x00000000;
+	public const ushort P7300_DOREQ_NEG         =0x00000008;
+	public const ushort P7300_DOACK_POS         =0x00000000;
+	public const ushort P7300_DOACK_NEG         =0x00000010;
+	public const ushort P7300_DOTRIG_POS        =0x00000000;
+	public const ushort P7300_DOTRIG_NEG        =0x00000020;
+//-------- Constants for PCI-7432/7433/7434 ---------------
+	public const ushort PORT_DI_LOW             =0;
+	public const ushort PORT_DI_HIGH            =1;
+	public const ushort PORT_DO_LOW             =0;
+	public const ushort PORT_DO_HIGH            =1;
+	public const ushort P7432R_DO_LED           =1;
+	public const ushort P7433R_DO_LED           =0;
+	public const ushort P7434R_DO_LED           =2;
+	public const ushort P7432R_DI_SLOT          =1;
+	public const ushort P7433R_DI_SLOT          =2;
+	public const ushort P7434R_DI_SLOT          =0;
+//-- Dual-Interrupt Source control for PCI-7248/96 & 7432/33 & 7230 & 8554 & 7396 &7256 &7260 ---
+	public const short INT1_DISABLE             =-1;    //INT1 Disabled
+	public const short INT1_COS                 =0;    //INT1 COS : only available for PCI-7396, PCI-7256, PCI-7260
+	public const short INT1_FP1C0               =1;    //INT1 by Falling edge of P1C0 : only available for PCI7248/96/7396
+	public const short INT1_RP1C0_FP1C3         =2;    //INT1 by P1C0 Rising or P1C3 Falling : only available for PCI7248/96/7396
+	public const short INT1_EVENT_COUNTER       =3;    //INT1 by Event Counter down to zero : only available for PCI7248/96/7396
+	public const short INT1_EXT_SIGNAL          =1;    //INT1 by external signal : only available for PCI7432/7433/7230/8554
+	public const short INT1_COUT12              =1;    //INT1 COUT12 : only available for PCI8554
+	public const short INT1_CH0				    =1;    //INT1 CH0 : only available for PCI7256, PCI7260
+    public const short INT1_COS0                =1;    //INT1 COS0 : only available for PCI-7452/PCI-7442
+    public const short INT1_COS1                =2;    //INT1 COS1 : only available for PCI-7452/PCI-7442
+    public const short INT1_COS2                =4;    //INT1 COS2 : only available for PCI-7452/PCI-7442
+    public const short INT1_COS3                =8;    //INT1 COS3 : only available for PCI-7452/PCI-7442
+	public const short INT2_DISABLE            =-1;    //INT2 Disabled
+	public const short INT2_COS                 =0;    //INT2 COS : only available for PCI-7396
+	public const short INT2_FP2C0               =1;    //INT2 by Falling edge of P2C0 : only available for PCI7248/96/7396
+	public const short INT2_RP2C0_FP2C3         =2;    //INT2 by P2C0 Rising or P2C3 Falling : only available for PCI7248/96/7396
+	public const short INT2_TIMER_COUNTER       =3;    //INT2 by Timer Counter down to zero : only available for PCI7248/96/7396
+	public const short INT2_EXT_SIGNAL          =1;    //INT2 by external signal : only available for PCI7432/7433/7230/8554
+	public const short INT2_CH1				    =2;	  //INT2 CH1 : only available for PCI7256, PCI7260
+	public const short INT2_WDT				    =4;	  //INT2 by WDT
+
+	public const ushort ManualResetIEvt		    =0x4000;//interrupt event is manually reset by user
+	public const ushort WDT_OVRFLOW_SAFETYOUT	=0x8000;// enable safteyout while WDT overflow
+//-------- Constants for PCI-8554 --------------------
+//Clock Source of Cunter N
+	public const ushort ECKN            =0;
+	public const ushort COUTN_1         =1;
+	public const ushort CK1             =2;
+	public const ushort COUT10          =3;
+
+//Clock Source of CK1
+	public const ushort CK1_C8M         =0;
+	public const ushort CK1_COUT11      =1;
+
+//Debounce Clock
+	public const ushort DBCLK_COUT11    =0;
+	public const ushort DBCLK_2MHZ      =1;
+
+//-------- Constants for PCI-9111 --------------------
+//Dual Interrupt Mode
+	public const ushort P9111_INT1_EOC            =0;       //Ending of AD conversion
+	public const ushort P9111_INT1_FIFO_HF        =1;       //FIFO Half Full
+	public const ushort P9111_INT2_PACER          =0;       //Every Timer tick
+	public const ushort P9111_INT2_EXT_TRG        =1;       //ExtTrig High->Low
+
+//Channel Count
+	public const ushort P9111_CHANNEL_DO          =0;
+	public const ushort P9111_CHANNEL_EDO         =1;
+	public const ushort P9111_CHANNEL_DI          =0;
+	public const ushort P9111_CHANNEL_EDI         =1;
+
+//EDO function
+	public const ushort P9111_EDO_INPUT           =1;   //EDO port set as Input port
+	public const ushort P9111_EDO_OUT_EDO         =2;   //EDO port set as Output port
+	public const ushort P9111_EDO_OUT_CHN         =3;   //EDO port set as channel number ouput port
+
+//Trigger Mode
+	public const ushort P9111_TRGMOD_SOFT         =0x00;   //Software Trigger Mode
+	public const ushort P9111_TRGMOD_PRE          =0x01;   //Pre-Trigger Mode
+	public const ushort P9111_TRGMOD_POST         =0x02;   //Post Trigger Mode
+
+//AO Setting
+	public const ushort P9111_AO_UNIPOLAR         =0;
+	public const ushort P9111_AO_BIPOLAR          =1;
+
+//-------- Constants for PCI-9118 --------------------
+	public const ushort P9118_AI_BiPolar          =0x00;
+	public const ushort P9118_AI_UniPolar         =0x01;
+
+	public const ushort P9118_AI_SingEnded        =0x00;
+	public const ushort P9118_AI_Differential     =0x02;
+
+	public const ushort P9118_AI_ExtG             =0x04;
+
+	public const ushort P9118_AI_ExtTrig          =0x08;
+
+	public const ushort P9118_AI_DtrgNegative     =0x00;
+	public const ushort P9118_AI_DtrgPositive     =0x10;
+
+	public const ushort P9118_AI_EtrgNegative     =0x00;
+	public const ushort P9118_AI_EtrgPositive     =0x20;
+
+	public const ushort P9118_AI_BurstModeEn      =0x40;
+	public const ushort P9118_AI_SampleHold       =0x80;
+	public const ushort P9118_AI_PostTrgEn        =0x100;
+	public const ushort P9118_AI_AboutTrgEn       =0x200;
+
+//-------- Constants for PCI-9116 --------------------
+	public const ushort P9116_AI_LocalGND	      =0x00;
+	public const ushort P9116_AI_UserCMMD         =0x01;
+	public const ushort P9116_AI_SingEnded        =0x00;
+	public const ushort P9116_AI_Differential     =0x02;
+	public const ushort P9116_AI_BiPolar          =0x00;
+	public const ushort P9116_AI_UniPolar         =0x04;
+
+	public const ushort P9116_TRGMOD_SOFT         =0x00;   //Software Trigger Mode
+	public const ushort P9116_TRGMOD_POST         =0x10;   //Post Trigger Mode
+	public const ushort P9116_TRGMOD_DELAY        =0x20;   //Delay Trigger Mode
+	public const ushort P9116_TRGMOD_PRE          =0x30;   //Pre-Trigger Mode
+	public const ushort P9116_TRGMOD_MIDL         =0x40;   //Middle Trigger Mode
+	public const ushort P9116_AI_TrgPositive      =0x00;
+	public const ushort P9116_AI_TrgNegative      =0x80;
+	public const ushort P9116_AI_ExtTimeBase	  =0x100;
+	public const ushort P9116_AI_IntTimeBase	  =0x000;
+	public const ushort P9116_AI_DlyInSamples     =0x200;
+	public const ushort P9116_AI_DlyInTimebase    =0x000;
+	public const ushort P9116_AI_ReTrigEn         =0x400;
+	public const ushort P9116_AI_MCounterEn       =0x800;
+	public const ushort P9116_AI_SoftPolling      =0x0000;
+	public const ushort P9116_AI_INT		      =0x1000;
+	public const ushort P9116_AI_DMA			  =0x2000;
+
+//-------- Constants for PCI-9812 --------------------
+//Trigger Mode
+	public const ushort P9812_TRGMOD_SOFT         =0x00;   //Software Trigger Mode
+	public const ushort P9812_TRGMOD_POST         =0x01;   //Post Trigger Mode
+	public const ushort P9812_TRGMOD_PRE          =0x02;   //Pre-Trigger Mode
+	public const ushort P9812_TRGMOD_DELAY        =0x03;   //Delay Trigger Mode
+	public const ushort P9812_TRGMOD_MIDL         =0x04;   //Middle Trigger Mode
+
+	public const ushort P9812_AIEvent_Manual      =0x08;   //Middle Trigger Mode
+
+    //Trigger Source
+	public const ushort P9812_TRGSRC_CH0          =0x00;   //trigger source --CH0
+	public const ushort P9812_TRGSRC_CH1          =0x08;   //trigger source --CH1
+	public const ushort P9812_TRGSRC_CH2          =0x10;   //trigger source --CH2
+	public const ushort P9812_TRGSRC_CH3          =0x18;   //trigger source --CH3
+	public const ushort P9812_TRGSRC_EXT_DIG      =0x20;   //External Digital Trigger
+
+//Trigger Polarity
+	public const ushort P9812_TRGSLP_POS          =0x00;   //Positive slope trigger
+	public const ushort P9812_TRGSLP_NEG          =0x40;   //Negative slope trigger
+
+//Frequency Selection
+	public const ushort P9812_AD2_GT_PCI          =0x80;   //Freq. of A/D clock > PCI clock freq.
+	public const ushort P9812_AD2_LT_PCI          =0x00;   //Freq. of A/D clock < PCI clock freq.
+
+//Clock Source
+	public const ushort P9812_CLKSRC_INT          =0x000;   //Internal clock
+	public const ushort P9812_CLKSRC_EXT_SIN      =0x100;  //External SIN wave clock
+	public const ushort P9812_CLKSRC_EXT_DIG      =0x200;  //External Square wave clock
+
+//EMG shdn ctrl code
+	public const ushort EMGSHDN_OFF                 =0;     //off
+	public const ushort EMGSHDN_ON                  =1; //on
+	public const ushort EMGSHDN_RECOVERY            =2; //recovery
+
+//Hot Reset Hold ctrl code
+	public const ushort HRH_OFF                     =0; //off
+    public const ushort HRH_ON                      =1; //on
+
+//-------- Timer/Counter -----------------------------
+//Counter Mode (8254)
+	public const ushort TOGGLE_OUTPUT             =0;     //Toggle output from low to high on terminal count
+	public const ushort PROG_ONE_SHOT             =1;     //Programmable one-shot
+	public const ushort RATE_GENERATOR            =2;     //Rate generator
+	public const ushort SQ_WAVE_RATE_GENERATOR    =3;     //Square wave rate generator
+	public const ushort SOFT_TRIG                 =4;     //Software-triggered strobe
+	public const ushort HARD_TRIG                 =5;     //Hardware-triggered strobe
+
+//General Purpose Timer/Counter
+//Counter Mode
+	public const ushort General_Counter           =0x00; //general counter
+	public const ushort Pulse_Generation          =0x01; //pulse generation
+//GPTC clock source
+	public const ushort GPTC_CLKSRC_EXT			  =0x08;
+	public const ushort GPTC_CLKSRC_INT			  =0x00;
+	public const ushort GPTC_GATESRC_EXT		  =0x10;
+	public const ushort GPTC_GATESRC_INT		  =0x00;
+	public const ushort GPTC_UPDOWN_SELECT_EXT	  =0x20;
+	public const ushort GPTC_UPDOWN_SELECT_SOFT	  =0x00;
+	public const ushort GPTC_UP_CTR				  =0x40;
+	public const ushort GPTC_DOWN_CTR			  =0x00;
+	public const ushort GPTC_ENABLE				  =0x80;
+	public const ushort GPTC_DISABLE			  =0x00;
+
+//Watchdog Timer
+//Counter action
+	public const ushort WDT_DISARM        =0;
+	public const ushort WDT_ARM           =1;
+	public const ushort WDT_RESTART       =2;
+
+//Pattern ID
+	public const ushort INIT_PTN               =0;
+	public const ushort EMGSHDN_PTN            =1;
+
+//16-bit binary or 4-decade BCD counter
+	public const ushort BIN             =0;
+	public const ushort BCD             =1;
+
+//Pattern ID for 7442
+    public const ushort INIT_PTN_CH0 =          0;
+	public const ushort INIT_PTN_CH1		   =1;
+	public const ushort SAFTOUT_PTN_CH0		   =4;
+	public const ushort SAFTOUT_PTN_CH1		   =5;	
+
+//DAQ Event type for the event message  
+	public const ushort AIEnd    =0;
+	public const ushort DIEnd    =0;
+	public const ushort DOEnd    =0;
+	public const ushort DBEvent  =1;
+
+	public const ushort RegBySlot=0x8000;
+
+/*------------------------------------------------------------------
+** PCIS-DASK Function prototype
+------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short Register_Card (ushort CardType, ushort card_num);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short Release_Card  (ushort CardNumber);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GetActualRate (ushort CardNumber, double fSampleRate, out double fActualRate);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short EMGShutDownControl (ushort CardNumber, byte ctrl);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short EMGShutDownStatus (ushort CardNumber, out byte sts);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short HotResetHoldControl(ushort wCardNumber, byte enable);
+    [DllImport("PCI-Dask64.dll")]
+    public static extern short HotResetHoldStatus(ushort wCardNumber, out byte sts);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GetInitPattern (ushort CardNumber, byte patID, out uint pattern);
+    [DllImport("PCI-Dask64.dll")]
+    public static extern short SetInitPattern(ushort wCardNumber, byte patID, uint pattern);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short IdentifyLED_Control (ushort CardNumber, byte ctrl);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9111_Config (ushort CardNumber, ushort TrigSource, ushort TrgMode, ushort TraceCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9112_Config (ushort CardNumber, ushort TrigSource);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9113_Config (ushort CardNumber, ushort TrigSource);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9114_Config (ushort CardNumber, ushort TrigSource);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9116_Config (ushort CardNumber, ushort ConfigCtrl, ushort TrigCtrl, ushort PostCnt, ushort MCnt, ushort ReTrgCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9118_Config (ushort CardNumber, ushort ModeCtrl, ushort FunCtrl, ushort BurstCnt, ushort PostCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9812_Config (ushort CardNumber, ushort TrgMode, ushort TrgSrc, ushort TrgPol, ushort ClkSel, ushort TrgLevel, ushort PostCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9812_SetDiv (ushort wCardNumber, uint PacerVal);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9114_PreTrigConfig (ushort CardNumber, ushort PreTrgEn, ushort TraceCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_9116_CounterInterval (ushort wCardNumber, uint ScanIntrv, uint SampIntrv);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_InitialMemoryAllocated (ushort CardNumber, out uint MemSize);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ReadChannel (ushort CardNumber, ushort Channel, ushort AdRange, out ushort Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_VReadChannel (ushort CardNumber, ushort Channel, ushort AdRange, out double voltage);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_VoltScale (ushort CardNumber, ushort AdRange, ushort reading, out double voltage);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContReadChannel (ushort CardNumber, ushort Channel, ushort AdRange,
+               ushort[] Buffer, uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContReadMultiChannels (ushort CardNumber, ushort NumChans, ushort[] Chans,
+               ushort[] AdRanges, ushort[] Buffer, uint ReadCount,
+               double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContScanChannels (ushort CardNumber, ushort Channel, ushort AdRange,
+               ushort[] Buffer, uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContReadChannelToFile (ushort CardNumber, ushort Channel, ushort AdRange,
+               string FileName, uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContReadMultiChannelsToFile (ushort CardNumber, ushort NumChans, ushort[] Chans,
+               ushort[] AdRanges, string[] FileName, uint ReadCount,
+               double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContScanChannelsToFile (ushort CardNumber, ushort Channel, ushort AdRange,
+               string FileName, uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContStatus (ushort CardNumber, out ushort Status);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_ContVScale (ushort wCardNumber, ushort adRange, ushort[] readingArray, double[] voltageArray, int count);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short AI_AsyncCheck(ushort CardNumber, out byte Stopped, out uint AccessCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_AsyncClear (ushort CardNumber, out uint AccessCnt);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short AI_AsyncDblBufferHalfReady(ushort CardNumber, out byte HalfReady, out byte StopFlag);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_AsyncDblBufferMode (ushort CardNumber, bool Enable);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_AsyncDblBufferTransfer (ushort CardNumber, ushort[] Buffer);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_AsyncDblBufferOverrun (ushort CardNumber, ushort op, out ushort overrunFlag);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short AI_EventCallBack(ushort CardNumber, ushort mode, ushort EventType, MulticastDelegate callbackAddr);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_6208A_Config (ushort CardNumber, ushort V2AMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_6308A_Config (ushort CardNumber, ushort V2AMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_6308V_Config (ushort wCardNumber, ushort Channel, ushort wOutputPolarity, double refVoltage);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_9111_Config (ushort CardNumber, ushort OutputPolarity);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_9112_Config (ushort CardNumber, ushort Channel, double refVoltage);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_WriteChannel (ushort CardNumber, ushort Channel, short Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_VWriteChannel (ushort CardNumber, ushort Channel, double Voltage);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_VoltScale (ushort CardNumber, ushort Channel, double Voltage, out short binValue);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_SimuWriteChannel (ushort wCardNumber, ushort wGroup, short[] pwBuffer);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_SimuVWriteChannel (ushort wCardNumber, ushort wGroup, double[] VBuffer);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_7200_Config (ushort CardNumber, ushort TrigSource, ushort ExtTrigEn, ushort TrigPol, ushort I_REQ_Pol);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_7300A_Config (ushort CardNumber, ushort PortWidth, ushort TrigSource, ushort WaitStatus, ushort Terminator, ushort I_REQ_Pol, bool clear_fifo, bool disable_di);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_7300B_Config (ushort CardNumber, ushort PortWidth, ushort TrigSource, ushort WaitStatus, ushort Terminator, ushort I_Cntrl_Pol, bool clear_fifo, bool disable_di);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_InitialMemoryAllocated (ushort CardNumber, out uint DmaSize);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ReadLine (ushort CardNumber, ushort Port, ushort Line, out ushort State);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ReadPort (ushort CardNumber, ushort Port, out uint Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ContReadPort (ushort CardNumber, ushort Port, byte[] Buffer,
+               uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ContReadPort (ushort CardNumber, ushort Port, ushort[] Buffer,
+               uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DI_ContReadPort(ushort CardNumber, ushort Port, uint[] Buffer,
+               uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ContReadPortToFile (ushort CardNumber, ushort Port, string FileName, 
+								  uint ReadCount, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ContStatus (ushort CardNumber, out ushort Status);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_AsyncCheck (ushort CardNumber, out byte Stopped, out uint AccessCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_AsyncClear (ushort CardNumber, out uint AccessCnt);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DI_AsyncDblBufferHalfReady(ushort CardNumber, out byte HalfReady);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_AsyncDblBufferMode (ushort CardNumber, bool Enable);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_AsyncDblBufferTransfer (ushort CardNumber, byte[] Buffer);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_AsyncDblBufferTransfer (ushort CardNumber, short[] Buffer);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DI_AsyncDblBufferTransfer(ushort CardNumber, uint[] Buffer);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ContMultiBufferSetup (ushort wCardNumber, byte[] pwBuffer, uint dwReadCount, out ushort BufferId);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ContMultiBufferSetup (ushort wCardNumber, short[] pwBuffer, uint dwReadCount, out ushort BufferId);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DI_ContMultiBufferSetup(ushort wCardNumber, uint[] pwBuffer, uint dwReadCount, out ushort BufferId);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_ContMultiBufferStart (ushort wCardNumber, ushort wPort, double fSampleRate);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DI_AsyncMultiBufferNextReady(ushort CardNumber, out byte bNextReady, out ushort wBufferId);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_AsyncDblBufferOverrun (ushort CardNumber, ushort op, out ushort overrunFlag);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DI_EventCallBack(ushort CardNumber, short mode, short EventType, MulticastDelegate callbackAddr);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_7200_Config (ushort CardNumber, ushort TrigSource, ushort OutReqEn, ushort OutTrigSig);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_7300A_Config (ushort CardNumber, ushort PortWidth, ushort TrigSource, ushort WaitStatus, ushort Terminator, ushort O_REQ_Pol);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_7300B_Config (ushort CardNumber, ushort PortWidth, ushort TrigSource, ushort WaitStatus, ushort Terminator, ushort O_Cntrl_Pol, uint FifoThreshold);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_InitialMemoryAllocated (ushort CardNumber, out uint MemSize);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_WriteLine (ushort CardNumber, ushort Port, ushort Line, ushort Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_WritePort (ushort CardNumber, byte Port, uint Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_WritePort (ushort CardNumber, ushort Port, uint Value);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DO_WritePort(ushort CardNumber, uint Port, uint Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_WriteExtTrigLine (ushort CardNumber, ushort Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ReadLine (ushort CardNumber, ushort Port, ushort Line, out ushort Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ReadPort (ushort CardNumber, ushort Port, out uint Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ContWritePort (ushort CardNumber, ushort Port, byte[] Buffer,
+               uint WriteCount, ushort Iterations, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ContWritePort (ushort CardNumber, ushort Port, ushort[] Buffer,
+               uint WriteCount, ushort Iterations, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ContWritePort (ushort CardNumber, ushort Port, uint[] Buffer,
+               uint WriteCount, ushort Iterations, double SampleRate, ushort SyncMode);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_PGStart (ushort CardNumber, byte[] Buffer, uint WriteCount, double SampleRate);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_PGStart (ushort CardNumber, short[] Buffer, uint WriteCount, double SampleRate);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DO_PGStart(ushort CardNumber, uint[] Buffer, uint WriteCount, double SampleRate);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_PGStop (ushort CardNumber);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ContStatus (ushort CardNumber, out ushort Status);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DO_AsyncCheck(ushort CardNumber, out byte Stopped, out uint AccessCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_AsyncClear (ushort CardNumber, out uint AccessCnt);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short EDO_9111_Config (ushort CardNumber, ushort EDO_Fun);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ContMultiBufferSetup (ushort CardNumber, byte[] pwBuffer, uint dwWriteCount, out ushort BufferId);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ContMultiBufferSetup (ushort CardNumber, short[] pwBuffer, uint dwWriteCount, out ushort BufferId);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DO_ContMultiBufferSetup(ushort CardNumber, uint[] pwBuffer, uint dwWriteCount, out ushort BufferId);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DO_AsyncMultiBufferNextReady(ushort CardNumber, out byte bNextReady, out ushort wBufferId);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_ContMultiBufferStart (ushort wCardNumber, ushort wPort, double fSampleRate);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DO_EventCallBack(ushort CardNumber, short mode, short EventType, MulticastDelegate callbackAddr);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DIO_PortConfig (ushort CardNumber, ushort Port, ushort Direction);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_LinesConfig(ushort wCardNumber, ushort wPort, ushort wLinesdirmap);
+    [DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_LineConfig(ushort wCardNumber, ushort wPort, ushort wLine, ushort wDirection);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DIO_SetDualInterrupt (ushort CardNumber, short Int1Mode, short Int2Mode, long hEvent);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DIO_SetCOSInterrupt (ushort CardNumber, ushort Port, ushort ctlA, ushort ctlB, ushort ctlC);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_INT1_EventMessage(ushort CardNumber, short Int1Mode, long windowHandle, long message, MulticastDelegate callbackAddr);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_INT2_EventMessage(ushort CardNumber, short Int2Mode, long windowHandle, long message, MulticastDelegate callbackAddr);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DIO_7300SetInterrupt (ushort CardNumber, short AuxDIEn, short T2En, long hEvent);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_AUXDI_EventMessage(ushort CardNumber, short AuxDIEn, long windowHandle, uint message, MulticastDelegate callbackAddr);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_T2_EventMessage(ushort CardNumber, short T2En, long windowHandle, uint message, MulticastDelegate callbackAddr);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DIO_GetCOSLatchData(ushort wCardNumber, out ushort CosLData);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_SetCOSInterrupt32(ushort wCardNumber, byte Port, uint ctl, out long hEvent, bool bManualReset);
+	[DllImport("PCI-Dask64.dll")]
+    public static extern short DIO_GetCOSLatchDataInt32(ushort wCardNumber, byte Port, out uint CosLData);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short CTR_Setup (ushort CardNumber, ushort Ctr, ushort Mode, uint Count, ushort BinBcd);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short CTR_Clear (ushort CardNumber, ushort Ctr, ushort State);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short CTR_Read (ushort CardNumber, ushort Ctr, out uint Value);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short CTR_Update (ushort CardNumber, ushort Ctr, uint Count);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short CTR_8554_ClkSrc_Config (ushort CardNumber, ushort Ctr, ushort ClockSource);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short CTR_8554_CK1_Config (ushort CardNumber, ushort ClockSource);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short CTR_8554_Debounce_Config (ushort CardNumber, ushort DebounceClock);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GCTR_Setup (ushort wCardNumber, ushort wGCtr, ushort wGCtrCtrl,uint dwCount);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GCTR_Clear (ushort wCardNumber, ushort wGCtr);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GCTR_Read (ushort wCardNumber, ushort wGCtr, out uint pValue);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short WDT_Setup (ushort CardNumber, ushort wCtr, float ovflowSec, out float actualSec, out long hEvent);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short WDT_Control (ushort wCardNumber, ushort wCtr, ushort action);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short WDT_Status (ushort wCardNumber, ushort Ctr, out uint pValue);
+    [DllImport("PCI-Dask64.dll")]
+    public static extern short WDT_Reload(ushort wCardNumber, float ovflowSec, out float actualSec);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_GetEvent(ushort wCardNumber, out long hEvent);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AO_GetEvent(ushort wCardNumber, out long hEvent);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_GetEvent(ushort wCardNumber, out long hEvent);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_GetEvent(ushort wCardNumber, out long hEvent);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short AI_GetView(ushort wCardNumber, uint[] pView);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DI_GetView(ushort wCardNumber, uint[] pView);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short DO_GetView(ushort wCardNumber, uint[] pView);
+/*---------------------------------------------------------------------------*/
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GetCardType (ushort wCardNumber, out ushort cardType);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GetCardIndexFromID (ushort wCardNumber, out ushort cardType, out ushort cardIndex);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GetBaseAddr(ushort wCardNumber, uint[] BaseAddr, uint[] BaseAddr2);
+	[DllImport("PCI-Dask64.dll")]
+	public static extern short GetLCRAddr(ushort wCardNumber, uint[] LcrAddr);
+}
\ No newline at end of file

--
Gitblit v1.9.1