unit ioctl; interface uses Windows; const NONE = 0; // no board in slot L1250 = 1; // L1250 board N1250 = 2; // N1250 board (may be not work) L1251 = 3; // L1251 board L1221 = 4; // L1221 board PCIA = 5; // PCI rev A board PCIB = 6; // PCI rev B board L264 = 8; // L264 ISA board L305 = 9; // L305 ISA board L1450C = 10; L1450 = 11; L032 = 12; HI8 = 13; PCIC = 14; L791 = 19; E440 = 30; E140 = 31; E2010 = 32; E270 = 33; CAN_USB = 34; AK9 = 35; LTR010 = 36; LTR021 = 37; E154 = 38; E2010B = 39; LTR031 = 40; LTR030 = 41; E310 = 77; CA01 = 90; // cardio //defines for GetParemeter/SetParameter common for all boards L_BOARD_TYPE = 10000; L_POINT_SIZE = 10001; L_SYNC_ADDR_LO = 10002; L_SYNC_ADDR_HI = 10003; L_DATA_ADDR_LO = 10004; L_DATA_ADDR_HI = 10005; L_SYNC1_ADDR_LO = 10006; L_SYNC1_ADDR_HI = 10007; L_DATA1_ADDR_LO = 10008; L_DATA1_ADDR_HI = 10009; L_USER_BASE = 10100; // 128 user prpoperty to store data // next prop 10228 L_SUCCESS = 0; L_NOTSUPPORTED = 1; L_ERROR = 2; L_ERROR_NOBOARD = 3; L_ERROR_INUSE = 4; L_ADC_PARAM = 1; L_DAC_PARAM = 2; L_ASYNC_ADC_CFG = 3; L_ASYNC_TTL_CFG = 4; L_ASYNC_DAC_CFG = 5; L_ASYNC_ADC_INP = 6; L_ASYNC_TTL_INP = 7; L_ASYNC_TTL_OUT = 8; L_ASYNC_DAC_OUT = 9; L_STREAM_ADC = 1; L_STREAM_DAC = 2; L_STREAM_TTLIN = 3; L_STREAM_TTLOUT = 4; L_EVENT_ADC_BUF = 1; L_EVENT_DAC_BUF = 2; // L_EVENT_ADC_OVF = 3; L_EVENT_ADC_FIFO = 4; L_EVENT_DAC_USER = 5; L_EVENT_DAC_UNF = 6; L_EVENT_PWR_OVR = 7; {$A-} // internal type USHORT = WORD; PORT_PAR = object public port : ULONG; datatype : ULONG; end; PPORT_PAR = ^PORT_PAR; SLOT_PAR = object public Base : ULONG; BaseL : ULONG; Base1 : ULONG; BaseL1 : ULONG; Mem : ULONG; MemL : ULONG; Mem1 : ULONG; MemL1 : ULONG; Irq : ULONG; BoardType : ULONG; DSPType : ULONG; Dma : ULONG; DmaDac : ULONG; DTA_REG : ULONG; IDMA_REG : ULONG; CMD_REG : ULONG; IRQ_RST : ULONG; DTA_ARRAY : ULONG; RDY_REG : ULONG; CFG_REG : ULONG; end; PSLOT_PAR = ^SLOT_PAR; DAQ_PAR = object public s_Type : ULONG; FIFO : ULONG; IrqStep : ULONG; Pages : ULONG; end; PDAQ_PAR = ^DAQ_PAR; ASYNC_PAR = object (DAQ_PAR) public dRate : double; Rate : ULONG; NCh : ULONG; Chn : array [0..127] of ULONG; Data : array [0..127] of ULONG; Mode : ULONG; end; PASYNC_PAR = ^ASYNC_PAR; //internal DAC_PAR_0 = object (DAQ_PAR) public AutoInit : ULONG; dRate : double; Rate : ULONG; // FIFO : USHORT; // IrqStep : USHORT; // Pages : USHORT; IrqEna : ULONG; DacEna : ULONG; DacNumber : ULONG; end; PDAC_PAR_0 = ^DAC_PAR_0; DAC_PAR_1 = object (DAQ_PAR) public AutoInit : ULONG; dRate : double; Rate : ULONG; // FIFO : USHORT; // IrqStep : USHORT; // Pages : USHORT; IrqEna : ULONG; DacEna : ULONG; end; PDAC_PAR_1 = ^DAC_PAR_1; DAC_PAR = record case Integer of 0: (t1:DAC_PAR_0); 1: (t2:DAC_PAR_1); end; // exported ADC_PAR_0 = object (DAQ_PAR) public AutoInit : ULONG; dRate : double; dKadr : double; dScale : double; Rate : ULONG; Kadr : ULONG; Scale : ULONG; FPDelay : ULONG; SynchroType : ULONG; SynchroSensitivity : ULONG; SynchroMode : ULONG; AdChannel : ULONG; AdPorog : ULONG; NCh : ULONG; Chn : array [0..127] of ULONG; // FIFO : USHORT; // IrqStep : USHORT; // Pages : USHORT; IrqEna : ULONG; AdcEna : ULONG; end; PADC_PAR_0 = ^ADC_PAR_0; ADC_PAR_1 = object (DAQ_PAR) public AutoInit : ULONG; dRate : double; dKadr : double; Reserved1 : ULONG; DM_Ena : ULONG; Rate : ULONG; Kadr : ULONG; StartCnt : ULONG; StopCnt : ULONG; SynchroType : ULONG; SynchroMode : ULONG; AdPorog : ULONG; SynchroSrc : ULONG; AdcIMask : ULONG; NCh : ULONG; Chn : array [0..127] of ULONG; // FIFO : USHORT; // IrqStep : USHORT; // Pages : USHORT; IrqEna : ULONG; AdcEna : ULONG; end; PADC_PAR_1 = ^ADC_PAR_1; ADC_PAR = record case Integer of 0: (t1:ADC_PAR_0); 1: (t2:ADC_PAR_1); end; //exported PLATA_DESCR = object public SerNum : array [0..8] of CHAR; BrdName : array [0..4] of CHAR; Rev : CHAR; DspType : array [0..4] of CHAR; Quartz : ULONG; IsDacPresent : USHORT; Reserv1 : array [0..6] of USHORT; KoefADC : array [0..7] of USHORT; KoefDAC : array [0..3] of USHORT; Custom : array [0..31] of USHORT; end; PPLATA_DESCR = ^PLATA_DESCR; PLATA_DESCR_1450 = object public SerNum : array [0..8] of CHAR; BrdName : array [0..6] of CHAR; Rev : CHAR; DspType : array [0..4] of CHAR; IsDacPresent : CHAR; IsExtMemPresent : CHAR; Quartz : ULONG; Reserv1 : array [0..5] of USHORT; KoefADC : array [0..7] of USHORT; KoefDAC : array [0..3] of USHORT; Custom : array [0..31] of USHORT; end; PPLATA_DESCR_1450 = ^PLATA_DESCR_1450; PLATA_DESCR_L791 = object public crc : USHORT; SerNum : array [0..15] of CHAR; BrdName : array [0..15] of CHAR; Rev : CHAR; DspType : array [0..4] of CHAR; Quartz : ULONG; IsDacPresent : USHORT; KoefADC : array [0..15] of single; KoefDAC : array [0..3] of single; Custom : USHORT; end; PPLATA_DESCR_L791 = ^PLATA_DESCR_L791; PLATA_DESCR_E440 = object public SerNum : array [0..8] of CHAR; BrdName : array [0..6] of CHAR; Rev : CHAR; DspType : array [0..4] of CHAR; IsDacPresent : CHAR; Quartz : ULONG; Reserv2 : array [0..12] of USHORT; KoefADC : array [0..7] of USHORT; KoefDAC : array [0..3] of USHORT; Custom : array [0..31] of USHORT; end; PPLATA_DESCR_E440 = ^PLATA_DESCR_E440; PLATA_DESCR_E140 = object public SerNum : array [0..8] of CHAR; BrdName : array [0..10] of CHAR; Rev : CHAR; DspType : array [0..10] of CHAR; IsDacPresent : CHAR; Quartz : ULONG; Reserv2 : array [0..2] of UCHAR; KoefADC : array [0..7] of single; KoefDAC : array [0..3] of single; Custom : array [0..19] of USHORT; end; PPLATA_DESCR_E140 = ^PLATA_DESCR_E140; PLATA_DESCR_E154 = object public SerNum : array [0..8] of CHAR; BrdName : array [0..10] of CHAR; Rev : CHAR; DspType : array [0..10] of CHAR; IsDacPresent : CHAR; Quartz : ULONG; Reserv2 : array [0..2] of UCHAR; KoefADC : array [0..7] of single; KoefDAC : array [0..3] of single; Custom : array [0..19] of USHORT; end; PPLATA_DESCR_E154 = ^PLATA_DESCR_E154; PLATA_DESCR_E2010 = object public BrdName : array [0..15] of CHAR; SerNum : array [0..15] of CHAR; DspType : array [0..15] of CHAR; Quartz : ULONG; Rev : CHAR; IsDacPresent : CHAR; KoefADC : array [0..23] of single; KoefDAC : array [0..3] of single; Custom : array [0..43] of USHORT; CRC : USHORT; end; PPLATA_DESCR_E2010 = ^PLATA_DESCR_E2010; WORD_IMAGE = object public data : array [0..63] of USHORT; end; PWORD_IMAGE = ^WORD_IMAGE; BYTE_IMAGE = object public data : array [0..127] of BYTE; end; PBYTE_IMAGE = ^BYTE_IMAGE; PLATA_DESCR_U = record case Integer of 0: (t1:PLATA_DESCR); 1: (t2:PLATA_DESCR_1450); 2: (t3:PLATA_DESCR_L791); 3: (wi:WORD_IMAGE); 4: (bi:BYTE_IMAGE); 5: (t4:PLATA_DESCR_E440); 6: (t5:PLATA_DESCR_E140); end; WORD_IMAGE_256 = object public data : array [0..127] of USHORT; end; PWORD_IMAGE_256 = ^WORD_IMAGE_256; BYTE_IMAGE_256 = object public data : array [0..255] of BYTE; end; PBYTE_IMAGE_256 = ^BYTE_IMAGE_256; PLATA_DESCR_U2 = record case Integer of 0: (t1:PLATA_DESCR); 1: (t2:PLATA_DESCR_1450); 2: (t3:PLATA_DESCR_L791); 3: (wi:WORD_IMAGE_256); 4: (bi:BYTE_IMAGE_256); 5: (t4:PLATA_DESCR_E440); 6: (t5:PLATA_DESCR_E140); 7: (t6:PLATA_DESCR_E2010); 8: (t7:PLATA_DESCR_E154); end; {$A+} implementation end.