#ifndef _USBDASK_H #define _USBDASK_H #ifdef __cplusplus extern "C" { #endif #include /* * DASK Data Types */ typedef unsigned char U8; typedef short I16; typedef unsigned short U16; typedef long I32; typedef unsigned long U32; typedef float F32; typedef double F64; typedef LONGLONG I64; /* * ADLink USBDAQ Module Type */ typedef enum _USBDAQ_TYPE_ { USB_1902 = 1, USB_1903, // USB_1902A USB_1901, // USB_1902L USB_2401, USB_7250, USB_7230, USB_2405, USB_1210, USB_2401A3, USB_101, NUM_USBDAQ_TYPE // NUM_MODULE_TYPE = USB_2405 + 1, // 2012Dec16, Jeff remove NUM_MODULE_TYPE enumeration } USBDAQ_TYPE; typedef struct _USBDAQ_INFO { USHORT wModuleType; // Card Type: USB_19020 (1) USHORT wCardID; // Card ID configured with onboard DIP-Switch } USBDAQ_DEVICE, *PUSBDAQ_DEVICE; typedef struct _CAL_INFO_1902 { union { struct { ULONG AI_Offset[2]; // Offset Calibration for AI GAIN[1,5,10,50] ULONG AI_Gain[2]; // Gain Calibration for AI GAIN[1,5,10,50] ULONG AO_Offset; // Offset Calibration for AO0 and AO1 ULONG AO_Gain; // Gain Calibration for AO0 and AO1 } CalInfo; UCHAR bValue[24]; } CalInfo_1902; } CAL_INFO_1902; typedef struct _CAL_INFO_1903 { union { struct { ULONG AI_Offset[4]; // Offset Calibration for AI0~AI7 GAIN[10] ULONG AI_Gain[4]; // Gain Calibration for AI0~AI7 GAIN[10] } CalInfo; UCHAR bValue[32]; } CalInfo_1903; } CAL_INFO_1903; typedef struct _CAL_CHAN_INFO_2401 { union { struct { ULONG Vol_Offset[4]; // Offset Calibration for AI [25V, 12.5V, 2.5V, 3.125mV] ULONG Vol_Gain[4]; // Gain Calibration for AI [25V, 12.5V, 2.5V, 3.125mV] ULONG Cur_Offset; // Offset Calibration for Current [20mA] ULONG Cur_Gain; // Gain Calibration for Current [20mA] ULONG RTD_Offset[4]; // Offset Calibration for RTD 4/3/2-wire [1mA] and Resistor [100uA] ULONG RTD_Gain[4]; // Gain Calibration for RTD 4/3/2-wire [1mA] and Resistor [100uA] ULONG TC_Offset; // Offset Calibration for ThermoCouple [1mA] ULONG TC_Gain; // Gain Calibration for ThermoCouple [1mA] ULONG LC_Offset; // Offset Calibration for LoadCellCouple [1mA] ULONG LC_Gain; // Gain Calibration for LoadCellCouple [1mA] ULONG Reserved_Offset; // Reserved for future use ULONG Reserved_Gain; // Reserved for future use } ChanCalInfo; UCHAR bValue[96]; } ChanCalInfo_2401; } CAL_CHAN_INFO_2401; typedef struct { union { struct { ULONG LC_Offset_350Ohm_full; // Offset Calibration for LoadCellCouple [1mA] ULONG LC_Gain_350Ohm_full; // Gain Calibration for LoadCellCouple [1mA] ULONG LC_Offset_350Ohm_half; // Offset Calibration for LoadCellCouple [1mA] ULONG LC_Gain_350Ohm_half; // Gain Calibration for LoadCellCouple [1mA] ULONG LC_Offset_120Ohm_full; // Offset Calibration for LoadCellCouple [1mA] ULONG LC_Gain_120Ohm_full; // Gain Calibration for LoadCellCouple [1mA] ULONG LC_Offset_120Ohm_half; // Offset Calibration for LoadCellCouple [1mA] ULONG LC_Gain_120Ohm_half; // Gain Calibration for LoadCellCouple [1mA] //ULONG Checksum; // Reserved for future use } ChanCalInfo_LC; UCHAR bValue[32]; } ChanCalInfo_2401_LC; } CAL_CHAN_INFO_2401_LC; typedef struct _QC_INFO_1902 { union { struct { double RefVoltage[4]; // Actual Voltage of onboard Reference-Voltage USHORT Trimmer; // Only Low-byet is required USHORT Reserved[3]; // reserved WORD } QCInfo; UCHAR bValue[40]; } QCInfo_1902; } QC_INFO_1902; typedef struct _VOLT_INFO_2405 { union { struct { double RefVoltage[2]; // Actual Voltage of onboard Reference-Voltage } VoltInfo; UCHAR bValue[16]; } VoltInfo_2405; } VOLT_INFO_2405; typedef struct _CAL_INFO_2405 { union { struct { ULONG AI_Offset[4]; // Offset Calibration for 4 AI (128K Samples/s) ULONG AI_Gain[4]; // Gain Calibration for 4 AI (128K Samples/s) } CalInfo; UCHAR bValue[32]; } CalInfo_2405; } CAL_INFO_2405; typedef struct _VOLT_INFO_1210 { union { struct { double RefVoltage[3]; // Actual Voltage of onboard Reference-Voltage } VoltInfo; UCHAR bValue[24]; } VoltInfo_1210; } VOLT_INFO_1210; typedef struct _CAL_INFO_1210 { union { struct { ULONG AI_Offset[4]; // Offset Calibration settings for ��9V or ��1.5V ULONG AI_Gain[4]; // Gain Calibration settings for ��9V or ��1.5V } CalInfo; UCHAR bValue[32]; } CalInfo_1210; } CAL_INFO_1210; // 2013July16, Jeff extends the MAX_USB_DEVICE definition #define MAX_USB_DEVICE 8 //#define MAX_USB_DEVICE 32 /* * Error Number */ #define NoError 0 #define ErrorUnknownCardType -1 #define ErrorInvalidCardNumber -2 #define ErrorTooManyCardRegistered -3 #define ErrorCardNotRegistered -4 #define ErrorFuncNotSupport -5 #define ErrorInvalidIoChannel -6 #define ErrorInvalidAdRange -7 #define ErrorContIoNotAllowed -8 #define ErrorDiffRangeNotSupport -9 #define ErrorLastChannelNotZero -10 #define ErrorChannelNotDescending -11 #define ErrorChannelNotAscending -12 #define ErrorOpenDriverFailed -13 #define ErrorOpenEventFailed -14 #define ErrorTransferCountTooLarge -15 #define ErrorNotDoubleBufferMode -16 #define ErrorInvalidSampleRate -17 #define ErrorInvalidCounterMode -18 #define ErrorInvalidCounter -19 #define ErrorInvalidCounterState -20 #define ErrorInvalidBinBcdParam -21 #define ErrorBadCardType -22 #define ErrorInvalidDaRefVoltage -23 #define ErrorAdTimeOut -24 #define ErrorNoAsyncAI -25 #define ErrorNoAsyncAO -26 #define ErrorNoAsyncDI -27 #define ErrorNoAsyncDO -28 #define ErrorNotInputPort -29 #define ErrorNotOutputPort -30 #define ErrorInvalidDioPort -31 #define ErrorInvalidDioLine -32 #define ErrorContIoActive -33 #define ErrorDblBufModeNotAllowed -34 #define ErrorConfigFailed -35 #define ErrorInvalidPortDirection -36 #define ErrorBeginThreadError -37 #define ErrorInvalidPortWidth -38 #define ErrorInvalidCtrSource -39 #define ErrorOpenFile -40 #define ErrorAllocateMemory -41 #define ErrorDaVoltageOutOfRange -42 #define ErrorDaExtRefNotAllowed -43 #define ErrorDIODataWidthError -44 #define ErrorTaskCodeError -45 #define ErrorTriggercountError -46 #define ErrorInvalidTriggerMode -47 #define ErrorInvalidTriggerType -48 #define ErrorInvalidCounterValue -50 #define ErrorInvalidEventHandle -60 #define ErrorNoMessageAvailable -61 #define ErrorEventMessgaeNotAdded -62 #define ErrorCalibrationTimeOut -63 #define ErrorUndefinedParameter -64 #define ErrorInvalidBufferID -65 #define ErrorInvalidSampledClock -66 #define ErrorInvalidOperationMode -67 /*Error number for driver API*/ #define ErrorConfigIoctl -201 #define ErrorAsyncSetIoctl -202 #define ErrorDBSetIoctl -203 #define ErrorDBHalfReadyIoctl -204 #define ErrorContOPIoctl -205 #define ErrorContStatusIoctl -206 #define ErrorPIOIoctl -207 #define ErrorDIntSetIoctl -208 #define ErrorWaitEvtIoctl -209 #define ErrorOpenEvtIoctl -210 #define ErrorCOSIntSetIoctl -211 #define ErrorMemMapIoctl -212 #define ErrorMemUMapSetIoctl -213 #define ErrorCTRIoctl -214 #define ErrorGetResIoctl -215 #define ErrorCalIoctl -216 #define ErrorPMIntSetIoctl -217 // Jeff added #define ErrorAccessViolationDataCopy -301 #define ErrorNoModuleFound -302 #define ErrorCardIDDuplicated -303 #define ErrorCardDisconnected -304 #define ErrorInvalidScannedIndex -305 #define ErrorUndefinedException -306 #define ErrorInvalidDioConfig -307 #define ErrorInvalidAOCfgCtrl -308 #define ErrorInvalidAOTrigCtrl -309 #define ErrorConflictWithSyncMode -310 #define ErrorConflictWithFifoMode -311 #define ErrorInvalidAOIteration -312 #define ErrorZeroChannelNumber -313 #define ErrorSystemCallFailed -314 #define ErrorTimeoutFromSyncMode -315 #define ErrorInvalidPulseCount -316 #define ErrorInvalidDelayCount -317 #define ErrorConflictWithDelay2 -318 #define ErrorAOFifoCountTooLarge -319 #define ErrorConflictWithWaveRepeat -320 #define ErrorConflictWithReTrig -321 #define ErrorInvalidTriggerChannel -322 #define ErrorInvalidInputSignal -323 #define ErrorInvalidConversionSrc -324 #define ErrorInvalidRefVoltage -325 #define ErrorCalibrateFailed -326 #define ErrorInvalidCalData -327 #define ErrorChanGainQueueTooLarge -328 #define ErrorInvalidCardType -329 #define ErrorInvalidSyncMode -330 #define ErrorIICVersion -331 #define ErrorFX2UpgradeFailed -332 #define ErrorInvalidReadCount -333 #define ErrorTEDSInvalidSensorNo -334 #define ErroeTEDSAccessTimeout -335 #define ErrorTEDSChecksumFailed -336 #define ErrorTEDSNotIEEE1451_4 -337 #define ErrorTEDSInvalidTemplateID -338 #define ErrorTEDSInvalidPrecisionValue -339 #define ErrorTEDSUnsupportedTemplate -340 #define ErrorTEDSInvalidPropertyID -341 #define ErrorTEDSNoRawData -342 #define ErrorInvalidChannel -397 #define ErrorNullPoint -398 #define ErrorInvalidParamSetting -399 // -401 ~ -499 the Kernel error #define ErrorAIStartFailed -401 #define ErrorAOStartFailed -402 #define ErrorConflictWithGPIOConfig -403 #define ErrorEepromReadback -404 #define ErrorConflictWithInfiniteOp -405 #define ErrorWaitingUSBHostResponse -406 #define ErrorAOFifoModeTimeout -407 #define ErrorInvalidModuleFunction -408 #define ErrorAdFifoFull -409 #define ErrorInvalidTransferCount -410 #define ErrorConflictWithAIConfig -411 #define ErrorDDSConfigFailed -412 #define ErrorFpgaAccessFailed -413 #define ErrorPLDBusy -414 #define ErrorPLDTimeout -415 #define ErrorURBVendorRequestFailed -416 #define ErrorUndefinedKernelError -420 // the functions supported in the future #define ErrorSyncModeNotSupport -501 /* * AD Range */ #define AD_B_10_V 1 #define AD_B_5_V 2 #define AD_B_2_5_V 3 #define AD_B_1_25_V 4 #define AD_B_0_625_V 5 #define AD_B_0_3125_V 6 #define AD_B_0_5_V 7 #define AD_B_0_05_V 8 #define AD_B_0_005_V 9 #define AD_B_1_V 10 #define AD_B_0_1_V 11 #define AD_B_0_01_V 12 #define AD_B_0_001_V 13 #define AD_U_20_V 14 #define AD_U_10_V 15 #define AD_U_5_V 16 #define AD_U_2_5_V 17 #define AD_U_1_25_V 18 #define AD_U_1_V 19 #define AD_U_0_1_V 20 #define AD_U_0_01_V 21 #define AD_U_0_001_V 22 #define AD_B_2_V 23 #define AD_B_0_25_V 24 #define AD_B_0_2_V 25 #define AD_U_4_V 26 #define AD_U_2_V 27 #define AD_U_0_5_V 28 #define AD_U_0_4_V 29 #define AD_B_1_5_V 30 #define AD_B_0_2125_V 31 #define AD_B_40_V 32 // PCI-9527 AI #define AD_B_3_16_V 33 // PCI-9527 AI #define AD_B_0_316_V 34 // PCI-9527 AI #define AD_B_25_V 35 // Jeff added for USB-2401 AI #define AD_B_12_5_V 36 /*------------------*/ /* Common Constants */ /*------------------*/ /* T or F*/ #define TRUE 1 #define FALSE 0 /*Synchronous Mode*/ #define SYNCH_OP 1 #define ASYNCH_OP 2 // Input Type #define UD_AI_NonRef_SingEnded 0x01 #define UD_AI_SingEnded 0x02 #define UD_AI_Differential 0x04 #define UD_AI_PseudoDifferential 0x08 // Input Coupling // Input Coupling #define UD_AI_EnableIEPE 0x100 #define UD_AI_DisableIEPE 0x200 #define UD_AI_Coupling_AC 0x400 #define UD_AI_Coupling_None 0x800 // Conversion Source #define UD_AI_CONVSRC_INT 0x01 #define UD_AI_CONVSRC_EXT 0x02 // wTrigCtrl in UD_AI_Trigger_Config() // Trigger Source (bit9:0) #define UD_AI_TRGSRC_AI0 0x0200 #define UD_AI_TRGSRC_AI1 0x0201 #define UD_AI_TRGSRC_AI2 0x0202 #define UD_AI_TRGSRC_AI3 0x0203 #define UD_AI_TRGSRC_AI4 0x0204 #define UD_AI_TRGSRC_AI5 0x0205 #define UD_AI_TRGSRC_AI6 0x0206 #define UD_AI_TRGSRC_AI7 0x0207 #define UD_AI_TRGSRC_AI8 0x0208 #define UD_AI_TRGSRC_AI9 0x0209 #define UD_AI_TRGSRC_AI10 0x020A #define UD_AI_TRGSRC_AI11 0x020B #define UD_AI_TRGSRC_AI12 0x020C #define UD_AI_TRGSRC_AI13 0x020D #define UD_AI_TRGSRC_AI14 0x020E #define UD_AI_TRGSRC_AI15 0x020F #define UD_AI_TRGSRC_SOFT 0x0380 #define UD_AI_TRGSRC_DTRIG 0x0388 // Trigger Edge (bit14) #define UD_AI_TrigPositive 0x4000 #define UD_AI_TrigNegative 0x0000 // Trigger Edge (bit14) #define UD_AI_Gate_PauseLow 0x4000 #define UD_AI_Gate_PauseHigh 0x0000 // ReTrigger (bit13) #define UD_AI_EnReTrigger 0x2000 // 0x02000000 #define UD_AI_DisReTrigger 0x0000 // 0x00000000 // AI Trigger Mode #define UD_AI_TRGMOD_POST 0x0000 // 0x00000000 #define UD_AI_TRGMOD_DELAY 0x4000 // 0x40000000 #define UD_AI_TRGMOD_PRE 0x8000 // 0x80000000 #define UD_AI_TRGMOD_MIDDLE 0xC000 // 0xC0000000 #define UD_AI_TRGMOD_GATED 0x1000 // 0x10000000 // AO Trigger Source (bit9:0) #define UD_AO_TRGSRC_SOFT 0x0380 #define UD_AO_TRGSRC_DTRIG 0x0388 // AO Trigger Mode #define UD_AO_TRGMOD_POST 0x0000 // AO Trigger Edge (bit14) #define UD_AO_TrigPositive 0x4000 #define UD_AO_TrigNegative 0x0000 // AO Conversion Source #define UD_AO_CONVSRC_INT 0x01 #define UD_AO_CONVSRC_EXT 0x02 // DIO_Config #define UD_DIO_DIGITAL_INPUT 0x30 #define UD_DIO_COUNTER_INPUT 0x31 #define UD_DIO_DIGITAL_OUTPUT 0x32 #define UD_DIO_PULSE_OUTPUT 0x33 /*---------------------------------*/ /* TEDS Property IDs */ /*---------------------------------*/ #define UD_TEDS_PROPERTY_TEMPLATE 1 #define UD_TEDS_PROPERTY_ElecSigType 2 #define UD_TEDS_PROPERTY_PhysMeasType 3 #define UD_TEDS_PROPERTY_MinPhysVal 4 #define UD_TEDS_PROPERTY_MaxPhysVal 5 #define UD_TEDS_PROPERTY_MinElecVal 6 #define UD_TEDS_PROPERTY_MaxElecVal 7 #define UD_TEDS_PROPERTY_MapMeth 8 #define UD_TEDS_PROPERTY_BridgeType 9 #define UD_TEDS_PROPERTY_SensorImped 10 #define UD_TEDS_PROPERTY_RespTime 11 #define UD_TEDS_PROPERTY_ExciteAmplNom 12 #define UD_TEDS_PROPERTY_ExciteAmplMin 13 #define UD_TEDS_PROPERTY_ExciteAmplMax 14 #define UD_TEDS_PROPERTY_CalDate 15 #define UD_TEDS_PROPERTY_CalInitials 16 #define UD_TEDS_PROPERTY_CalPeriod 17 #define UD_TEDS_PROPERTY_MeasID 18 /*------------------------*/ /* Constants for USB-1902 */ /*------------------------*/ // wConfigCtrl in UD_AI_1902_Config() /*Input Type*/ // bit 7:6 in AI_CONFG // 2011April29, Jeff changed #define P1902_AI_NonRef_SingEnded 0x00 #define P1902_AI_SingEnded 0x01 #define P1902_AI_PseudoDifferential 0x02 #define P1902_AI_Differential P1902_AI_PseudoDifferential /*Conversion Source*/ // bit 9 in AI_ACQMCR #define P1902_AI_CONVSRC_INT 0x00 #define P1902_AI_CONVSRC_EXT 0x80 // wTrigCtrl in UD_AI_1902_Config() /*Trigger Source*/ // bit 8:3 in AI_ACQMCR #define P1902_AI_TRGSRC_AI0 0x020 #define P1902_AI_TRGSRC_AI1 0x021 #define P1902_AI_TRGSRC_AI2 0x022 #define P1902_AI_TRGSRC_AI3 0x023 #define P1902_AI_TRGSRC_AI4 0x024 #define P1902_AI_TRGSRC_AI5 0x025 #define P1902_AI_TRGSRC_AI6 0x026 #define P1902_AI_TRGSRC_AI7 0x027 #define P1902_AI_TRGSRC_AI8 0x028 #define P1902_AI_TRGSRC_AI9 0x029 #define P1902_AI_TRGSRC_AI10 0x02A #define P1902_AI_TRGSRC_AI11 0x02B #define P1902_AI_TRGSRC_AI12 0x02C #define P1902_AI_TRGSRC_AI13 0x02D #define P1902_AI_TRGSRC_AI14 0x02E #define P1902_AI_TRGSRC_AI15 0x02F #define P1902_AI_TRGSRC_SOFT 0x030 #define P1902_AI_TRGSRC_DTRIG 0x031 /*Trigger Edge*/ // bit 2 in AI_ACQMCR #define P1902_AI_TrgPositive 0x040 #define P1902_AI_TrgNegative 0x000 /*Gated Trigger Level*/ // bit 2 in AI_ACQMCR #define P1902_AI_Gate_PauseLow 0x000 #define P1902_AI_Gate_PauseHigh 0x040 /*Trigger Mode*/ #define P1902_AI_TRGMOD_POST 0x000 #define P1902_AI_TRGMOD_GATED 0x080 #define P1902_AI_TRGMOD_DELAY 0x100 /*ReTrigger*/ // bit 25 in AI_ACQMCR #define P1902_AI_EnReTigger 0x200 /**/ /* * AO Constants */ /*Conversion Source*/ #define P1902_AO_CONVSRC_INT 0x00 #define P1902_AO_TRIG_CTRL_MASK (~0x00000711) /*Trigger Mode*/ #define P1902_AO_TRGMOD_POST 0x00 #define P1902_AO_TRGMOD_DELAY 0x01 /*Trigger Source*/ // bit 24 in AO_TCFIGR #define P1902_AO_TRGSRC_SOFT 0x00 #define P1902_AO_TRGSRC_DTRIG 0x10 /*Trigger Edge*/ // bit 25 in AI_ACQMCR #define P1902_AO_TrgPositive 0x100 #define P1902_AO_TrgNegative 0x000 /*Enable Re-Trigger*/ // bit 10 in AO_TCFIGR #define P1902_AO_EnReTigger 0x200 /* Flag for AO Waveform Seperation Interval COunt Register (AO_WSIC) */ #define P1902_AO_EnDelay2 0x400 /*------------------------*/ /* Constants for USB-2401 */ /*------------------------*/ // wConfigCtrl in UD_AI_2401_Config() /*Input Type*/ // V >=2.5V, V<2.5, Current, RTD (4 wire), RTD (3-wire), RTD (2-wire), Resistor, Thermocouple, Full-Bridge, Half-Bridge #define P2401_Voltage_2D5V_Above 0x00 #define P2401_Voltage_2D5V_Below 0x01 #define P2401_Current 0x02 #define P2401_RTD_4_Wire 0x03 #define P2401_RTD_3_Wire 0x04 #define P2401_RTD_2_Wire 0x05 #define P2401_Resistor 0x06 #define P2401_ThermoCouple 0x07 #define P2401_Full_Bridge 0x08 #define P2401_Half_Bridge 0x09 #define P2401_ThermoCouple_Differential 0x0A // for USB-2401 A3 and newer devices. #define P2401_350Ohm_Full_Bridge 0x0B #define P2401_350Ohm_Half_Bridge 0x0C #define P2401_120Ohm_Full_Bridge 0x0D #define P2401_120Ohm_Half_Bridge 0x0E /*Conversion Source*/ // bit 9 in AI_ACQMCR #define P2401_AI_CONVSRC_INT 0x00 // wTrigCtrl in UD_AI_2401_Config() /*Trigger Source*/ // bit 8:3 in AI_ACQMCR #define P2401_AI_TRGSRC_SOFT 0x030 #define P2401_AI_TRGSRC_DTRIG 0x031 /*Trigger Edge*/ // bit 2 in AI_ACQMCR #define P2401_AI_TrgPositive 0x040 #define P2401_AI_TrgNegative 0x000 /*Trigger Mode*/ #define P2401_AI_TRGMOD_POST 0x000 // wMAvgStageCh1 ~ wMAvgStageCh4 in UD_AI_2401_PollConfig() #define P2401_Polling_MAvg_Disable 0x00 #define P2401_Polling_MAvg_2_Sampes 0x01 #define P2401_Polling_MAvg_4_Sampes 0x02 #define P2401_Polling_MAvg_8_Sampes 0x03 #define P2401_Polling_MAvg_16_Sampes 0x04 // wEnContPolling in UD_AI_2401_PollConfig() #define P2401_Continue_Polling_Disable 0x00 #define P2401_Continue_Polling_Enable 0x01 // wPollSpeed in UD_AI_2401_PollConfig() #define P2401_ADC_2000_SPS 0x09 #define P2401_ADC_1000_SPS 0x08 #define P2401_ADC_640_SPS 0x07 #define P2401_ADC_320_SPS 0x06 #define P2401_ADC_160_SPS 0x05 #define P2401_ADC_80_SPS 0x04 #define P2401_ADC_40_SPS 0x03 #define P2401_ADC_20_SPS 0x02 /* * DDS Constants */ #define P2405_AI_MaxDDSFreq 128000 #define P2405_AI_MinDDSFreq 1000 // #define P2405_AI_POLLING_RATE 20000.0f // (20K = 10240K/512 ) /* * AI Constants */ /*AI Select Channel*/ #define P2405_AI_CH_0 0 #define P2405_AI_CH_1 1 #define P2405_AI_CH_2 2 #define P2405_AI_CH_3 3 /*Input Coupling*/ #define P2405_AI_EnableIEPE 0x00000004 #define P2405_AI_DisableIEPE 0x00000008 #define P2405_AI_Coupling_AC 0x00000010 #define P2405_AI_Coupling_None 0x00000020 /*Input Type*/ #define P2405_AI_Differential 0x00000000 #define P2405_AI_PseudoDifferential 0x00000040 #define P2405_AI_ConfigureIEPE (P2405_AI_EnableIEPE|P2405_AI_Coupling_AC|P2405_AI_Differential) #define P2405_AI_CONVSRC_INT 0x00000000 #define P2405_AI_CONVSRC_EXT 0x00000200 // wTrigCtrl in UD_AIO_2405_Config() /* Mask for Trigger bits, Internal use */ /*Trigger Source*/ #define P2405_AI_TRGSRC_AI0 0x00000200 #define P2405_AI_TRGSRC_AI1 0x00000208 #define P2405_AI_TRGSRC_AI2 0x00000210 #define P2405_AI_TRGSRC_AI3 0x00000218 #define P2405_AI_TRGSRC_SOFT 0x00000380 #define P2405_AI_TRGSRC_DTRIG 0x00000388 // digital-trigger, /*Trigger Edge*/ #define P2405_AI_TrgPositive 0x00000004 #define P2405_AI_TrgNegative 0x00000000 #define P2405_AI_Gate_PauseLow 0x00000004 #define P2405_AI_Gate_PauseHigh 0x00000000 /*ReTrigger*/ // bit 25 in AI_ACQMCR #define P2405_AI_EnReTigger 0x2000 // 0x02000000 // wTrigMode in UD_AIO_2405_Config() /*AI Trigger Mode*/ #define P2405_AI_TRGMOD_POST 0x0000 // 0x00000000 #define P2405_AI_TRGMOD_DELAY 0x4000 // 0x40000000 #define P2405_AI_TRGMOD_PRE 0x8000 // 0x80000000 #define P2405_AI_TRGMOD_MIDDLE 0xC000// 0xC0000000 //#define P2405_AI_TRGMOD_GATED 0x00000001 #define P2405_AI_TRGMOD_GATED 0x1000 // 0x10000000 /*-------------------------------*/ /* GPIO/GPTC Configuration */ /*-------------------------------*/ #define GPIO_IGNORE_CONFIG 0x00 /*UD_DIO_1902_Config, UD_DIO_2401_Config*/ #define GPTC0_GPO1 0x01 #define GPI0_3_GPO0_1 0x02 //#define ENC0_GPO0 0x04 #define GPTC0_TC1 0x08 #define GPTC2_GPO3 0x10 #define GPI4_7_GPO2_3 0x20 //#define ENC1_GPO2 0x40 #define GPTC2_TC3 0x80 /*UD_DIO_Config for USB-101*/ #define GPO0 0x1100 #define GPO1 0x1200 #define GPO2 0x1400 #define GPO3 0x1800 #define GPI0_3 0x2000 /*GPIO Port*/ #define GPIO_PortA 0 #define GPIO_PortB 1 /*UD_DIO_2405_Config*/ #define P2405_DIGITAL_INPUT 0x30 #define P2405_COUNTER_INPUT 0x31 #define P2405_DIGITAL_OUTPUT 0x32 #define P2405_PULSE_OUTPUT 0x33 /*-------------------------------------------------*/ /* General Purpose Timer/Counter for USB-1902 */ /*-------------------------------------------------*/ /*Counter Mode*/ #define SimpleGatedEventCNT 0x01 #define SinglePeriodMSR 0x02 #define SinglePulseWidthMSR 0x03 #define SingleGatedPulseGen 0x04 #define SingleTrigPulseGen 0x05 #define RetrigSinglePulseGen 0x06 #define SingleTrigContPulseGen 0x07 #define ContGatedPulseGen 0x08 #define EdgeSeparationMSR 0x09 #define SingleTrigContPulseGenPWM 0x0a #define ContGatedPulseGenPWM 0x0b #define CW_CCW_Encoder 0x0c #define x1_AB_Phase_Encoder 0x0d #define x2_AB_Phase_Encoder 0x0e #define x4_AB_Phase_Encoder 0x0f #define Phase_Z 0x10 #define MultipleGatedPulseGen 0x11 /*GPTC clock source*/ #define GPTC_CLK_SRC_Ext 0x01 #define GPTC_CLK_SRC_Int 0x00 #define GPTC_GATE_SRC_Ext 0x02 #define GPTC_GATE_SRC_Int 0x00 #define GPTC_UPDOWN_Ext 0x04 #define GPTC_UPDOWN_Int 0x00 /*GPTC clock polarity*/ #define GPTC_CLKSRC_LACTIVE 0x01 #define GPTC_CLKSRC_HACTIVE 0x00 #define GPTC_GATE_LACTIVE 0x02 #define GPTC_GATE_HACTIVE 0x00 #define GPTC_UPDOWN_LACTIVE 0x04 #define GPTC_UPDOWN_HACTIVE 0x00 #define GPTC_OUTPUT_LACTIVE 0x08 #define GPTC_OUTPUT_HACTIVE 0x00 /*GPTC OP Parameter*/ #define IntGate 0x0 /* Internal Gate */ #define IntUpDnCTR 0x1 /* Internal Up/Down Counter */ #define IntENABLE 0x2 /* Internal Enable */ /*----------------------------------------------------------*/ /* Previous renamed functions re-directed for compatibility */ /*----------------------------------------------------------*/ #define AI_VScale AI_VoltScale #define AO_VScale UD_AO_VoltScale #define CTR_Reset CTR_Clear // 20160516, Jeff added for on-fly change /*GPTC on-fly change*/ // 1.7.3.0628 #define OnFlyChange_Mode 0x80 #define OnFlyChange_PulseCounters 0x81 /*--------------------------------------*/ /* DAQ Event type for the event message */ /*--------------------------------------*/ #define AIEnd 0 #define AOEnd 0 #define DIEnd 0 #define DOEnd 0 #define DBEvent 1 //#define TrigEvent 2 /* * Encoder/GPTC Constants */ #define P1902_GPTC0 0x00 #define P1902_GPTC1 0x01 /*Encoder Setting Event Control*/ #define P1902_EPT_PULWIDTH_200us 0x00 #define P1902_EPT_PULWIDTH_2ms 0x01 #define P1902_EPT_PULWIDTH_20ms 0x02 #define P1902_EPT_PULWIDTH_200ms 0x03 #define P1902_EPT_TRGOUT_GPO 0x04 #define P1902_EPT_TRGOUT_CALLBACK 0x08 /*Event Type*/ #define P1902_EVT_TYPE_EPT0 0x00 #define P1902_EVT_TYPE_EPT1 0x01 /*---------------------------------*/ /* Constants for I Squared C (I2C) */ /*---------------------------------*/ /*I2C Port*/ #define I2C_Port_A 0 /*I2C Control Operation*/ #define I2C_ENABLE 0 #define I2C_STOP 1 /*----------------------------------------------------------------------------*/ /* USB-DASK Function prototype */ /*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ /* Basic Function */ I16 __stdcall UD_Register_Card ( U16 CardType, U16 card_num ); I16 __stdcall UD_Release_Card ( U16 CardNumber ); I16 __stdcall UD_Device_Scan ( U16 *pModuleNum, USBDAQ_DEVICE *pAvailModules ); /*----------------------------------------------------------------------------*/ /* AI Function */ I16 __stdcall UD_AI_1902_Config ( U16 CardNumber, U16 wConfigCtrl, U16 wTrigCtrl, \ U32 dwTrgLevel, U32 wReTriggerCnt, U32 dwDelayCount ); I16 __stdcall UD_AI_2401_Config ( U16 CardNumber, U16 wChanCfg1, U16 wChanCfg2, \ U16 wChanCfg3, U16 wChanCfg4, U16 wTrigCtrl ); I16 __stdcall UD_AI_2401_PollConfig ( U16 wCardNumber, U16 wPollSpeed, \ U16 wMAvgStageCh1, U16 wMAvgStageCh2, U16 wMAvgStageCh3, U16 wMAvgStageCh4 ); I16 __stdcall UD_AI_1902_CounterInterval ( U16 CardNumber, U32 ScanIntrv, \ U32 SampIntrv ); I16 __stdcall UD_AI_AsyncCheck ( U16 CardNumber, BOOLEAN *Stopped, U32 *AccessCnt ); I16 __stdcall UD_AI_AsyncClear ( U16 CardNumber, U32 *AccessCnt ); I16 __stdcall UD_AI_AsyncDblBufferHalfReady ( U16 CardNumber, BOOLEAN *HalfReady, \ BOOLEAN *StopFlag ); I16 __stdcall UD_AI_FIFOOverflow ( U16 CardNumber, BOOLEAN *pOverflow ); I16 __stdcall UD_AI_AsyncDblBufferMode ( U16 CardNumber, BOOLEAN Enable ); I16 __stdcall UD_AI_AsyncDblBufferTransfer ( U16 CardNumber, U16 *Buffer ); I16 __stdcall UD_AI_AsyncDblBufferTransfer32 ( U16 CardNumber, U32 *pwBuffer ); I16 __stdcall UD_AI_AsyncDblBufferOverrun ( U16 CardNumber, U16 op, U16 *overrunFlag ); I16 __stdcall UD_AI_AsyncDblBufferHandled ( U16 CardNumber ); I16 __stdcall UD_AI_AsyncDblBufferToFile ( U16 CardNumber ); I16 __stdcall UD_AI_ContReadChannel ( U16 CardNumber, U16 Channel, U16 AdRange, \ U16 *Buffer, U32 ReadCount, F64 SampleRate, U16 SyncMode ); I16 __stdcall UD_AI_ContReadMultiChannels ( U16 CardNumber, U16 NumChans, \ U16 *Chans, U16 *AdRanges, U16 *Buffer, U32 ReadCount, F64 SampleRate, \ U16 SyncMode ); I16 __stdcall UD_AI_ContReadChannelToFile ( U16 CardNumber, U16 Channel, \ U16 AdRange, U8 *FileName, U32 ReadCount, F64 SampleRate, U16 SyncMode ); I16 __stdcall UD_AI_ContReadMultiChannelsToFile ( U16 CardNumber, U16 NumChans, \ U16 *Chans, U16 *AdRanges, U8 *FileName, U32 ReadCount, F64 SampleRate, \ U16 SyncMode ); I16 __stdcall UD_AI_ContScanChannelsToFile ( U16 CardNumber, U16 Channel, \ U16 AdRange, U8 *FileName, U32 ReadCount, F64 SampleRate, U16 SyncMode ); I16 __stdcall UD_AI_InitialMemoryAllocated ( U16 CardNumber, U32 *MemSize ); I16 __stdcall UD_AI_ReadChannel ( U16 CardNumber, U16 Channel, U16 AdRange, \ U16 *Value ); I16 __stdcall UD_AI_VReadChannel ( U16 CardNumber, U16 Channel, U16 AdRange, \ F64 *voltage ); I16 __stdcall UD_AI_ReadMultiChannels ( U16 CardNumber, U16 NumChans, U16 *Chans, \ U16 *AdRanges, U16 *Buffer ); I16 __stdcall UD_AI_SetTimeOut ( U16 CardNumber, U32 TimeOut ); I16 __stdcall UD_AI_VoltScale ( U16 CardNumber, U16 AdRange, I16 reading, \ F64 *voltage ); I16 __stdcall UD_AI_ContVScale ( U16 CardNumber, U16 adRange, void *readingArray, \ F64 *voltageArray, I32 count ); I16 __stdcall UD_AI_ContMultiChanVScale ( U16 CardNumber, U16 adRange[], U16 inType[], U16 wChannels, void *readingArray, \ F64 *voltageArray, U32 *rawArray, I32 count ); I16 __stdcall UD_AI_2401_Scale32 ( U16 CardNumber, U16 adRange, U16 inType, \ U32 reading, F64 *voltage ); I16 __stdcall UD_AI_2401_ContVScale32 ( U16 CardNumber, U16 adRange, U16 inType, \ U32 *readingArray, F64 *voltageArray, I32 count ); I16 __stdcall UD_AI_AsyncReTrigNextReady ( U16 CardNumber, BOOLEAN *Ready, \ BOOLEAN *StopFlag, U32 *RdyTrigCnt ); I16 __stdcall UD_AI_AsyncBufferTransfer ( USHORT wCardNumber, USHORT *pwBuffer, \ U32 offset, U32 count ); I16 __stdcall UD_AI_EventCallBack ( U16 CardNumber, I16 mode, I16 EventType, \ U32 callbackAddr ); I16 __stdcall UD_AI_Moving_Average32 ( U16 CardNumber, U32 *SrcBuf, U32 *DesBuf, \ U32 dwTgChIdx, U32 dwTotalCh, U32 dwMovAvgWindow, U32 dwSamplCnt ); I16 __stdcall UD_AI_2401_Stop_Poll ( USHORT wCardNumber ); I16 __stdcall UD_AI_DDS_ActualRate_Get ( U16 CardNumber, F64 fSampleRate, F64 *fActualRate ); I16 __stdcall UD_AI_Channel_Config ( U16 CardNumber, U16 wChanCfg1, U16 wChanCfg2, U16 wChanCfg3, U16 wChanCfg4); I16 __stdcall UD_AI_Trigger_Config ( U16 CardNumber, U16 wConvSrc, U16 wTrigMode, U16 wTrigCtrl, \ U32 wReTrigCnt, U32 dwDLY1Cnt, U32 dwDLY2Cnt, U32 dwTrgLevel ); I16 __stdcall UD_AI_2405_Chan_Config ( U16 CardNumber, U16 wChanCfg1, U16 wChanCfg2, U16 wChanCfg3, U16 wChanCfg4); I16 __stdcall UD_AI_2405_Trig_Config ( U16 CardNumber, U16 wConvSrc, U16 wTrigMode, U16 wTrigCtrl, \ U32 wReTrigCnt, U32 dwDLY1Cnt, U32 dwDLY2Cnt, U32 dwTrgLevel ); I16 __stdcall UD_AI_VoltScale32 ( U16 CardNumber, U16 adRange, U16 inType, \ U32 reading, F64 *voltage ); I16 __stdcall UD_AI_ContVScale32 ( U16 CardNumber, U16 adRange, U16 inType, \ U32 *readingArray, F64 *voltageArray, I32 count ); I16 __stdcall UD_AI_AsyncBufferTransfer32 ( U16 wCardNumber, U32 *pdwBuffer, U32 offset, U32 count ); I16 __stdcall UD_AI_Monitor_Config(U16 wCardNumber, I16 mode, U16 aiCh, U16 gpoCh, U16 adRange, double trgHigh, double trgLow, double deltaT /*ms*/); I16 __stdcall UD_AI_Monitor_AlarmClear(U16 wCardNumber, U16 gpoCh); I16 __stdcall UD_AI_Monitor_AlarmCheck(U16 wCardNumber, U16 gpoCh, U16* alarmStatus); I16 __stdcall UD_AI_Monitor_Reset(U16 wCardNumber); /*----------------------------------------------------------------------------*/ /* AO Function */ I16 __stdcall UD_AO_1902_Config ( U16 CardNumber, U16 ConfigCtrl, U16 TrigCtrl, \ U32 ReTrgCnt, U32 DLY1Cnt, U32 DLY2Cnt ); I16 __stdcall UD_AO_Trigger_Config(U16 CardNumber, U16 wConvSrc, U16 wTrigMode, U16 wTrigCtrl); I16 __stdcall UD_AO_AsyncCheck ( U16 CardNumber, BOOLEAN *Stopped, U32 *AccessCnt ); I16 __stdcall UD_AO_AsyncClear ( U16 CardNumber, U32 *AccessCnt, U16 stop_mode ); I16 __stdcall UD_AO_AsyncDblBufferHalfReady ( U16 CardNumber, BOOLEAN *bHalfReady ); I16 __stdcall UD_AO_AsyncDblBufferTransfer ( U16 wCardNumber, USHORT wBufferID, USHORT *pwBuffer ); I16 __stdcall UD_AO_AsyncDblBufferMode ( U16 CardNumber, BOOLEAN Enable, BOOLEAN bEnFifoMode ); I16 __stdcall UD_AO_ContBufferCompose ( U16 CardNumber, U16 TotalChnCount, \ U16 ChnNum, U32 UpdateCount, void *ConBuffer, void *Buffer ); I16 __stdcall UD_AO_ContWriteChannel ( U16 CardNumber, U16 Channel, VOID *pAOBuffer, \ U32 WriteCount, U32 Iterations, U32 CHUI, U16 definite, U16 SyncMode ); I16 __stdcall UD_AO_ContWriteMultiChannels ( U16 CardNumber, U16 NumChans, \ U16 *Chans, VOID *pAOBuffer, U32 WriteCount, U32 Iterations, U32 CHUI, \ U16 definite, U16 SyncMode ); I16 __stdcall UD_AO_InitialMemoryAllocated ( U16 CardNumber, U32 *MemSize ); I16 __stdcall UD_AO_SetTimeOut ( U16 CardNumber, U32 TimeOut ); I16 __stdcall UD_AO_SimuVWriteChannel ( U16 CardNumber, U16 Group, F64 *VBuffer ); I16 __stdcall UD_AO_SimuWriteChannel ( U16 CardNumber, U16 Group, I16 *Buffer ); I16 __stdcall UD_AO_VWriteChannel ( U16 CardNumber, U16 Channel, F64 Voltage ); I16 __stdcall UD_AO_WriteChannel ( U16 CardNumber, U16 Channel, I16 Value ); I16 __stdcall UD_AO_WriteChannels ( U16 wCardNumber, U16 wNumChans, U16 *pwChans, \ U16 *pwBuffer ); I16 __stdcall UD_AO_VoltScale ( U16 CardNumber, U16 Channel, F64 Voltage, \ I16 *binValue ); I16 __stdcall UD_AO_EventCallBack ( U16 CardNumber, I16 mode, I16 EventType, \ U32 callbackAddr ); I16 __stdcall UD_AO_VoltScale32 ( U16 CardNumber, U16 Channel, F64 Voltage, \ I32 *binValue ); /*----------------------------------------------------------------------------*/ I16 __stdcall UD_DIO_1902_Config ( U16 wCardNumber, U16 wPart1Cfg, U16 wPart2Cfg ); I16 __stdcall UD_DIO_2401_Config ( U16 wCardNumber, U16 wPart1Cfg ); I16 __stdcall UD_DIO_2405_Config ( U16 wCardNumber, U16 wPart1Cfg, U16 wPart2Cfg ); I16 __stdcall UD_DIO_Config ( U16 wCardNumber, U16 wPart1Cfg, U16 wPart2Cfg ); /*----------------------------------------------------------------------------*/ /* DI Function */ I16 __stdcall UD_DI_ReadLine ( U16 CardNumber, U16 Port, U16 Line, U16 *State ); I16 __stdcall UD_DI_ReadPort ( U16 CardNumber, U16 Port, U32 *Value ); /*----------------------------------------------------------------------------*/ /* DO Function */ I16 __stdcall UD_DO_ReadLine ( U16 CardNumber, U16 Port, U16 Line, U16 *Value ); I16 __stdcall UD_DO_ReadPort ( U16 CardNumber, U16 Port, U32 *Value ); I16 __stdcall UD_DO_WriteLine ( U16 CardNumber, U16 Port, U16 Line, U16 Value ); I16 __stdcall UD_DO_WritePort ( U16 CardNumber, U16 Port, U32 Value ); /*----------------------------------------------------------------------------*/ /* Timer/Counter Function */ I16 __stdcall UD_GPTC_Clear ( U16 CardNumber, U16 GCtr ); I16 __stdcall UD_GPTC_Control ( U16 CardNumber, U16 GCtr, U16 ParamID, U16 Value ); I16 __stdcall UD_GPTC_Read ( U16 CardNumber, U16 GCtr, U32 *Value ); I16 __stdcall UD_GPTC_Setup ( U16 CardNumber, U16 GCtr, U16 Mode, U16 SrcCtrl, \ U16 PolCtrl, U32 LReg1_Val, U32 LReg2_Val, U32 PulseCount ); I16 __stdcall UD_GPTC_Setup_N ( U16 CardNumber, U16 GCtr, U16 Mode, U16 SrcCtrl, \ U16 PolCtrl, U32 LReg1_Val, U32 LReg2_Val, U32 PulseCount ); I16 __stdcall UD_GPTC_Status ( U16 CardNumber, U16 GCtr, U16 *Value ); /* Get Event or View Function */ I16 __stdcall UD_AI_GetEvent ( U16 CardNumber, HANDLE *Event ); I16 __stdcall UD_AO_GetEvent ( U16 CardNumber, HANDLE *Event ); I16 __stdcall UD_AI_GetView ( U16 CardNumber, U32 *View ); I16 __stdcall UD_AO_GetView ( U16 CardNumber, U32 *View ); /*---------------------------------------------------------------------------*/ /* Common Function */ I16 __stdcall UD_GetActualRate ( U16 CardNumber, F64 SampleRate, F64 *ActualRate ); I16 __stdcall UD_GetCardIndexFromID ( U16 CardNumber, U16 *cardType, U16 *cardIndex ); I16 __stdcall UD_GetCardType ( U16 CardNumber, U16 *cardType ); I16 __stdcall UD_IdentifyLED_Control ( U16 wCardNumber, U8 bEnable ); // 1: enable , 0: disable LED flash /*---------------------------------------------------------------------------*/ /* Misc. Functions */ I16 __stdcall UD_Read_ColdJunc_Thermo ( U16 wCardNumber, F64 *pfValue ); I16 __stdcall UD_Read_ColdJunc_Thermo_QC ( USHORT wCardNumber, USHORT wSensorNo, double *pfValue ); I16 __stdcall UD_Serial_Number_Read ( U16 wCardNumber, U8 *pSerialNum ); I16 __stdcall UD_HW_Mark_Read ( U16 wCardNumber, U8 *pSerialNum ); I16 __stdcall UD_HW_Mark_Write ( U16 wCardNumber, USHORT type ); /*----------------------------------------------------------------------------*/ I16 __stdcall UD_CTR_Control ( U16 wCardNumber, U16 wCtr, U32 dwCtrl); I16 __stdcall UD_CTR_ReadFrequency ( U16 wCardNumber, U16 wCtr, F64 *pfValue ); I16 __stdcall UD_CTR_ReadEdgeCounter ( U16 wCardNumber, U16 wCtr, U32 *dwValue ); I16 __stdcall UD_CTR_ReadRisingEdgeCounter ( U16 wCardNumber, U16 wCtr, U32 *dwValue ); enum { UD_CTR_Filter_Disable, UD_CTR_Filter_Enable = 1, UD_CTR_Reset_Rising_Edge_Counter = 2, UD_CTR_Reset_Frequency_Counter = 4, UD_CTR_Polarity_Positive = 8, UD_CTR_Polarity_Negative = 0, }; I16 __stdcall UD_CTR_SetupMinPulseWidth ( U16 wCardNumber, U16 wCtr, U16 wValue ); I16 __stdcall UD_DI_GetCOSLatchData32 ( U16 wCardNumber, U16 wPort, U32 *pwCosLData ); I16 __stdcall UD_DI_SetupMinPulseWidth ( U16 wCardNumber, U16 wValue ); I16 __stdcall UD_DI_Control ( U16 wCardNumber, U16 wPort, U32 dwCtrl ); I16 __stdcall UD_DI_SetCOSInterrupt32 ( U16 wCardNumber, U16 wPort, U32 dwCtrl, HANDLE *hEvent, BOOLEAN ManualReset ); I16 __stdcall UD_DO_GetInitPattern (U16 wCardNumber, U16 wPort, U32 *pdwPattern); I16 __stdcall UD_DO_SetInitPattern (U16 wCardNumber, U16 wPort, U32 *pdwPattern); I16 __stdcall UD_DIO_INT_EventMessage (U16 wCardNumber, I16 mode, HANDLE evt, HWND windowHandle, U32 message, void (__stdcall*callbackAddr)(void)); /*----------------------------------------------------------------------------*/ /* Calibration Function */ I16 __stdcall UD_CAL_AD_Read_Sum ( U16 wCardNumber, U16 wChannelCount, U16 wChannel, U16 wGain, U16 wOperation, U16 wCalSrc, \ U32 dwSampleRate, U32 dwCalSamples, I64 *pAD_Data ); I16 __stdcall UD_AI_Calibration ( U16 wCardNumber, U32 dwReserved ); /*----------------------------------------------------------------------------*/ /* USB-1901/1902 Calibration */ I16 __stdcall UD_1902_AD_Read_Average ( U16 wCardNumber, USHORT wCalSrc, UCHAR bOffsetGain, I32 *pAD_Data ); /* USB-1903 Calibration */ I16 __stdcall UD_1903_AD_Read_Average ( U16 wCardNumber, USHORT wCalSrc, I32 *pAD_Data ); /* USB-2401 Calibration */ I16 __stdcall UD_2401_AD_Read_Sum ( U16 wCardNumber, WORD wOperation, U16 wCalSrc, ULONG dwSampleRate, I64 *pAD_Data ); I16 __stdcall UD_2401_AD_Read_Raw ( U16 wCardNumber, WORD wOperation, U16 wCalSrc, ULONG dwSampleRate, I32 **pAD_Data ); I16 __stdcall UD_2405_Calibration_QC ( U16 wCardNumber ); I16 __stdcall UD_2405_Calibration ( U16 wCardNumber ); I16 __stdcall UD_2405_AD_Read_Sum ( U16 wCardNumber, WORD wChannelCount, WORD wChannel, WORD wOperation, WORD wCalSrc, ULONG dwSampleRate, ULONG dwCalSamples, I64 *pAD_Data ); I16 __stdcall UD_GetFPGAVersion ( U16 wCardNumber, U32 *pdwFPGAVersion ); I16 __stdcall UD_1902_Trimmer_Set ( U16 wCardNumber, UCHAR bValue ); I16 __stdcall UD_2401_Trimmer_Set ( U16 wCardNumber, UCHAR bValue ); /*---------------------------------------------------------------------------*/ /* Misc. Functions */ I16 __stdcall UD_GetVersion ( U16 wCardNumber, U32 *pdwFPGAVersion, U16 wDrvVer[4], U16 wLibVersion[4], U32 dwVersionCmd, PVOID pVersion ); /*----------------------------------------------------------------------------*/ #ifdef __cplusplus } #endif #endif