#ifndef LAB_JACK_M_HEADER
#define LAB_JACK_M_HEADER
#define LJM_VERSION 1.2000
#define LJM_ERROR_CODE static const int
#ifdef __cplusplus
extern "C" {
#endif
#ifdef WIN32
#define LJM_ERROR_RETURN int __stdcall
#define LJM_LONG_LONG_RETURN long long __stdcall
#define LJM_VOID_RETURN void __stdcall
#define LJM_ERROR_STRING const char * __stdcall
#define LJM_DOUBLE_RETURN double __stdcall
#else
#ifdef __APPLE__
#define LJM_ERROR_RETURN int
#define LJM_LONG_LONG_RETURN long long
#define LJM_VOID_RETURN void
#define LJM_ERROR_STRING const char *
#define LJM_DOUBLE_RETURN double
#else
#define LJM_ERROR_RETURN __attribute__((__visibility__("default"))) int
#define LJM_LONG_LONG_RETURN __attribute__((__visibility__("default"))) long long
#define LJM_VOID_RETURN __attribute__((__visibility__("default"))) void
#define LJM_ERROR_STRING __attribute__((__visibility__("default"))) const char *
#define LJM_DOUBLE_RETURN __attribute__((__visibility__("default"))) double
#endif
#endif
static const int LJM_READ = 0;
static const int LJM_WRITE = 1;
static const int LJM_UINT16 = 0;
static const int LJM_UINT32 = 1;
static const int LJM_INT32 = 2;
static const int LJM_FLOAT32 = 3;
static const int LJM_BYTE = 99;
static const int LJM_STRING = 98;
static const unsigned int LJM_STRING_MAX_SIZE = 49;
enum { LJM_STRING_ALLOCATION_SIZE = 50 };
static const int LJM_INVALID_NAME_ADDRESS = -1;
enum { LJM_MAX_NAME_SIZE = 256 };
enum { LJM_MAC_STRING_SIZE = 18 };
enum { LJM_IPv4_STRING_SIZE = 16 };
static const int LJM_BYTES_PER_REGISTER = 2;
enum {
LJM_dtANY = 0,
LJM_dtT4 = 4,
LJM_dtT7 = 7,
LJM_dtDIGIT = 200,
LJM_dtTSERIES = 84
};
enum {
LJM_ctANY = 0,
LJM_ctANY_TCP = LJM_ctANY,
LJM_ctUSB = 1,
LJM_ctTCP = 2,
LJM_ctNETWORK_TCP = LJM_ctTCP,
LJM_ctETHERNET = 3,
LJM_ctETHERNET_TCP = LJM_ctETHERNET,
LJM_ctWIFI = 4,
LJM_ctWIFI_TCP = LJM_ctWIFI,
LJM_ctNETWORK_UDP = 5,
LJM_ctETHERNET_UDP = 6,
LJM_ctWIFI_UDP = 7,
LJM_ctNETWORK_ANY = 8,
LJM_ctETHERNET_ANY = 9,
LJM_ctWIFI_ANY = 10
};
static const int LJM_TCP_PORT = 502;
static const int LJM_ETHERNET_UDP_PORT = 52362;
static const int LJM_WIFI_UDP_PORT = 502;
static const int LJM_NO_IP_ADDRESS = 0;
static const int LJM_NO_PORT = 0;
static const char * const LJM_DEMO_MODE = "-2";
static const int LJM_idANY = 0;
enum { LJM_DEFAULT_FEEDBACK_ALLOCATION_SIZE = 62 };
static const int LJM_USE_DEFAULT_MAXBYTESPERMBFB = 0;
static const int LJM_DEFAULT_UNIT_ID = 1;
enum { LJM_LIST_ALL_SIZE = 128 };
static const int LJM_NO_TIMEOUT = 0;
static const int LJM_DEFAULT_USB_SEND_RECEIVE_TIMEOUT_MS = 2600;
static const int LJM_DEFAULT_ETHERNET_OPEN_TIMEOUT_MS = 1000;
static const int LJM_DEFAULT_ETHERNET_SEND_RECEIVE_TIMEOUT_MS = 2600;
static const int LJM_DEFAULT_WIFI_OPEN_TIMEOUT_MS = 1000;
static const int LJM_DEFAULT_WIFI_SEND_RECEIVE_TIMEOUT_MS = 4000;
static const int LJM_DUMMY_VALUE = -9999;
static const int LJM_SCAN_NOT_READ = -8888;
static const int LJM_GND = 199;
LJM_ERROR_CODE LJME_NOERROR = 0;
LJM_ERROR_CODE LJME_WARNINGS_BEGIN = 200;
LJM_ERROR_CODE LJME_WARNINGS_END = 399;
LJM_ERROR_CODE LJME_FRAMES_OMITTED_DUE_TO_PACKET_SIZE = 201;
LJM_ERROR_CODE LJME_DEBUG_LOG_FAILURE = 202;
LJM_ERROR_CODE LJME_USING_DEFAULT_CALIBRATION = 203;
LJM_ERROR_CODE LJME_DEBUG_LOG_FILE_NOT_OPEN = 204;
LJM_ERROR_CODE LJME_MODBUS_ERRORS_BEGIN = 1200;
LJM_ERROR_CODE LJME_MODBUS_ERRORS_END = 1216;
LJM_ERROR_CODE LJME_MBE1_ILLEGAL_FUNCTION = 1201;
LJM_ERROR_CODE LJME_MBE2_ILLEGAL_DATA_ADDRESS = 1202;
LJM_ERROR_CODE LJME_MBE3_ILLEGAL_DATA_VALUE = 1203;
LJM_ERROR_CODE LJME_MBE4_SLAVE_DEVICE_FAILURE = 1204;
LJM_ERROR_CODE LJME_MBE5_ACKNOWLEDGE = 1205;
LJM_ERROR_CODE LJME_MBE6_SLAVE_DEVICE_BUSY = 1206;
LJM_ERROR_CODE LJME_MBE8_MEMORY_PARITY_ERROR = 1208;
LJM_ERROR_CODE LJME_MBE10_GATEWAY_PATH_UNAVAILABLE = 1210;
LJM_ERROR_CODE LJME_MBE11_GATEWAY_TARGET_NO_RESPONSE = 1211;
LJM_ERROR_CODE LJME_LIBRARY_ERRORS_BEGIN = 1220;
LJM_ERROR_CODE LJME_LIBRARY_ERRORS_END = 1399;
LJM_ERROR_CODE LJME_UNKNOWN_ERROR = 1221;
LJM_ERROR_CODE LJME_INVALID_DEVICE_TYPE = 1222;
LJM_ERROR_CODE LJME_INVALID_HANDLE = 1223;
LJM_ERROR_CODE LJME_DEVICE_NOT_OPEN = 1224;
LJM_ERROR_CODE LJME_STREAM_NOT_INITIALIZED = 1225;
LJM_ERROR_CODE LJME_DEVICE_DISCONNECTED = 1226;
LJM_ERROR_CODE LJME_DEVICE_NOT_FOUND = 1227;
LJM_ERROR_CODE LJME_DEVICE_ALREADY_OPEN = 1229;
LJM_ERROR_CODE LJME_DEVICE_CURRENTLY_CLAIMED_BY_ANOTHER_PROCESS = 1230;
LJM_ERROR_CODE LJME_CANNOT_CONNECT = 1231;
LJM_ERROR_CODE LJME_SOCKET_LEVEL_ERROR = 1233;
LJM_ERROR_CODE LJME_CANNOT_OPEN_DEVICE = 1236;
LJM_ERROR_CODE LJME_CANNOT_DISCONNECT = 1237;
LJM_ERROR_CODE LJME_WINSOCK_FAILURE = 1238;
LJM_ERROR_CODE LJME_RECONNECT_FAILED = 1239;
LJM_ERROR_CODE LJME_CONNECTION_HAS_YIELDED_RECONNECT_FAILED = 1240;
LJM_ERROR_CODE LJME_USB_FAILURE = 1241;
LJM_ERROR_CODE LJME_U3_NOT_SUPPORTED_BY_LJM = 1243;
LJM_ERROR_CODE LJME_U6_NOT_SUPPORTED_BY_LJM = 1246;
LJM_ERROR_CODE LJME_UE9_NOT_SUPPORTED_BY_LJM = 1249;
LJM_ERROR_CODE LJME_INVALID_ADDRESS = 1250;
LJM_ERROR_CODE LJME_INVALID_CONNECTION_TYPE = 1251;
LJM_ERROR_CODE LJME_INVALID_DIRECTION = 1252;
LJM_ERROR_CODE LJME_INVALID_FUNCTION = 1253;
LJM_ERROR_CODE LJME_INVALID_NUM_REGISTERS = 1254;
LJM_ERROR_CODE LJME_INVALID_PARAMETER = 1255;
LJM_ERROR_CODE LJME_INVALID_PROTOCOL_ID = 1256;
LJM_ERROR_CODE LJME_INVALID_TRANSACTION_ID = 1257;
LJM_ERROR_CODE LJME_UNKNOWN_VALUE_TYPE = 1259;
LJM_ERROR_CODE LJME_MEMORY_ALLOCATION_FAILURE = 1260;
LJM_ERROR_CODE LJME_NO_COMMAND_BYTES_SENT = 1261;
LJM_ERROR_CODE LJME_INCORRECT_NUM_COMMAND_BYTES_SENT = 1262;
LJM_ERROR_CODE LJME_NO_RESPONSE_BYTES_RECEIVED = 1263;
LJM_ERROR_CODE LJME_INCORRECT_NUM_RESPONSE_BYTES_RECEIVED = 1264;
LJM_ERROR_CODE LJME_MIXED_FORMAT_IP_ADDRESS = 1265;
LJM_ERROR_CODE LJME_UNKNOWN_IDENTIFIER = 1266;
LJM_ERROR_CODE LJME_NOT_IMPLEMENTED = 1267;
LJM_ERROR_CODE LJME_INVALID_INDEX = 1268;
LJM_ERROR_CODE LJME_INVALID_LENGTH = 1269;
LJM_ERROR_CODE LJME_ERROR_BIT_SET = 1270;
LJM_ERROR_CODE LJME_INVALID_MAXBYTESPERMBFB = 1271;
LJM_ERROR_CODE LJME_NULL_POINTER = 1272;
LJM_ERROR_CODE LJME_NULL_OBJ = 1273;
LJM_ERROR_CODE LJME_RESERVED_NAME = 1274;
LJM_ERROR_CODE LJME_UNPARSABLE_DEVICE_TYPE = 1275;
LJM_ERROR_CODE LJME_UNPARSABLE_CONNECTION_TYPE = 1276;
LJM_ERROR_CODE LJME_UNPARSABLE_IDENTIFIER = 1277;
LJM_ERROR_CODE LJME_PACKET_SIZE_TOO_LARGE = 1278;
LJM_ERROR_CODE LJME_TRANSACTION_ID_ERR = 1279;
LJM_ERROR_CODE LJME_PROTOCOL_ID_ERR = 1280;
LJM_ERROR_CODE LJME_LENGTH_ERR = 1281;
LJM_ERROR_CODE LJME_UNIT_ID_ERR = 1282;
LJM_ERROR_CODE LJME_FUNCTION_ERR = 1283;
LJM_ERROR_CODE LJME_STARTING_REG_ERR = 1284;
LJM_ERROR_CODE LJME_NUM_REGS_ERR = 1285;
LJM_ERROR_CODE LJME_NUM_BYTES_ERR = 1286;
LJM_ERROR_CODE LJME_CONFIG_FILE_NOT_FOUND = 1289;
LJM_ERROR_CODE LJME_CONFIG_PARSING_ERROR = 1290;
LJM_ERROR_CODE LJME_INVALID_NUM_VALUES = 1291;
LJM_ERROR_CODE LJME_CONSTANTS_FILE_NOT_FOUND = 1292;
LJM_ERROR_CODE LJME_INVALID_CONSTANTS_FILE = 1293;
LJM_ERROR_CODE LJME_INVALID_NAME = 1294;
LJM_ERROR_CODE LJME_OVERSPECIFIED_PORT = 1296;
LJM_ERROR_CODE LJME_INTENT_NOT_READY = 1297;
LJM_ERROR_CODE LJME_ATTR_LOAD_COMM_FAILURE = 1298;
LJM_ERROR_CODE LJME_INVALID_CONFIG_NAME = 1299;
LJM_ERROR_CODE LJME_ERROR_RETRIEVAL_FAILURE = 1300;
LJM_ERROR_CODE LJME_LJM_BUFFER_FULL = 1301;
LJM_ERROR_CODE LJME_COULD_NOT_START_STREAM = 1302;
LJM_ERROR_CODE LJME_STREAM_NOT_RUNNING = 1303;
LJM_ERROR_CODE LJME_UNABLE_TO_STOP_STREAM = 1304;
LJM_ERROR_CODE LJME_INVALID_VALUE = 1305;
LJM_ERROR_CODE LJME_SYNCHRONIZATION_TIMEOUT = 1306;
LJM_ERROR_CODE LJME_OLD_FIRMWARE = 1307;
LJM_ERROR_CODE LJME_CANNOT_READ_OUT_ONLY_STREAM = 1308;
LJM_ERROR_CODE LJME_NO_SCANS_RETURNED = 1309;
LJM_ERROR_CODE LJME_TEMPERATURE_OUT_OF_RANGE = 1310;
LJM_ERROR_CODE LJME_VOLTAGE_OUT_OF_RANGE = 1311;
LJM_ERROR_CODE LJME_FUNCTION_DOES_NOT_SUPPORT_THIS_TYPE = 1312;
LJM_ERROR_CODE LJME_INVALID_INFO_HANDLE = 1313;
LJM_ERROR_CODE LJME_NO_DEVICES_FOUND = 1314;
LJM_ERROR_CODE LJME_AUTO_IPS_FILE_NOT_FOUND = 1316;
LJM_ERROR_CODE LJME_AUTO_IPS_FILE_INVALID = 1317;
LJM_ERROR_CODE LJME_INVALID_INTERVAL_HANDLE = 1318;
LJM_ERROR_CODE LJME_NAMED_MUTEX_PERMISSION_DENIED = 1319;
LJM_ERROR_CODE LJME_DIGITAL_AUTO_RECOVERY_ERROR_DETECTED = 1320;
LJM_ERROR_CODE LJME_NEGATIVE_RECEIVE_BUFFER_SIZE = 1321;
LJM_ERROR_RETURN LJM_ListAll(int DeviceType, int ConnectionType,
int * NumFound, int * aDeviceTypes, int * aConnectionTypes,
int * aSerialNumbers, int * aIPAddresses);
LJM_ERROR_RETURN LJM_ListAllS(const char * DeviceType, const char * ConnectionType,
int * NumFound, int * aDeviceTypes, int * aConnectionTypes,
int * aSerialNumbers, int * aIPAddresses);
LJM_ERROR_RETURN LJM_ListAllExtended(int DeviceType, int ConnectionType,
int NumAddresses, const int * aAddresses, const int * aNumRegs,
int MaxNumFound, int * NumFound, int * aDeviceTypes, int * aConnectionTypes,
int * aSerialNumbers, int * aIPAddresses, unsigned char * aBytes);
LJM_ERROR_RETURN LJM_OpenS(const char * DeviceType, const char * ConnectionType,
const char * Identifier, int * Handle);
LJM_ERROR_RETURN LJM_Open(int DeviceType, int ConnectionType,
const char * Identifier, int * Handle);
LJM_ERROR_RETURN LJM_GetHandleInfo(int Handle, int * DeviceType,
int * ConnectionType, int * SerialNumber, int * IPAddress, int * Port,
int * MaxBytesPerMB);
LJM_ERROR_RETURN LJM_Close(int Handle);
LJM_ERROR_RETURN LJM_CloseAll(void);
LJM_ERROR_RETURN LJM_CleanInfo(int InfoHandle);
LJM_ERROR_RETURN LJM_eWriteAddress(int Handle, int Address, int Type, double Value);
LJM_ERROR_RETURN LJM_eReadAddress(int Handle, int Address, int Type, double * Value);
LJM_ERROR_RETURN LJM_eWriteName(int Handle, const char * Name, double Value);
LJM_ERROR_RETURN LJM_eReadName(int Handle, const char * Name, double * Value);
LJM_ERROR_RETURN LJM_eReadAddresses(int Handle, int NumFrames,
const int * aAddresses, const int * aTypes, double * aValues,
int * ErrorAddress);
LJM_ERROR_RETURN LJM_eReadNames(int Handle, int NumFrames,
const char ** aNames, double * aValues, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eWriteAddresses(int Handle, int NumFrames,
const int * aAddresses, const int * aTypes, const double * aValues,
int * ErrorAddress);
LJM_ERROR_RETURN LJM_eWriteNames(int Handle, int NumFrames,
const char ** aNames, const double * aValues, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eReadAddressArray(int Handle, int Address, int Type,
int NumValues, double * aValues, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eReadNameArray(int Handle, const char * Name,
int NumValues, double * aValues, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eWriteAddressArray(int Handle, int Address, int Type,
int NumValues, const double * aValues, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eWriteNameArray(int Handle, const char * Name,
int NumValues, const double * aValues, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eReadAddressByteArray(int Handle, int Address,
int NumBytes, char * aBytes, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eReadNameByteArray(int Handle, const char * Name,
int NumBytes, char * aBytes, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eWriteAddressByteArray(int Handle, int Address,
int NumBytes, const char * aBytes, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eWriteNameByteArray(int Handle, const char * Name,
int NumBytes, const char * aBytes, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eAddresses(int Handle, int NumFrames,
const int * aAddresses, const int * aTypes, const int * aWrites,
const int * aNumValues, double * aValues, int * ErrorAddress);
LJM_ERROR_RETURN LJM_eNames(int Handle, int NumFrames, const char ** aNames,
const int * aWrites, const int * aNumValues, double * aValues,
int * ErrorAddress);
LJM_ERROR_RETURN LJM_eReadNameString(int Handle, const char * Name,
char * String);
LJM_ERROR_RETURN LJM_eReadAddressString(int Handle, int Address,
char * String);
LJM_ERROR_RETURN LJM_eWriteNameString(int Handle, const char * Name,
const char * String);
LJM_ERROR_RETURN LJM_eWriteAddressString(int Handle, int Address,
const char * String);
LJM_ERROR_RETURN LJM_eStreamStart(int Handle, int ScansPerRead,
int NumAddresses, const int * aScanList, double * ScanRate);
LJM_ERROR_RETURN LJM_eStreamRead(int Handle, double * aData,
int * DeviceScanBacklog, int * LJMScanBacklog);
typedef void (*LJM_StreamReadCallback)(void *);
LJM_ERROR_RETURN LJM_SetStreamCallback(int Handle,
LJM_StreamReadCallback Callback, void * Arg);
LJM_ERROR_RETURN LJM_eStreamStop(int Handle);
LJM_ERROR_RETURN LJM_StreamBurst(int Handle, int NumAddresses,
const int * aScanList, double * ScanRate, unsigned int NumScans,
double * aData);
LJM_ERROR_RETURN LJM_GetStreamTCPReceiveBufferStatus(int Handle,
unsigned int * ReceiveBufferBytesSize,
unsigned int * ReceiveBufferBytesBacklog);
LJM_ERROR_RETURN LJM_WriteRaw(int Handle, const unsigned char * Data,
int NumBytes);
LJM_ERROR_RETURN LJM_ReadRaw(int Handle, unsigned char * Data, int NumBytes);
LJM_ERROR_RETURN LJM_AddressesToMBFB(int MaxBytesPerMBFB, const int * aAddresses,
const int * aTypes, const int * aWrites, const int * aNumValues,
const double * aValues, int * NumFrames, unsigned char * aMBFBCommand);
LJM_ERROR_RETURN LJM_MBFBComm(int Handle, unsigned char UnitID,
unsigned char * aMBFB, int * ErrorAddress);
LJM_ERROR_RETURN LJM_UpdateValues(unsigned char * aMBFBResponse,
const int * aTypes, const int * aWrites, const int * aNumValues,
int NumFrames, double * aValues);
LJM_ERROR_RETURN LJM_NamesToAddresses(int NumFrames, const char ** aNames,
int * aAddresses, int * aTypes);
LJM_ERROR_RETURN LJM_NameToAddress(const char * Name, int * Address, int * Type);
LJM_ERROR_RETURN LJM_AddressesToTypes(int NumAddresses, int * aAddresses,
int * aTypes);
LJM_ERROR_RETURN LJM_AddressToType(int Address, int * Type);
LJM_ERROR_RETURN LJM_LookupConstantValue(const char * Scope,
const char * ConstantName, double * ConstantValue);
LJM_ERROR_RETURN LJM_LookupConstantName(const char * Scope,
double ConstantValue, char * ConstantName);
LJM_VOID_RETURN LJM_ErrorToString(int ErrorCode, char * ErrorString);
LJM_VOID_RETURN LJM_LoadConstants(void);
LJM_ERROR_RETURN LJM_LoadConstantsFromFile(const char * FileName);
LJM_ERROR_RETURN LJM_LoadConstantsFromString(const char * JsonString);
static const long LJM_ttB = 6001;
static const long LJM_ttE = 6002;
static const long LJM_ttJ = 6003;
static const long LJM_ttK = 6004;
static const long LJM_ttN = 6005;
static const long LJM_ttR = 6006;
static const long LJM_ttS = 6007;
static const long LJM_ttT = 6008;
static const long LJM_ttC = 6009;
LJM_ERROR_RETURN LJM_TCVoltsToTemp(int TCType, double TCVolts, double CJTempK,
double * pTCTempK);
LJM_VOID_RETURN LJM_FLOAT32ToByteArray(const float * aFLOAT32, int RegisterOffset, int NumFLOAT32, unsigned char * aBytes);
LJM_VOID_RETURN LJM_ByteArrayToFLOAT32(const unsigned char * aBytes, int RegisterOffset, int NumFLOAT32, float * aFLOAT32);
LJM_VOID_RETURN LJM_UINT16ToByteArray(const unsigned short * aUINT16, int RegisterOffset, int NumUINT16, unsigned char * aBytes);
LJM_VOID_RETURN LJM_ByteArrayToUINT16(const unsigned char * aBytes, int RegisterOffset, int NumUINT16, unsigned short * aUINT16);
LJM_VOID_RETURN LJM_UINT32ToByteArray(const unsigned int * aUINT32, int RegisterOffset, int NumUINT32, unsigned char * aBytes);
LJM_VOID_RETURN LJM_ByteArrayToUINT32(const unsigned char * aBytes, int RegisterOffset, int NumUINT32, unsigned int * aUINT32);
LJM_VOID_RETURN LJM_INT32ToByteArray(const int * aINT32, int RegisterOffset, int NumINT32, unsigned char * aBytes);
LJM_VOID_RETURN LJM_ByteArrayToINT32(const unsigned char * aBytes, int RegisterOffset, int NumINT32, int * aINT32);
LJM_ERROR_RETURN LJM_NumberToIP(unsigned int Number, char * IPv4String);
LJM_ERROR_RETURN LJM_IPToNumber(const char * IPv4String, unsigned int * Number);
LJM_ERROR_RETURN LJM_NumberToMAC(unsigned long long Number, char * MACString);
LJM_ERROR_RETURN LJM_MACToNumber(const char * MACString, unsigned long long * Number);
LJM_LONG_LONG_RETURN LJM_GetHostTick(void);
LJM_VOID_RETURN LJM_GetHostTick32Bit(unsigned int * TickUpper, unsigned int * TickLower);
LJM_ERROR_RETURN LJM_StartInterval(int IntervalHandle, int Microseconds);
LJM_ERROR_RETURN LJM_WaitForNextInterval(int IntervalHandle, int * SkippedIntervals);
LJM_ERROR_RETURN LJM_CleanInterval(int IntervalHandle);
static const char * const LJM_USB_SEND_RECEIVE_TIMEOUT_MS = "LJM_USB_SEND_RECEIVE_TIMEOUT_MS";
static const char * const LJM_ETHERNET_SEND_RECEIVE_TIMEOUT_MS = "LJM_ETHERNET_SEND_RECEIVE_TIMEOUT_MS";
static const char * const LJM_WIFI_SEND_RECEIVE_TIMEOUT_MS = "LJM_WIFI_SEND_RECEIVE_TIMEOUT_MS";
static const char * const LJM_SEND_RECEIVE_TIMEOUT_MS = "LJM_SEND_RECEIVE_TIMEOUT_MS";
static const char * const LJM_ETHERNET_OPEN_TIMEOUT_MS = "LJM_ETHERNET_OPEN_TIMEOUT_MS";
static const char * const LJM_WIFI_OPEN_TIMEOUT_MS = "LJM_WIFI_OPEN_TIMEOUT_MS";
static const char * const LJM_OPEN_TCP_DEVICE_TIMEOUT_MS = "LJM_OPEN_TCP_DEVICE_TIMEOUT_MS";
static const char * const LJM_DEBUG_LOG_MODE = "LJM_DEBUG_LOG_MODE";
enum {
LJM_DEBUG_LOG_MODE_NEVER = 1,
LJM_DEBUG_LOG_MODE_CONTINUOUS = 2,
LJM_DEBUG_LOG_MODE_ON_ERROR = 3
};
static const char * const LJM_DEBUG_LOG_LEVEL = "LJM_DEBUG_LOG_LEVEL";
enum {
LJM_STREAM_PACKET = 1,
LJM_TRACE = 2,
LJM_DEBUG = 4,
LJM_INFO = 6,
LJM_PACKET = 7,
LJM_WARNING = 8,
LJM_USER = 9,
LJM_ERROR = 10,
LJM_FATAL = 12
};
static const char * const LJM_DEBUG_LOG_BUFFER_MAX_SIZE = "LJM_DEBUG_LOG_BUFFER_MAX_SIZE";
static const char * const LJM_DEBUG_LOG_SLEEP_TIME_MS = "LJM_DEBUG_LOG_SLEEP_TIME_MS";
static const char * const LJM_LIBRARY_VERSION = "LJM_LIBRARY_VERSION";
static const char * const LJM_ALLOWS_AUTO_MULTIPLE_FEEDBACKS = "LJM_ALLOWS_AUTO_MULTIPLE_FEEDBACKS";
static const char * const LJM_ALLOWS_AUTO_CONDENSE_ADDRESSES = "LJM_ALLOWS_AUTO_CONDENSE_ADDRESSES";
static const char * const LJM_AUTO_IPS_FILE = "LJM_AUTO_IPS_FILE";
static const char * const LJM_AUTO_IPS = "LJM_AUTO_IPS";
static const char * const LJM_AUTO_RECONNECT_STICKY_CONNECTION = "LJM_AUTO_RECONNECT_STICKY_CONNECTION";
static const char * const LJM_AUTO_RECONNECT_STICKY_SERIAL = "LJM_AUTO_RECONNECT_STICKY_SERIAL";
static const char * const LJM_AUTO_RECONNECT_WAIT_MS = "LJM_AUTO_RECONNECT_WAIT_MS";
static const char * const LJM_MODBUS_MAP_CONSTANTS_FILE = "LJM_MODBUS_MAP_CONSTANTS_FILE";
static const char * const LJM_ERROR_CONSTANTS_FILE = "LJM_ERROR_CONSTANTS_FILE";
static const char * const LJM_DEBUG_LOG_FILE = "LJM_DEBUG_LOG_FILE";
static const char * const LJM_CONSTANTS_FILE = "LJM_CONSTANTS_FILE";
static const char * const LJM_DEBUG_LOG_FILE_MAX_SIZE = "LJM_DEBUG_LOG_FILE_MAX_SIZE";
static const char * const LJM_DEEP_SEARCH_FILE = "LJM_DEEP_SEARCH_FILE";
static const char * const LJM_SPECIFIC_IPS_FILE = "LJM_SPECIFIC_IPS_FILE";
static const char * const LJM_STREAM_AIN_BINARY = "LJM_STREAM_AIN_BINARY";
static const char * const LJM_STREAM_DIGITAL_AUTO_RECOVERY_ERROR_DETECTION_DISABLED =
"LJM_STREAM_DIGITAL_AUTO_RECOVERY_ERROR_DETECTION_DISABLED";
static const char * const LJM_STREAM_SCANS_RETURN = "LJM_STREAM_SCANS_RETURN";
enum {
LJM_STREAM_SCANS_RETURN_ALL = 1,
LJM_STREAM_SCANS_RETURN_ALL_OR_NONE = 2
};
static const char * const LJM_STREAM_RECEIVE_TIMEOUT_MODE = "LJM_STREAM_RECEIVE_TIMEOUT_MODE";
enum {
LJM_STREAM_RECEIVE_TIMEOUT_MODE_CALCULATED = 1,
LJM_STREAM_RECEIVE_TIMEOUT_MODE_MANUAL = 2
};
static const char * const LJM_STREAM_TCP_RECEIVE_BUFFER_SIZE = "LJM_STREAM_TCP_RECEIVE_BUFFER_SIZE";
static const char * const LJM_STREAM_RECEIVE_TIMEOUT_MS = "LJM_STREAM_RECEIVE_TIMEOUT_MS";
static const char * const LJM_STREAM_TRANSFERS_PER_SECOND = "LJM_STREAM_TRANSFERS_PER_SECOND";
static const char * const LJM_RETRY_ON_TRANSACTION_ID_MISMATCH = "LJM_RETRY_ON_TRANSACTION_ID_MISMATCH";
static const char * const LJM_OLD_FIRMWARE_CHECK = "LJM_OLD_FIRMWARE_CHECK";
static const char * const LJM_USE_TCP_INIT_FOR_T7_WIFI_TCP = "LJM_USE_TCP_INIT_FOR_T7_WIFI_TCP";
static const char * const LJM_ZERO_LENGTH_ARRAY_MODE = "LJM_ZERO_LENGTH_ARRAY_MODE";
enum {
LJM_ZERO_LENGTH_ARRAY_ERROR = 1,
LJM_ZERO_LENGTH_ARRAY_IGNORE_OPERATION = 2
};
LJM_ERROR_RETURN LJM_WriteLibraryConfigS(const char * Parameter, double Value);
LJM_ERROR_RETURN LJM_WriteLibraryConfigStringS(const char * Parameter,
const char * String);
LJM_ERROR_RETURN LJM_ReadLibraryConfigS(const char * Parameter, double * Value);
LJM_ERROR_RETURN LJM_ReadLibraryConfigStringS(const char * Parameter, char * String);
LJM_ERROR_RETURN LJM_LoadConfigurationFile(const char * FileName);
LJM_ERROR_RETURN LJM_GetSpecificIPsInfo(int * InfoHandle, const char ** Info);
LJM_ERROR_RETURN LJM_GetDeepSearchInfo(int * InfoHandle, const char ** Info);
LJM_ERROR_RETURN LJM_Log(int Level, const char * String);
LJM_ERROR_RETURN LJM_ResetLog(void);
typedef void (*LJM_DeviceReconnectCallback)(int);
LJM_ERROR_RETURN LJM_RegisterDeviceReconnectCallback(int Handle,
LJM_DeviceReconnectCallback Callback);
static const int LJM_DEFAULT_PORT = 502;
static const int LJM_UDP_PORT = 52362;
static const int LJM_MAX_TCP_PACKET_NUM_BYTES_T7 = 1040;
static const int LJM_MAX_USB_PACKET_NUM_BYTES = 64;
static const int LJM_MAX_ETHERNET_PACKET_NUM_BYTES_T7 = 1040;
static const int LJM_MAX_WIFI_PACKET_NUM_BYTES_T7 = 500;
LJM_ERROR_CODE LJME_COULD_NOT_CLAIM_DEVICE = 1230;
LJM_ERROR_CODE LJME_U3_CANNOT_BE_OPENED_BY_LJM = 1243;
LJM_ERROR_CODE LJME_U6_CANNOT_BE_OPENED_BY_LJM = 1246;
LJM_ERROR_CODE LJME_UE9_CANNOT_BE_OPENED_BY_LJM = 1249;
LJM_ERROR_CODE LJME_INVALID_VALUE_TYPE = 1259;
static const char * const LJM_SPECIAL_ADDRESSES_FILE = "LJM_SPECIAL_ADDRESSES_FILE";
static const char * const LJM_SPECIAL_ADDRESSES_STATUS = "LJM_SPECIAL_ADDRESSES_STATUS";
static const char * const LJM_OPEN_MODE = "LJM_OPEN_MODE";
enum { LJM_KEEP_OPEN = 1, LJM_OPEN_CLOSE = 2 };
#ifdef __cplusplus
}
#endif
#endif