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 作为历史根节点

---
 SimpleUtil/DIOController/Dask.cs |  803 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 803 insertions(+), 0 deletions(-)

diff --git a/SimpleUtil/DIOController/Dask.cs b/SimpleUtil/DIOController/Dask.cs
new file mode 100644
index 0000000..f8a0d60
--- /dev/null
+++ b/SimpleUtil/DIOController/Dask.cs
@@ -0,0 +1,803 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace DIOController
+{
+    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