123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /**************************************************************************
- *
- * Filename: plcm3Api.h
- * Author: MAS
- * Description:
- *
- * This header defines the interface to driver routines for the
- * PicoLog CM3 Data Logger.
- *
- * Copyright © 2011-2018 Pico Technology Ltd. All rights reserved.
- *
- *************************************************************************/
- #ifndef __PLCM3API_H__
- #define __PLCM3API_H__
- #include <stdint.h>
- #include "PicoStatus.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
- #endif
- #ifdef WIN32
- // If you are dynamically linking plcm3.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
- #endif
- #define PLCM3_MIN_WIRES 2
- #define PLCM3_MAX_WIRES 4
- typedef enum enPLCM3Channels
- {
- PLCM3_CHANNEL_1 = 1,
- PLCM3_CHANNEL_2,
- PLCM3_CHANNEL_3,
- PLCM3_MAX_CHANNELS = PLCM3_CHANNEL_3
- } PLCM3_CHANNELS;
- typedef enum enPLCM3DataType
- {
- PLCM3_OFF,
- PLCM3_1_MILLIVOLT,
- PLCM3_10_MILLIVOLTS,
- PLCM3_100_MILLIVOLTS,
- PLCM3_VOLTAGE,
- PLCM3_MAX_DATA_TYPES
- } PLCM3_DATA_TYPES;
- typedef enum enPLCM3IpDetailsType
- {
- PLCM3_IDT_GET,
- PLCM3_IDT_SET,
- } PLCM3_IP_DETAILS_TYPE;
- typedef enum enPLCM3CommunicationType
- {
- PLCM3_CT_USB = 0x00000001,
- PLCM3_CT_ETHERNET = 0x00000002,
- PLCM3_CT_ALL = 0xFFFFFFFF
- }PLCM3_COMMUNICATION_TYPE;
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3Enumerate)
- (
- int8_t *details,
- uint32_t *length,
- PLCM3_COMMUNICATION_TYPE type
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3OpenUnit)
- (
- int16_t * handle,
- int8_t * serial
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3OpenUnitViaIp)
- (
- int16_t * handle,
- int8_t * serial,
- int8_t * ipAddress
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3CloseUnit)
- (
- int16_t handle
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3IpDetails)
- (
- int16_t handle,
- int16_t *enabled,
- int8_t *ipaddress,
- uint16_t *length,
- uint16_t *listeningPort,
- PLCM3_IP_DETAILS_TYPE type
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3GetUnitInfo)
- (
- int16_t handle,
- int8_t * string,
- int16_t stringLength,
- int16_t * requiredSize,
- PICO_INFO info
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3SetChannel)
- (
- int16_t handle,
- PLCM3_CHANNELS channel,
- PLCM3_DATA_TYPES type
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3SetMains)
- (
- int16_t handle,
- uint16_t sixtyHertz
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (PLCM3GetValue)
- (
- int16_t handle,
- PLCM3_CHANNELS channel,
- int32_t * value
- );
- #endif
|