pub extern fn EAnalogIn( idnum: *c_long, demo: c_long, channel: c_long, gain: c_long, overVoltage: *c_long, voltage: *f32, ) c_long; pub extern fn EAnalogOut( idnum: *c_long, demo: c_long, analogOut0: f32, analogOut1: f32, ) c_long; pub extern fn ECount( idnum: *c_long, demo: c_long, resetCounter: c_long, count: *f64, ms: *f64, ) c_long; pub extern fn EDigitalIn( idnum: *c_long, demo: c_long, channel: c_long, readD: c_long, state: [*c]c_long, ) c_long; pub extern fn EDigitalOut( idnum: *c_long, demo: c_long, channel: c_long, writeD: c_long, state: c_long, ) c_long; pub extern fn AsynchConfig( idnum: *c_long, demo: c_long, timeoutMult: c_long, configA: c_long, configB: c_long, configTE: c_long, fullA: c_long, fullB: c_long, fullC: c_long, halfA: c_long, halfB: c_long, halfC: c_long, ) c_long; pub extern fn Asynch( idnum: *c_long, demo: c_long, portB: c_long, enableTE: c_long, enableTO: c_long, enableDel: c_long, baudrate: c_long, numWrite: c_long, numRead: c_long, data: [*c]c_long, ) c_long; pub extern fn AISample( idnum: *c_long, demo: c_long, stateIO: [*c]c_long, updateIO: c_long, ledOn: c_long, numChannels: c_long, channels: [*c]c_long, gains: [*c]c_long, disableCal: c_long, overVoltage: [*c]c_long, voltages: [*c]f32, ) c_long; pub extern fn AIBurst( idnum: *c_long, demo: c_long, stateIOin: c_long, updateIO: c_long, ledOn: c_long, numChannels: c_long, channels: [*c]c_long, gains: [*c]c_long, scanRate: [*c]f32, disableCal: c_long, triggerIO: c_long, triggerState: c_long, numScans: c_long, timeout: c_long, voltages: [*c][4]f32, stateIOout: [*c]c_long, overVoltage: [*c]c_long, transferMode: c_long, ) c_long; pub extern fn AIStreamStart( idnum: *c_long, demo: c_long, stateIOin: c_long, updateIO: c_long, ledOn: c_long, numChannels: c_long, channels: [*c]c_long, gains: [*c]c_long, scanRate: [*c]f32, disableCal: c_long, reserved1: c_long, readCount: c_long, ) c_long; pub extern fn AIStreamRead( localID: c_long, numScans: c_long, timeout: c_long, voltages: [*c][4]f32, stateIOout: [*c]c_long, reserved: [*c]c_long, ljScanBacklog: [*c]c_long, overVoltage: [*c]c_long, ) c_long; pub extern fn AIStreamClear( localID: c_long, ) c_long; pub extern fn AOUpdate( idnum: *c_long, demo: c_long, trisD: c_long, trisIO: c_long, stateD: [*c]c_long, stateIO: [*c]c_long, updateDigital: c_long, resetCounter: c_long, count: [*c]c_ulong, analogOut0: f32, analogOut1: f32, ) c_long; pub extern fn BitsToVolts( chnum: c_long, chgain: c_long, bits: c_long, volts: [*c]f32, ) c_long; pub extern fn VoltsToBits( chnum: c_long, chgain: c_long, volts: f32, bits: [*c]c_long, ) c_long; pub extern fn Counter( idnum: *c_long, demo: c_long, stateD: [*c]c_long, stateIO: [*c]c_long, resetCounter: c_long, enableSTB: c_long, count: [*c]c_ulong, ) c_long; pub extern fn DigitalIO( idnum: *c_long, demo: c_long, trisD: [*c]c_long, trisIO: c_long, stateD: [*c]c_long, stateIO: [*c]c_long, updateDigital: c_long, outputD: [*c]c_long, ) c_long; pub extern fn GetDriverVersion() f32; pub extern fn GetErrorString( errorcode: c_long, errorString: *[50]u8, ) void; pub extern fn GetFirmwareVersion(idnum: *c_long) f32; pub extern fn ListAll( productIDList: *[127]c_long, serialnumList: *[127]c_long, localIDList: *[127]c_long, powerList: *[127]c_long, calMatrix: *[127][20]c_long, numberFound: *c_long, fcddMaxSize: *c_long, hvcMaxSize: *c_long, ) c_long; pub extern fn LocalID( idnum: *c_long, localID: c_long, ) c_long; pub extern fn PulseOut( idnum: *c_long, demo: c_long, lowFirst: c_long, bitSelect: c_long, numPulses: c_long, timeB1: c_long, timeC1: c_long, timeB2: c_long, timeC2: c_long, ) c_long; pub extern fn PulseOutStart( idnum: *c_long, demo: c_long, lowFirst: c_long, bitSelect: c_long, numPulses: c_long, timeB1: c_long, timeC1: c_long, timeB2: c_long, timeC2: c_long, ) c_long; pub extern fn PulseOutFinish( idnum: *c_long, demo: c_long, timeoutMS: c_long, ) c_long; pub extern fn PulseOutCalc( frequency: [*c]f32, timeB: [*c]c_long, timeC: [*c]c_long, ) c_long; pub extern fn ReEnum( idnum: *c_long, ) c_long; pub extern fn Reset( idnum: *c_long, ) c_long; pub extern fn ResetLJ( idnum: *c_long, ) c_long; pub extern fn SHT1X( idnum: *c_long, demo: c_long, softComm: c_long, mode: c_long, statusReg: c_long, tempC: [*c]f32, tempF: [*c]f32, rh: [*c]f32, ) c_long; pub extern fn SHTComm( idnum: *c_long, softComm: c_long, waitMeas: c_long, serialReset: c_long, dataRate: c_long, numWrite: c_long, numRead: c_long, datatx: [*c]u8, datarx: [*c]u8, ) c_long; pub extern fn SHTCRC( statusReg: c_long, numWrite: c_long, numRead: c_long, datatx: [*c]u8, datarx: [*c]u8, ) c_long; pub extern fn Synch( idnum: *c_long, demo: c_long, mode: c_long, msDelay: c_long, husDelay: c_long, controlCS: c_long, csLine: c_long, csState: c_long, configD: c_long, numWriteRead: c_long, data: [*c]c_long, ) c_long; pub extern fn Watchdog( idnum: *c_long, demo: c_long, active: c_long, timeout: c_long, reset: c_long, activeD0: c_long, activeD1: c_long, activeD8: c_long, stateD0: c_long, stateD1: c_long, stateD8: c_long, ) c_long; pub extern fn ReadMem( idnum: *c_long, address: c_long, data3: [*c]c_long, data2: [*c]c_long, data1: [*c]c_long, data0: [*c]c_long, ) c_long; pub extern fn WriteMem( idnum: *c_long, unlocked: c_long, address: c_long, data3: c_long, data2: c_long, data1: c_long, data0: c_long, ) c_long; pub extern fn CloseLabJack( localID: c_long, ) c_long;