📄 driver.pas
字号:
PA_MODE_COUNT_SRC_FOUT_3 = $0700;
PA_MODE_COUNT_SRC_GATE_N_M1 = $0C00;
PA_MODE_GATE_SRC_GATE_NO = $0000;
PA_MODE_GATE_SRC_OUT_N_M1 = $1000;
PA_MODE_GATE_SRC_GATE_N = $2000;
PA_MODE_GATE_SRC_GATE_N_M1 = $3000;
PA_MODE_GATE_POSITIVE = $0000;
PA_MODE_GATE_NEGATIVE = $4000;
{ Counter Mode }
MODE_A = $0000;
MODE_B = $0000;
MODE_C = $8000;
MODE_D = $0010;
MODE_E = $0010;
MODE_F = $8010;
MODE_G = $0020;
MODE_H = $0020;
MODE_I = $8020;
MODE_J = $0030;
MODE_K = $0030;
MODE_L = $8030;
MODE_O = $8040;
MODE_R = $8050;
MODE_U = $8060;
MODE_X = $8070;
{ define the FOUT register parameter}
PA_FOUT_SRC_EXTER_CLK = $0000;
PA_FOUT_SRC_CLK_N = $0100;
PA_FOUT_SRC_FOUT_N_M1 = $0200;
PA_FOUT_SRC_CLK_10MHZ = $0300;
PA_FOUT_SRC_CLK_1MHZ = $0400;
PA_FOUT_SRC_CLK_100KHZ = $0500;
PA_FOUT_SRC_CLK_10KHZ = $0600;
PA_FOUT_SRC_CLK_1KHZ = $0700;
{define for USB4751 FOUT}
PA_FOUT_SRC_CLK_20MHZ = $0800;
PA_FOUT_SRC_CLK_5MHZ = $0900;
{ --------------------------- V2.0b -------------------------------------- }
{ ************************************************************************ }
{ define event type for interrupt and DMA transfer }
{ ************************************************************************ }
ADS_EVT_INTERRUPT = $01; { interrupt }
ADS_EVT_BUFCHANGE = $02; { buffer change }
ADS_EVT_TERMINATED = $04; { termination }
ADS_EVT_OVERRUN = $08; { overrun }
ADS_EVT_WATCHDOG = $10; { watchdog actived }
ADS_EVT_CHGSTATE = $20; { change state event }
ADS_EVT_ALARM = $40; { alarm event }
ADS_EVT_PORT0 = $80; { port 0 event }
ADS_EVT_PORT1 = $100; { port 1 event }
ADS_EVT_PATTERNMATCH = $200; { Pattern Match for DI }
ADS_EVT_COUNTER = $201; { Persudo event for COUNTERMATCH and COUNTEROVERFLOW }
ADS_EVT_COUNTERMATCH = $202; { Counter Match setting NO. for DI }
ADS_EVT_COUNTEROVERFLOW = $203; { Counter Overflow for DI }
ADS_EVT_STATUSCHANGE = $204; { Status Change for DI }
ADS_EVT_FILTER = $205; { Filter Event }
{ --------------------------- V2.2 -------------------------------------- }
ADS_EVT_WATCHDOG_OVERRUN = $206; { Watchdong Event }
{ --------------------------- V2.2 -------------------------------------- }
ADS_EVT_DEVREMOVED = $400; { for USB device }
{ ************************************************************************ }
{ define event name by device number }
{ ************************************************************************ }
ADS_EVT_INTERRUPT_NAME = 'ADS_EVT_INTERRUPT';
ADS_EVT_BUFCHANGE_NAME = 'ADS_EVT_BUFCHANGE';
ADS_EVT_TERMINATED_NAME = 'ADS_EVT_TERMINATED';
ADS_EVT_OVERRUN_NAME = 'ADS_EVT_OVERRUN';
ADS_EVT_WATCHDOG_NAME = 'ADS_EVT_WATCHDOG';
ADS_EVT_CHGSTATE_NAME = 'ADS_EVT_CHGSTATE';
ADS_EVT_ALARM_NAME = 'ADS_EVT_ALARM';
ADS_EVT_PATTERNMATCH_NAME = 'ADS_EVT_PATTERNMATCH';
ADS_EVT_COUNTERMATCH_NAME = 'ADS_EVT_COUNTERMATCH';
ADS_EVT_COUNTEROVERFLOW_NAME = 'ADS_EVT_COUNTEROVERFLOW';
ADS_EVT_STATUSCHANGE_NAME = 'ADS_EVT_STATUSCHANGE';
{ --------------------------- V2.2 -------------------------------------- }
ADS_EVT_WATCHDOG_OVERRUN_NAME = 'ADS_EVT_WATCHDOG_OVERRUN';
{ --------------------------- V2.2 -------------------------------------- }
{ ************************************************************************ }
{ define FIFO size }
{ ************************************************************************ }
FIFO_SIZE = 512; { 1K FIFO size (512* 2byte/each data) }
{ ************************************************************************ }
{ Function ID Definition }
{ ************************************************************************ }
FID_DeviceOpen = 0;
FID_DeviceClose = 1;
FID_DeviceGetFeatures = 2;
FID_AIConfig = 3;
FID_AIGetConfig = 4;
FID_AIBinaryIn = 5;
FID_AIScale = 6;
FID_AIVoltageIn = 7;
FID_AIVoltageInExp = 8;
FID_MAIConfig = 9;
FID_MAIBinaryIn = 10;
FID_MAIVoltageIn = 11;
FID_MAIVoltageInExp = 12;
FID_TCMuxRead = 13;
FID_AOConfig = 14;
FID_AOBinaryOut = 15;
FID_AOVoltageOut = 16;
FID_AOScale = 17;
FID_DioSetPortMode = 18;
FID_DioGetConfig = 19;
FID_DioReadPortByte = 20;
FID_DioWritePortByte = 21;
FID_DioReadBit = 22;
FID_DioWriteBit = 23;
FID_DioGetCurrentDOByte = 24;
FID_DioGetCurrentDOBit = 25;
FID_WritePortByte = 26;
FID_WritePortWord = 27;
FID_ReadPortByte = 28;
FID_ReadPortWord = 29;
FID_CounterEventStart = 30;
FID_CounterEventRead = 31;
FID_CounterFreqStart = 32;
FID_CounterFreqRead = 33;
FID_CounterPulseStart = 34;
FID_CounterReset = 35;
FID_QCounterConfig = 36;
FID_QCounterConfigSys = 37;
FID_QCounterStart = 38;
FID_QCounterRead = 39;
FID_AlarmConfig = 40;
FID_AlarmEnable = 41;
FID_AlarmCheck = 42;
FID_AlarmReset = 43;
FID_COMOpen = 44;
FID_COMConfig = 45;
FID_COMClose = 46;
FID_COMRead = 47;
FID_COMWrite232 = 48;
FID_COMWrite485 = 49;
FID_COMWrite85 = 50;
FID_COMInit = 51;
FID_COMLock = 52;
FID_COMUnlock = 53;
FID_WDTEnable = 54;
FID_WDTRefresh = 55;
FID_WDTReset = 56;
FID_FAIIntStart = 57;
FID_FAIIntScanStart = 58;
FID_FAIDmaStart = 59;
FID_FAIDmaScanStart = 60;
FID_FAIDualDmaStart = 61;
FID_FAIDualDmaScanStart = 62;
FID_FAICheck = 63;
FID_FAITransfer = 64;
FID_FAIStop = 65;
FID_FAIWatchdogConfig = 66;
FID_FAIIntWatchdogStart = 67;
FID_FAIDmaWatchdogStart = 68;
FID_FAIWatchdogCheck = 69;
FID_FAOIntStart = 70;
FID_FAODmaStart = 71;
FID_FAOScale = 72;
FID_FAOLoad = 73;
FID_FAOCheck = 74;
FID_FAOStop = 75;
FID_ClearOverrun = 76;
FID_EnableEvent = 77;
FID_CheckEvent = 78;
FID_AllocateDMABuffer = 79;
FID_FreeDMABuffer = 80;
FID_EnableCANEvent = 81;
FID_GetCANEventData = 82;
FID_TimerCountSetting = 83;
FID_CounterPWMSetting = 84;
FID_CounterPWMEnable = 85;
FID_DioTimerSetting = 86;
FID_EnableEventEx = 87;
FID_DICounterReset = 88;
FID_FDITransfer = 89;
FID_EnableSyncAO = 90;
FID_WriteSyncAO = 91;
FID_AOCurrentOut = 92;
FID_ADAMCounterSetHWConfig = 93;
FID_ADAMCounterGetHWConfig = 94;
FID_ADAMAISetHWConfig = 95;
FID_ADAMAIGetHWConfig = 96;
FID_ADAMAOSetHWConfig = 97;
FID_ADAMAOGetHWConfig = 98;
FID_GetFIFOSize = 99;
FID_PWMStartRead = 100;
FID_FAIDmaExStart = 101;
FID_FAOWaveFormStart = 102;
{ --------------------------- V2.0b -------------------------------- }
FID_FreqOutStart = 104;
FID_FreqOutReset = 105;
FID_CounterConfig = 106;
FID_DeviceGetParam = 107;
{ --------------------------- V2.0b -------------------------------- }
{ --------------------------- V2.0c -------------------------------- }
FID_DeviceSetProperty = 108; {PCI-1755}
FID_DeviceGetProperty = 109; {PCI-1755}
FID_WritePortDword = 110; {PCI-1755}
FID_ReadPortDword = 111; {PCI-1755}
FID_FDIStart = 112; {PCI-1755}
FID_FDICheck = 113; {PCI-1755}
FID_FDIStop = 114; {PCI-1755}
FID_FDOStart = 115; {PCI-1755}
FID_FDOCheck = 116; {PCI-1755}
FID_FDOStop = 117; {PCI-1755}
FID_ClearFlag = 118; {PCI-1755}
{ --------------------------- V2.0c -------------------------------- }
{ --------------------------- V2.2 -------------------------------- }
FID_WatchdogStart = 119; {PCI-1758}
FID_WatchdogFeed = 120; {PCI-1758}
FID_WatchdogStop = 121; {PCI-1758}
{ --------------------------- V2.2 -------------------------------- }
{ --------------------------- V2.2C -------------------------------- }
FID_DioReadPortWord = 122;
FID_DioWritePortWord = 123;
FID_DioReadPortDword = 124;
FID_DioWritePortDword = 125;
FID_DioGetCurrentDOWord = 126;
FID_DioGetCurrentDODword = 127;
FID_FAODmaExStart = 128;
FID_FAITerminate = 129;
FID_FAOTerminate = 130;
{ --------------------------- V2.2C -------------------------------- }
FID_DioEnableEventAndSpecifyDiPorts = 131;
FID_DioDisableEvent = 132;
FID_DioGetLatestEventDiPortsState = 133;
FID_DioReadDiPorts = 134;
FID_DioWriteDoPorts = 135;
FID_DioGetCurrentDoPortsState = 136;
FID_FAOCheckEx = 137;
FID_DioEnableEventAndSpecifyEventCounter = 138;
FID_CntrEnableEventAndSpecifyEventCounter = 139;
FID_CntrGetLatestEventCounterValue = 140;
FID_CntrDisableEvent = 141;
FID_CustomerDataRead = 142;
FID_CustomerDataWrite = 143;
Type
{ ************************************************************************ }
{ define gain listing }
{ ************************************************************************ }
GAINLIST = Record
usGainCde : Smallint;
fMaxGainVal : Single;
fMinGainVal : Single;
szGainStr : array [0..15] of char;
End;
{ ************************************************************************ }
{ Define hardware board(device) features. }
{ }
{ Note: definition for dwPermutaion member }
{ }
{ Bit 0: Software AI }
{ Bit 1: DMA AI }
{ Bit 2: Interrupt AI }
{ Bit 3: Condition AI }
{ Bit 4: Software AO }
{ Bit 5: DMA AO }
{ Bit 6: Interrupt AO }
{ Bit 7: Condition AO }
{ Bit 8: Software DI }
{ Bit 9: DMA DI }
{ Bit 10: Interrupt DI }
{ Bit 11: Condition DI }
{ Bit 12: Software DO }
{ Bit 13: DMA DO }
{ Bit 14: Interrupt DO }
{ Bit 15: Condition DO }
{ Bit 16: High Gain }
{ Bit 17: Auto Channel Scan }
{ Bit 18: Pacer Trigger }
{ Bit 19: External Trigger }
{ Bit 20: Down Counter }
{ Bit 21: Dual DMA }
{ Bit 22: Monitoring }
{ Bit 23: QCounter }
{ }
{ ************************************************************************ }
DEVFEATURES= Record
szDriverVer : array[0..7] of char; { device driver version }
szDriverName: array[0..MAX_DRIVER_NAME_LEN-1] of char; { device driver name }
dwBoardID : Longint; { board ID }
usMaxAIDiffChl : Smallint; { Max. number of differential channel }
usMaxAISiglChl : Smallint; { Max. number of single-end channel }
usMaxAOChl : Smallint; { Max. number of D/A channel }
usMaxDOChl : Smallint; { Max. number of digital out channel }
usMaxDIChl : Smallint; { Max. number of digital input channel }
usDIOPort : Smallint; { specifies if programmable or not }
usMaxTimerChl : Smallint; { Max. number of Counter/Timer channel }
usMaxAlarmChl : Smallint; { Max number of alram channel }
usNumADBit : Smallint; { number of bits for A/D converter }
usNumADByte : Smallint; { A/D channel width in bytes. }
usNumDABit : Smallint; { number of bits for D/A converter. }
usNumDAByte : Smallint; { D/A channel width in bytes. }
usNumGain : Smallint; { Max. number of gain code }
glGainList : array[0..15] of GAINLIST; { Gain listing }
dwPermutation : array [0..3] of Longint; { Permutation }
End;
{ ************************************************************************ }
{ AOSET Definition }
{ ************************************************************************ }
AOSET = Record
usAOSource : Smallint; { 0-internal, 1-external }
fAOMaxVol : Single; { maximum output voltage }
fAOMinVol : Single; { minimum output voltage }
fAOMaxCur : Single; { maximum output voltage }
fAOMinCur : Single; { minimum output voltage }
End;
AORANGESET = Record
usGainCount: Smallint;
usAOSource : Smallint; { 0-internal, 1-external }
usAOType : Smallint; { 0-voltage, 1-current }
usChan : Smallint;
fAOMax : Single; { maximum output }
fAOMin : Single; { minimum output }
End;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -