123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- /****************************************************************************
- *
- * Filename: HRDL.h
- * Author: MAS
- * Description:
- *
- * This header defines the interface to driver routines for the PicoLog
- * High Resolution Data Logger Series.
- *
- * Copyright © 2004-2018 Pico Technology Ltd. All rights reserved.
- *
- ****************************************************************************/
- #pragma once
- #include <stdint.h>
- #ifdef PREF0
- #undef PREF0
- #endif
- #ifdef PREF1
- #undef PREF1
- #endif
- #ifdef PREF2
- #undef PREF2
- #endif
- #ifdef PREF3
- #undef PREF3
- #endif
- #ifdef __cplusplus
- #define PREF0 extern "C"
- #else
- #define PREF0
- #define TYPE_ENUM enum
- #endif
- #ifdef WIN32
- // If you are dynamically linking hrdl.dll into your project #define DYNLINK
- // somewhere in your project before here.
- #ifdef DYNLINK
- #define PREF1 typedef
- #define PREF2
- #define PREF3(x) (__stdcall *x)
- #else
- #define PREF1
- #ifdef _USRDLL
- #define PREF2 __declspec(dllexport) __stdcall
- #else
- #define PREF2 __declspec(dllimport) __stdcall
- #endif
- #define PREF3(x) x
- #endif
- #else
- /* Define a 64-bit integer type */
- #ifdef DYNLINK
- #define PREF1 typedef
- #define PREF2
- #define PREF3(x) (*x)
- #else
- #ifdef _USRDLL
- #define PREF1 __attribute__((visibility("default")))
- #else
- #define PREF1
- #endif
- #define PREF2
- #define PREF3(x) x
- #endif
- #define __stdcall
- #endif
- #define HRDL_MAX_PICO_UNITS 64
- #define HRDL_MAX_UNITS 20
- typedef enum enHRDLInputs
- {
- HRDL_DIGITAL_CHANNELS,
- HRDL_ANALOG_IN_CHANNEL_1,
- HRDL_ANALOG_IN_CHANNEL_2,
- HRDL_ANALOG_IN_CHANNEL_3,
- HRDL_ANALOG_IN_CHANNEL_4,
- HRDL_ANALOG_IN_CHANNEL_5,
- HRDL_ANALOG_IN_CHANNEL_6,
- HRDL_ANALOG_IN_CHANNEL_7,
- HRDL_ANALOG_IN_CHANNEL_8,
- HRDL_ANALOG_IN_CHANNEL_9,
- HRDL_ANALOG_IN_CHANNEL_10,
- HRDL_ANALOG_IN_CHANNEL_11,
- HRDL_ANALOG_IN_CHANNEL_12,
- HRDL_ANALOG_IN_CHANNEL_13,
- HRDL_ANALOG_IN_CHANNEL_14,
- HRDL_ANALOG_IN_CHANNEL_15,
- HRDL_ANALOG_IN_CHANNEL_16,
- HRDL_MAX_ANALOG_CHANNELS = HRDL_ANALOG_IN_CHANNEL_16,
- } HRDL_INPUTS;
- typedef enum enHRDLDigitalIoChannel
- {
- HRDL_DIGITAL_IO_CHANNEL_1 = 0x01,
- HRDL_DIGITAL_IO_CHANNEL_2 = 0x02,
- HRDL_DIGITAL_IO_CHANNEL_3 = 0x04,
- HRDL_DIGITAL_IO_CHANNEL_4 = 0x08,
- HRDL_MAX_DIGITAL_CHANNELS = 4
- } HRDL_DIGITAL_IO_CHANNEL;
- typedef enum enHRDLRange
- {
- HRDL_2500_MV,
- HRDL_1250_MV,
- HRDL_625_MV,
- HRDL_313_MV,
- HRDL_156_MV,
- HRDL_78_MV,
- HRDL_39_MV,
- HRDL_MAX_RANGES
- } HRDL_RANGE;
- typedef enum enHRDLConversionTime
- {
- HRDL_60MS,
- HRDL_100MS,
- HRDL_180MS,
- HRDL_340MS,
- HRDL_660MS,
- HRDL_MAX_CONVERSION_TIMES
- } HRDL_CONVERSION_TIME;
- typedef enum enHRDLInfo
- {
- HRDL_DRIVER_VERSION,
- HRDL_USB_VERSION,
- HRDL_HARDWARE_VERSION,
- HRDL_VARIANT_INFO,
- HRDL_BATCH_AND_SERIAL,
- HRDL_CAL_DATE,
- HRDL_KERNEL_DRIVER_VERSION,
- HRDL_ERROR,
- HRDL_SETTINGS,
- } HRDL_INFO;
- typedef enum enHRDLErrorCode
- {
- HRDL_OK,
- HRDL_KERNEL_DRIVER,
- HRDL_NOT_FOUND,
- HRDL_CONFIG_FAIL,
- HRDL_ERROR_OS_NOT_SUPPORTED,
- HRDL_MAX_DEVICES
- } HRDL_ERROR_CODES;
- typedef enum enSettingsError
- {
- SE_CONVERSION_TIME_OUT_OF_RANGE,
- SE_SAMPLEINTERVAL_OUT_OF_RANGE,
- SE_CONVERSION_TIME_TOO_SLOW,
- SE_CHANNEL_NOT_AVAILABLE,
- SE_INVALID_CHANNEL,
- SE_INVALID_VOLTAGE_RANGE,
- SE_INVALID_PARAMETER,
- SE_CONVERSION_IN_PROGRESS,
- SE_COMMUNICATION_FAILED,
- SE_OK,
- SE_MAX = SE_OK
- } SettingsError;
- typedef enum enHRDLOpenProgress
- {
- HRDL_OPEN_PROGRESS_FAIL = -1,
- HRDL_OPEN_PROGRESS_PENDING = 0,
- HRDL_OPEN_PROGRESS_COMPLETE = 1
- } HRDL_OPEN_PROGRESS;
- typedef enum enBlockMethod
- {
- HRDL_BM_BLOCK,
- HRDL_BM_WINDOW,
- HRDL_BM_STREAM
- } HRDL_BLOCK_METHOD;
- #define INVALID_HRDL_VALUE 0xF0000000
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLOpenUnit) ( void );
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLOpenUnitAsync) (void);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLOpenUnitProgress) (int16_t * handle, int16_t * progress);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLGetUnitInfo) (
- int16_t handle,
- int8_t * string,
- int16_t stringLength,
- int16_t info);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLCloseUnit) ( int16_t handle );
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLGetMinMaxAdcCounts)(int16_t handle, int32_t * minAdc, int32_t * maxAdc, int16_t channel);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLSetAnalogInChannel) (int16_t handle, int16_t channel, int16_t enabled, int16_t range, int16_t singleEnded);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLSetDigitalIOChannel) (int16_t handle, int16_t directionOut, int16_t digitalOutPinState, int16_t enabledDigitalIn);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLSetInterval)(int16_t handle, int32_t sampleInterval_ms, int16_t conversionTime);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLRun) (int16_t handle, int32_t nValues, int16_t method);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLReady) (int16_t handle);
- PREF0 PREF1 void PREF2 PREF3(HRDLStop)(int16_t handle);
- PREF0 PREF1 int32_t PREF2 PREF3(HRDLGetValues) (
- int16_t handle,
- int32_t * values,
- int16_t * overflow,
- int32_t no_of_values);
- PREF0 PREF1 int32_t PREF2 PREF3(HRDLGetTimesAndValues) (
- int16_t handle,
- int32_t * times,
- int32_t * values,
- int16_t * overflow,
- int32_t noOfValues);
- // this routine blocks other functions until it returns
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLGetSingleValue) (
- int16_t handle,
- int16_t channel,
- int16_t range,
- int16_t conversionTime,
- int16_t singleEnded,
- int16_t *overflow,
- int32_t *value);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLCollectSingleValueAsync) (
- int16_t handle,
- int16_t channel,
- int16_t range,
- int16_t conversionTime,
- int16_t singleEnded
- );
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLGetSingleValueAsync) (
- int16_t handle,
- int32_t *value,
- int16_t *overflow);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLSetMains)(int16_t handle, int16_t sixtyHertz);
- PREF0 PREF1 int16_t PREF2 PREF3(HRDLGetNumberOfEnabledChannels)(int16_t handle, int16_t * nEnabledChannels);
- PREF0 PREF1 int16_t PREF2 PREF3 (HRDLAcknowledge)(int16_t handle);
|