Loading...
Searching...
No Matches
GatewaySensorManager.idl
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright 2022 Raritan Inc. All rights reserved.
*/
#ifndef __PERIPHERAL_GATEWAY_SENSOR_MANAGER_IDL__
#define __PERIPHERAL_GATEWAY_SENSOR_MANAGER_IDL__
#include <Sensor.idl>
#include <NumericSensor.idl>
#include <Event.idl>
#include <ModbusCfg.idl>
/**
* Peripheral Devices
*/
module peripheral {
/** Gateway Sensor Configuration Interface */
interface GatewaySensorManager {
/*
To define a gateway sensor the following steps are required:
1) Create a [Numeric|State|Switch]SensorClass with a unique
*classId* and metadata.
This specification can be used for one or more gateway sensors.
2) Create a Remote[ModbusRTU|ModbusTCP|...]Device with a unique
*deviceId* and all information required to connect a remote
device that provides access to sensors and actuators to be associated
to one or more gateway sensors.
3) Create a ValueEncoding, e.g. ModbusValueEncoding[Bit|8|16|32|64],
with a unique *encodingId* and all information needed to correctly
interpret a received byte sequence.
Besides word width, masking and encoding (bool/int/uint/float) there
is also the possibility to define rules that interpret error codes and
special values.
A rule consists of a recognition feature (e.g. InterpretationRuleRAW,
InterpretationRuleIEEE754INF) and an interpretation (e.g. IGNORE,
NUMERIC_INVALID).
This specification can be used for one or more gateway sensors.
4) Create a [Modbus|...]Sensor, with references to configurations described
above: *classId*, *deviceId* and *encodingId*. The unique *sensorId* will be
generated if not set. Additionaly, [Modbus|...]Sensor has information necessary
to address the sensor on the referenced RemoteDevice.
5) Store all created classes using setConfiguration()
Example A) PMMC-1000
1) Create NumericSensorClass with
classId = "Temperature"
metaData = {
type = { NUMERIC, TEMPERATURE, DEGREE_CELSIUS },
decdigits = 1,
range = { -55, +85 },
accuracy = 0.1,
resolution = 0.1,
tolerance = 0,
noiseThreshold = -55,
thresholdCaps = { true, true, true, true }
}
defaultThresholds = {
upperCriticalActive = true,
upperCritical = 44.0,
upperWarningActive = true,
upperWarning = 37.0,
lowerWarningActive = true,
lowerWarning = 1.0,
lowerCriticalActive = true,
lowerCritical = -11,
assertionTimeout = 3,
deassertionHysteresis = 2.0F
}
preferCommonThresholds = false
2) Create RemoteModbusRTUDevice with
deviceId = "PMMC"
busInterface = "REMOTE-HUB-1"
busSettings = {38400, NONE, 8, 1}
unitId = 247;
detectionIdentifiers = [ { VENDOR_NAME, "Raritan" },
{ PRODUCT_CODE, "iPDU" }
{ REVISION, "3\\.6.*"}
]
3) Create ModbusValueEncoding32 with
encodingId = "IEEE754_32"
endianness = MODBUS_BIG_ENDIAN
type = IEEE754
interpretationRules = [
InterpretationRuleIEEE754NAN {
interpretation = INVALID
}
]
4) Create ModbusSensor with
classId = "Temperature"
deviceId = "PMMC"
encodingId = "IEEE754_32"
function = HOLDING_REGISTER;
regAddr = 0x812
defaultName = "Room temperature"
Example B) Current sensor and check product code in INPUT_REGISTER 0
1) Create NumericSensorClass with
classId = "Current"
metaData = {
type = { NUMERIC, CURRENT, AMPERE },
decdigits = 2,
range = { 0, 100 },
accuracy = 0.01,
resolution = 0.01,
tolerance = 0,
noiseThreshold = 0.01,
thresholdCaps = { true, true, true, true }
}
2) Create RemoteModbusRTUDevice with
deviceId = "GW"
busInterface = "USB-2"
busSettings = {9600, NONE, 8, 1}
unitId = 1;
3) Create ModbusValueEncoding32 with
encodingId = "IEEE754_32_MIXED_LE"
endianness = MODBUS_LITTLE_ENDIAN
type = IEEE754
interpretationRules = [
InterpretationRuleRAW {
value = 0x00800000 # FLT_MIN
interpretation = IGNORE
ignoreTimeout = 60 # unavailable after 60 seconds
},
InterpretationRuleRAW {
value = 0x7f7fffff # FLT_MAX
interpretation = UNAVAILABLE
}
]
Create ModbusValueEncoding16 with
encodingId = "GW_PRODUCT_UINT_16"
type = UINT
interpretationRules = [
InterpretationRuleRAW {
value = 1200 # product code
invertCondition = true
interpretation = REJECT_DEVICE # device detection failed
},
]
4) Create ModbusSensor with
classId = "Current"
deviceId = "GW"
encodingId = "IEEE754_32_MIXED_LE"
function = INPUT_REGISTER;
regAddr = 0xD
defaultName = "AC Current ch2"
Create ModbusSensor with
classId = "" # used for device detection only
deviceId = "GW"
encodingId = "GW_PRODUCT_UINT_16"
function = INPUT_REGISTER;
regAddr = 0
Example C) Energy Meter
1) Create NumericSensorClass with
classId = "Energy"
metaData = {
type = { NUMERIC, POWER, WATT },
decdigits = 1,
range = { 0, 9999999 },
accuracy = 0.1,
resolution = 0.1,
tolerance = 0,
noiseThreshold = 0,
thresholdCaps = { }
}
2) Create RemoteModbusRTUDevice with
deviceId = "EX4"
busInterface = "REMOTE-HUB-1"
busSettings = {9600, NONE, 8, 1}
unitId = 4;
3) Create ModbusValueEncoding32 with
encodingId = "UINT_24_MIXED_LE"
endianness = MODBUS_LITTLE_ENDIAN
mask = "0x00FFFFFF"
type = UINT
scalingFactor = 10.0;
4) Create ModbusSensor with
classId = "Energy"
deviceId = "EX4"
encodingId = "UINT_24_MIXED_LE"
function = HOLDING_REGISTER;
regAddr = 0
defaultName = "Energy Meter"
*/
/* ======================= SENSOR CLASSES ========================= */
/**
* @brief Specification of sensor class that stores sensor properties
*
* Before an instance of Sensor can be created,
* an instance of SensorClass must be present.
* The Sensor locates the corresponding SensorClass
* using the sensor class id `classId`.
*/
valueobject SensorClass {
string classId; ///< sensor class id
};
/**
* @brief Sensor class that stores numeric sensor properties
*/
valueobject NumericSensorClass extends SensorClass {
/**
* numeric sensor type, ranges, etc.
*/
sensors.NumericSensor.MetaData metadata;
/**
* threshold values may be used initially and as default threshold values,
* depending on the value of the preferCommonThresholds field
*/
sensors.NumericSensor.Thresholds defaultThresholds;
boolean preferCommonThresholds; ///< if true, use common default thresholds if available, otherwise use the value of the defaultThresholds field
};
/**
* @brief Sensor class that stores state sensor properties
*/
valueobject StateSensorClass extends SensorClass {
sensors.Sensor.TypeSpec type; ///< state sensor type
};
/**
* @brief Sensor class that switch properties
*/
valueobject SwitchSensorClass extends StateSensorClass { };
/* ======================= REMOTE DEVICES ========================= */
/**
* @brief Specification of a remote device that provides access to sensors
*
* It contains all the information required to connect a remote
* device that provides access to sensors and actuators to be connected
* to one or more gateway sensors.
*
* Before an instance of Sensor can be created, an instance
* of RemoteDevice must be present. The Sensor locates the
* corresponding RemoteDevice using the remote device id `deviceId`.
*/
valueobject RemoteDevice {
string deviceId; ///< remote device id
boolean disabled; ///< prevents usage of all sensor specifications which reference this device
string name; ///< human readable remote device name
int timeoutMs; ///< communication access timeout, 0 = default
int retry; ///< communication retry count, 0 = default
};
constant int MODBUS_VENDOR_NAME = 0;
constant int MODBUS_PRODUCT_CODE = 1;
constant int MODBUS_REVISION = 2;
constant int MODBUS_VENDOR_URL = 3;
constant int MODBUS_PRODUCT_NAME = 4;
constant int MODBUS_MODEL_NAME = 5;
constant int MODBUS_APP_NAME = 6;
valueobject RemoteModbusDevice extends RemoteDevice {
map<int, string> detectionIdentifiers; ///< list of expected device identifiers
int unitId; ///< modbus server address
/** @brief list of unsupported modbus function codes (FC)
*
* This information is used to select a supported way for communication,
* if more than one way is available. If there is no flexibility, the list is ignored.
* Therefore, some entries may have no effect.
*
* Examples:
* - FC 43 (Read Device Identification) is used without regard to this list,
* as there is no alternative way if detectionIdentifiers is to be used
* - FC 22 (Masked Register Write) is only used if the support is known,
* otherwise FC 03 + FC 06 (or FC 16 if not known as unsupported) will be used
*/
vector<byte> unsupportedFunctionCodes;
};
valueobject RemoteModbusRTUDevice extends RemoteModbusDevice {
/**
* @brief rs485 interface used for modbus communication
*
* Supported values:
*
* (1) with SRC-080X, the REMOTE HUB interfaces are supported, possible values are:
* - "REMOTE-HUB-1" or "sensorhub0-rs485" (deprecated) mean port "REMOTE HUB 1"
* - "REMOTE-HUB-2" or "sensorhub1-rs485" (deprecated) mean port "REMOTE HUB 2"
*
* (2) with Raritan Modbus/RS-485 dongle "USB-MOD-DONGLE", possible values are:
* - "USB<topo>": where <topo> contains the USB port number and possibly the topology of USB hubs
* - "USB-2" means dongle connected to PDU USB port "USB A 2"
* - "USB-1-2-3" means dongle is connected to a first USB hub at port 3,
* and the first USB hub is connected to a second USB hub at port 2,
* and the second USB hub is connected to PDU USB port "USB A 1"
* - "<serial>": where <serial> is the serial number of USB dongle, according to the label
*/
string busInterface;
ModbusCfg.SerialSettings busSettings; ///< interface settings
int interframeDelayDeciChars; ///< (== 0) -> default, (< 0) -> no delay, (> 0) -> e.g. 35 means 3.5 chars
};
valueobject RemoteModbusTCPDevice extends RemoteModbusDevice {
string ipAddress; ///< modbus device ip address
int tcpPort; ///< modbus tcp port
};
valueobject RemoteSnmpDevice extends RemoteDevice {
string host; ///< host
};
valueobject RemoteSnmpV1V2Device extends RemoteSnmpDevice {
string community; ///< community string for v1/v2c
};
enumeration SnmpSecurityLevel {
NO_AUTH_NO_PRIV, ///< no authentication, no privacy
AUTH_NO_PRIV, ///< authentication, no privacy
AUTH_PRIV ///< authentication, privacy
};
enumeration SnmpAuthProtocol {
MD5, ///< MD5
SHA1, ///< SHA-1
SHA224, ///< SHA-224
SHA256, ///< SHA-256
SHA384, ///< SHA-384
SHA512 ///< SHA-512
};
enumeration SnmpPrivProtocol {
DES, ///< DES
AES128, ///< AES-128
AES192, ///< AES-192
AES256, ///< AES-256
AES192_3DES, ///< AES-192 with key extension (3DES)
AES256_3DES ///< AES-256 with key extension (3DES)
};
valueobject RemoteSnmpV3Device extends RemoteSnmpDevice {
string user; ///< security user name
SnmpSecurityLevel level; ///< security level (noAuthNoPriv|authNoPriv|authPriv)
SnmpAuthProtocol authProtocol; ///< authentication protocol (MD5|SHA|SHA-224|SHA-256|SHA-384|SHA-512)
string authPassphrase; ///< authentication protocol passphrase
SnmpPrivProtocol privacyProtocol; ///< privacy protocol (DES|AES|AES-192|AES-256)
string privacyPassphrase; ///< privacy protocol pass phrase
};
/* ======================= VALUE ENCODING ========================= */
/**
* interpretation of binary values
*/
enumeration EncodingType {
BOOL, ///< boolean
INT, ///< signed integer of a size specified in ValueEncoding as two's complement
UINT, ///< unsigned integer of a size specified in ValueEncoding
IEEE754, ///< IEEE 754 floating point of a size specified in ValueEncoding
INT_ONES_COMPLEMENT, ///< integer as one's complement
INT_SIGN_MAGNITUDE, ///< signed integer with sign in MSB
INT_10K, ///< signed integer stored as 'modulo 10000' (int16[0] + 10000 * int16[1] + 10000^2 * int16[2] ...), the int16 parts are stores as two's complement
UINT_10K, ///< unsigned integer stored as 'modulo 10000' (uint16[0] + 10000 * uint16[1] + 10000^2 * uint16[2] ...)
INT_BCD, ///< signed integer as BCD, 10th complement
INT_SIGN_MAGNITUDE_BCD, ///< signed integer as BCD, with sign in MSB
UINT_BCD, ///< unsigned integer as BCD
INT_PACKED_BCD, ///< signed integer as packed BCD, 10th complement
INT_SIGN_MAGNITUDE_PACKED_BCD, ///< signed integer as packed BCD, with sign in MSB
UINT_PACKED_BCD ///< unsigned integer as packed BCD
};
/**
* @brief Here you define how certain read values are to be interpreted
*
* The rules leading to *_IGNORE and *_UNAVAILABLE are applied to numeric values and states.
*
* IGNORE can be time-limited using ignoreTimeout, see InterpretationRule. After the time has expired,
* the value is set to unavailable.
*
* NUMERIC_INVALID only affects NumericSensors. As DEFAULT for numeric sensors (if
* no rule is matched, or if DEFAULT is matched) the value is converted to a floating point
* number according to type specification.
*
* STATE_ON and STATE_OFF affect only StateSensors. If no such rule is specified, the state
* becomes true if the read value is integral and not 0. If STATE_ON or STATE_OFF are present in
* the rules, then the state is set to true or false only if a STATE_* rule matches. Otherwise
* (DEFAULT) the state becomes unavailable.
* REJECT_SENSOR means: do not accept this reading in any way. The sensor is treated as
* non-existent.
*
* REJECT_DEVICE means: do not accept this reading in any way. Instead, this is a clear
* indication that the device is defective, or it is a wrong device. All sensors that belong
* to this device are treated as non-existent.
* REJECT_DEVICE can be used in this way to detect devices. The sensor defined for this purpose
* does not have to be imported as gateway sensor (see Sensor.classId = "").
*
* Default on read access for
* - received modbus exceptions is REJECT_SENSOR
* - on modbus errors (SystemError or ModbusSystemError) is REJECT_DEVICE
* - on value decoding/conversion is normal numeric/state decoding
*
* Default on write access (actuator switch) for
* - all modbus exceptions and errors is UNAVAILABLE
*/
enumeration Interpretation {
DEFAULT, ///< default behaviour as without rule, see above
REJECT_DEVICE, ///< read only: device is treated as non-existent
REJECT_SENSOR, ///< read only: sensor is treated as non-existent
IGNORE, ///< read: ignore (use previous value) and retry write: ignore error and retry
UNAVAILABLE, ///< read: treat as unavailable (both state and numeric value) write: give up, do not retry
NUMERIC_INVALID, ///< read only: treat as invalid numeric value
STATE_ON, ///< read: treat as state ON write: use for reversed rule to handle requested ON
STATE_OFF ///< read: treat as state OFF write: use for reversed rule to handle requested OFF
};
enumeration AccessType {
ACCESS_READ_WRITE, ///< use rule for both read and write access
ACCESS_READ, ///< use rule for read access only
ACCESS_WRITE ///< use rule for write access only
};
/**
* InterpretationRule defines a rule that is applied to a reading, resulting in an Interpretation.
* A list of InterpretationRule is applied in the given order, and stopped after the first match.
* If no rule applies, the interpretation is Interpretation.DEFAULT.
**/
valueobject InterpretationRule {
Interpretation interpretation; ///< how to interpret the applied rule
int ignoreTimeout; ///< if > 0, ignoring stops after this timeout (seconds), and state changes to unavailable
AccessType accessType; ///< use rule for read and/or write access
};
valueobject InterpretationRuleInvertable extends InterpretationRule {
boolean invertCondition; ///< negate rule condition
};
/** InterpretationRuleModbusException is applied to modbus read exceptions
*/
valueobject InterpretationRuleModbusException extends InterpretationRuleInvertable {
vector<int> exceptions; ///< list of modbus exception codes
};
/** InterpretationRuleModbusSystemError is applied to standard system errors returned
* from libmodbus
*/
valueobject InterpretationRuleModbusSystemError extends InterpretationRuleInvertable {
vector<int> errnos; ///< list of system error codes
};
/** InterpretationRuleModbusSpecificError is applied to specific errors from libmodbus
*/
valueobject InterpretationRuleModbusSpecificError extends InterpretationRuleInvertable {
vector<ModbusCfg.SpecificModbusErrors> errors; ///< list of specific libmodbus error codes
};
/** InterpretationRuleRAW is applied after swap, but before masking (because it has it's own mask)
*/
valueobject InterpretationRuleRAW extends InterpretationRuleInvertable {
string value; ///< compare to value (unsigned 64-bit value as string, decimal or hexadecimal)
string mask; ///< mask before compare (unsigned 64-bit value as string, decimal or hexadecimal; "" or "0" = not masked, the same as "0xFFFFFFFFFFFFFFFF")
};
/** InterpretationRuleRangeRAW is applied after swap, but before masking (because it has it's own mask)
*/
valueobject InterpretationRuleRangeRAW extends InterpretationRuleInvertable {
string min; ///< minimum accepted value (unsigned 64-bit value as string, decimal or hexadecimal)
string max; ///< maximum accepted value (unsigned 64-bit value as string, decimal or hexadecimal)
string mask; ///< mask before compare (unsigned 64-bit value as string, decimal or hexadecimal; "" or "0" = not masked, the same as "0xFFFFFFFFFFFFFFFF")
};
/** InterpretationRuleEnum is applied to a reading and maps the values to the given Interpretation
*/
valueobject InterpretationRuleEnum extends InterpretationRuleInvertable {
vector<string> enumValues; ///< signed or unsigned 64-bit values as strings, decimal or hexadecimal 64-bit numbers
};
/** InterpretationRuleIEEE* are applied after value is wapped, masked and interpreted as float / double
*/
valueobject InterpretationRuleIEEE754INF extends InterpretationRuleInvertable {};
valueobject InterpretationRuleIEEE754NAN extends InterpretationRuleInvertable {};
valueobject InterpretationRuleCatchAll extends InterpretationRule {};
/**
* @brief Specification of value encoding
*
* Before an instance of Sensor can be created,
* an instance of ValueEncoding must be present.
* The Sensor locates the corresponding ValueEncoding
* using the sensor class id `encodingId`.
*/
valueobject ValueEncoding {
string encodingId; ///< encoding type id
EncodingType type; ///< value coding type
boolean invertState; ///< invert when interpreting as state
vector<InterpretationRule> interpretationRules; ///< error/value interpretation rules
int minAccessInterval; ///< minimum time interval between two read accesses in seconds
};
valueobject NumericValueEncoding extends ValueEncoding {
float scalingFactor; ///< multiply with when interpreting as numeric value
float offset; ///< add value after applying scalingFactor
};
valueobject ModbusValueEncodingBit extends ValueEncoding {};
valueobject ModbusValueEncoding8 extends NumericValueEncoding {
/**
* 16-bit modbus words should be transferred in big-endian byte order.
* For modbus devices that do not comply with this, byteSwap = true must
* be set. Another application is to use byteSwap to address a single byte in
* a 16-bit modbus word in case 8-bit values are requested (ModbusValueEncoding8).
*/
boolean byteSwap;
/**
* 64-bit unsigned raw mask value as decimal or hexadecimal string, applied before interpreting
* ("" or "0" = not masked, the same as "0xFFFFFFFFFFFFFFFF")
*/
string mask;
/**
* The least significant bit of the read word used in numerical interpretation.
* If `start` is greater than 0, then one or more least significant bits remain unused.
* 0 is the default value. For integer values a `start > 0` has mostly the same effect as
* using a `mask = ~(2^start-1)` and a `scalingFactor = 1/2^start`.
*/
int start;
/**
* Word width in bits used in numerical interpretation.
* If `width` is smaller than the read word width, then the most significant bits remain unused.
* 0 is the default value.
* Example: 24 bit signed integer:
* `ModbusValueEncoding32` with `start = 0` and `width = 24` and 'type = INT`
* (Only for unsigned integer the use of `mask` would be sufficient.)
*/
int width;
};
valueobject ModbusValueEncoding16 extends ModbusValueEncoding8 {};
enumeration ModbusEndianness {
MODBUS_BIG_ENDIAN, ///< use big endian modbus word order (default is big endian)
MODBUS_LITTLE_ENDIAN ///< use little endian modbus word order
};
valueobject ModbusValueEncoding32 extends ModbusValueEncoding16 {
/**
* Modbus 16-bit-words should be transmitted in big endian order. For modbus
* devices that do not comply with this, endianness must be set to LITTLE_ENDIAN.
*/
ModbusEndianness endianness;
};
valueobject ModbusValueEncoding48 extends ModbusValueEncoding32 {};
valueobject ModbusValueEncoding64 extends ModbusValueEncoding32 {};
/* ======================= SENSORS ========================= */
/**
* Specification of a Sensor
*/
valueobject Sensor {
/**
* Unique sensor id, is automatically generated if not set
*/
string sensorId;
/**
* Set disabled = true prevents any usage of the specification
*/
boolean disabled;
/**
* @brief remote device id
*
* deviceId is used to locate the corresponding RemoteDevice that
* provides the physical sensor
*/
string deviceId;
/**
* @brief sensor class id
*
* classId is used to locate the corresponding SensorClass.
* classId = "" prevents the sensor specification from being used
* for an imported gateway sensor. The sensor value is read anyway, and a read
* error or a interpretation as Interpretation.REJECT_DEVICE
* prevents the successful detection of the device
*/
string classId;
/**
* @brief sensor encoding id
*
* classId is used to locate the corresponding ValueEncoding
*/
string encodingId;
/**
* @brief sensor name
*
* defaultName is used as default sensor slot name
*/
string defaultName;
/**
* @brief sensor description
*
* defaultDescription is used as default sensor slot description
*/
string defaultDescription;
/**
* @brief sensor location X coordinate
*
* defaultLocationX is used as default sensor slot location X coordinate
*/
string defaultLocationX;
/**
* @brief sensor location Y coordinate
*
* defaultLocationY is used as default sensor slot location Y coordinate
*/
string defaultLocationY;
/**
* @brief sensor location Z coordinate
*
* defaultLocationZ is used as default sensor slot location Z coordinate
*/
string defaultLocationZ;
};
valueobject ModbusSensor extends Sensor {
ModbusCfg.ModbusFunction function; ///< Modbus function to be used
int regAddr; ///< Modbus server register address
};
valueobject SnmpSensor extends Sensor {
string oid; ///< sensor oid
};
/* ======================= FULL CONFIGURATION ========================= */
structure ConfigurationPackage {
boolean disabled; ///< prevents usage of all sensor specifications defined in this package
string name; ///< package name
vector<SensorClass> classes;
vector<RemoteDevice> devices;
vector<ValueEncoding> encodings;
vector<Sensor> sensors;
};
/**
* @brief Get all defined gateway sensors and required objects from config
*
* Read all Sensor Classes, Remote Devices, Value Encodings and Sensors
* at once to ensure that the overall configuration is consistent
*
* @return all defined gateway sensor feature configuration objects
*/
map<string, ConfigurationPackage> getConfiguration();
constant int ERR_CONFIG_INCONSISTENT = 1;
constant int ERR_CONFIG_STORAGE_FAILED = 2;
/**
* @brief Replace defined gateway sensor and/or other configuration objects in config
*
* Write all Sensor Classes, Remote Devices, Value Encodings and Sensors
* at once to ensure that the overall configuration is consistent at every
* moment.
*
* The uniqueness of all IDs and the availability of all referenced elements are
* checked before the configuration is applied. Otherwise setConfiguration() returns
* with an error.
*
* @param cfg all defined gateway sensor feature configuration objects
* @return 0 if OK
* @return ERR_CONFIG_INCONSISTENT if consistency check has failed (e.g. non-unique identifiers)
* @return ERR_CONFIG_STORAGE_FAILED if configuration cannot be stored
*/
int setConfiguration(in map<string, ConfigurationPackage> cfg);
/** Event: The gateway sensor feature configuration has changed */
valueobject ConfigurationChangedEvent extends idl.Event {
map<string, ConfigurationPackage> configuration; ///< the current gateway sensor feature configuration
};
/* ======================= FEEDBACK ========================= */
/**
* @brief Feedback from gateway sensor configuration usage
*
* There is no knowledge of Feedback required to configure gateway sensors.
* The following is only needed for special tools that monitor the usage
* of the configurations above.
*/
structure FeedbackObject {
enumeration FeedbackState {
UNSPECIFIED,
INTENTIONALLY_UNUSED,
FAILED_PRECONDITIONS_UNUSED,
FAILED,
GOOD
};
string key; ///< empty or free defined value name
string value; ///< message or value
FeedbackState stateTansitionTo; ///< this FeedbackObject changes state, if not UNSPECIFIED
};
valueobject Feedback {
FeedbackObject.FeedbackState currentState; ///< Device or sensor state
vector<FeedbackObject> infos;
};
valueobject DeviceFeedback extends Feedback {
string packageId; ///< the configuration package id
string deviceId; ///< the same id as in RemoteDevice
};
valueobject SensorFeedback extends Feedback {
string packageId; ///< the configuration package id
string deviceId; ///< the same id as in RemoteDevice
string sensorId; ///< the same id as in Sensor
};
/**
* Get feedback from gateway sensor configuration usage
*
* @return Result: the full feedback
*/
vector<Feedback> getFeedback();
/** Event: The configuration usage feedback has changed */
valueobject FeedbackChangedEvent extends idl.Event {
vector<Feedback> feedback; ///< the latest configuration usage feedback
};
};
}
#endif /* __PERIPHERAL_GATEWAY_SENSOR_MANAGER_IDL__ */
peripheral::GatewaySensorManager
Gateway Sensor Configuration Interface.
Definition GatewaySensorManager.idl:20
peripheral::GatewaySensorManager::ModbusEndianness
ModbusEndianness
Definition GatewaySensorManager.idl:567
peripheral::GatewaySensorManager::MODBUS_BIG_ENDIAN
@ MODBUS_BIG_ENDIAN
use big endian modbus word order (default is big endian)
Definition GatewaySensorManager.idl:568
peripheral::GatewaySensorManager::MODBUS_LITTLE_ENDIAN
@ MODBUS_LITTLE_ENDIAN
use little endian modbus word order
Definition GatewaySensorManager.idl:569
peripheral::GatewaySensorManager::SnmpPrivProtocol
SnmpPrivProtocol
Definition GatewaySensorManager.idl:358
peripheral::GatewaySensorManager::AES128
@ AES128
AES-128.
Definition GatewaySensorManager.idl:360
peripheral::GatewaySensorManager::AES192_3DES
@ AES192_3DES
AES-192 with key extension (3DES)
Definition GatewaySensorManager.idl:363
peripheral::GatewaySensorManager::AES192
@ AES192
AES-192.
Definition GatewaySensorManager.idl:361
peripheral::GatewaySensorManager::AES256_3DES
@ AES256_3DES
AES-256 with key extension (3DES)
Definition GatewaySensorManager.idl:364
peripheral::GatewaySensorManager::AES256
@ AES256
AES-256.
Definition GatewaySensorManager.idl:362
peripheral::GatewaySensorManager::DES
@ DES
DES.
Definition GatewaySensorManager.idl:359
peripheral::GatewaySensorManager::SnmpAuthProtocol
SnmpAuthProtocol
Definition GatewaySensorManager.idl:349
peripheral::GatewaySensorManager::MD5
@ MD5
MD5.
Definition GatewaySensorManager.idl:350
peripheral::GatewaySensorManager::SHA512
@ SHA512
SHA-512.
Definition GatewaySensorManager.idl:355
peripheral::GatewaySensorManager::SHA256
@ SHA256
SHA-256.
Definition GatewaySensorManager.idl:353
peripheral::GatewaySensorManager::SHA384
@ SHA384
SHA-384.
Definition GatewaySensorManager.idl:354
peripheral::GatewaySensorManager::SHA224
@ SHA224
SHA-224.
Definition GatewaySensorManager.idl:352
peripheral::GatewaySensorManager::SHA1
@ SHA1
SHA-1.
Definition GatewaySensorManager.idl:351
peripheral::GatewaySensorManager::getConfiguration
map< string, ConfigurationPackage > getConfiguration()
Get all defined gateway sensors and required objects from config.
peripheral::GatewaySensorManager::setConfiguration
int setConfiguration(in map< string, ConfigurationPackage > cfg)
Replace defined gateway sensor and/or other configuration objects in config.
peripheral::GatewaySensorManager::EncodingType
EncodingType
interpretation of binary values
Definition GatewaySensorManager.idl:381
peripheral::GatewaySensorManager::INT_10K
@ INT_10K
signed integer stored as 'modulo 10000' (int16[0] + 10000 * int16[1] + 10000^2 * int16[2] ....
Definition GatewaySensorManager.idl:388
peripheral::GatewaySensorManager::INT_SIGN_MAGNITUDE_BCD
@ INT_SIGN_MAGNITUDE_BCD
signed integer as BCD, with sign in MSB
Definition GatewaySensorManager.idl:391
peripheral::GatewaySensorManager::IEEE754
@ IEEE754
IEEE 754 floating point of a size specified in ValueEncoding.
Definition GatewaySensorManager.idl:385
peripheral::GatewaySensorManager::UINT_10K
@ UINT_10K
unsigned integer stored as 'modulo 10000' (uint16[0] + 10000 * uint16[1] + 10000^2 * uint16[2] ....
Definition GatewaySensorManager.idl:389
peripheral::GatewaySensorManager::INT_SIGN_MAGNITUDE
@ INT_SIGN_MAGNITUDE
signed integer with sign in MSB
Definition GatewaySensorManager.idl:387
peripheral::GatewaySensorManager::INT_PACKED_BCD
@ INT_PACKED_BCD
signed integer as packed BCD, 10th complement
Definition GatewaySensorManager.idl:393
peripheral::GatewaySensorManager::INT_BCD
@ INT_BCD
signed integer as BCD, 10th complement
Definition GatewaySensorManager.idl:390
peripheral::GatewaySensorManager::INT_SIGN_MAGNITUDE_PACKED_BCD
@ INT_SIGN_MAGNITUDE_PACKED_BCD
signed integer as packed BCD, with sign in MSB
Definition GatewaySensorManager.idl:394
peripheral::GatewaySensorManager::INT_ONES_COMPLEMENT
@ INT_ONES_COMPLEMENT
integer as one's complement
Definition GatewaySensorManager.idl:386
peripheral::GatewaySensorManager::BOOL
@ BOOL
boolean
Definition GatewaySensorManager.idl:382
peripheral::GatewaySensorManager::UINT_PACKED_BCD
@ UINT_PACKED_BCD
unsigned integer as packed BCD
Definition GatewaySensorManager.idl:395
peripheral::GatewaySensorManager::UINT_BCD
@ UINT_BCD
unsigned integer as BCD
Definition GatewaySensorManager.idl:392
peripheral::GatewaySensorManager::INT
@ INT
signed integer of a size specified in ValueEncoding as two's complement
Definition GatewaySensorManager.idl:383
peripheral::GatewaySensorManager::UINT
@ UINT
unsigned integer of a size specified in ValueEncoding
Definition GatewaySensorManager.idl:384
peripheral::GatewaySensorManager::AccessType
AccessType
Definition GatewaySensorManager.idl:443
peripheral::GatewaySensorManager::ACCESS_READ_WRITE
@ ACCESS_READ_WRITE
use rule for both read and write access
Definition GatewaySensorManager.idl:444
peripheral::GatewaySensorManager::ACCESS_WRITE
@ ACCESS_WRITE
use rule for write access only
Definition GatewaySensorManager.idl:446
peripheral::GatewaySensorManager::ACCESS_READ
@ ACCESS_READ
use rule for read access only
Definition GatewaySensorManager.idl:445
peripheral::GatewaySensorManager::SnmpSecurityLevel
SnmpSecurityLevel
Definition GatewaySensorManager.idl:343
peripheral::GatewaySensorManager::AUTH_NO_PRIV
@ AUTH_NO_PRIV
authentication, no privacy
Definition GatewaySensorManager.idl:345
peripheral::GatewaySensorManager::NO_AUTH_NO_PRIV
@ NO_AUTH_NO_PRIV
no authentication, no privacy
Definition GatewaySensorManager.idl:344
peripheral::GatewaySensorManager::AUTH_PRIV
@ AUTH_PRIV
authentication, privacy
Definition GatewaySensorManager.idl:346
peripheral::GatewaySensorManager::Interpretation
Interpretation
Here you define how certain read values are to be interpreted.
Definition GatewaySensorManager.idl:432
peripheral::GatewaySensorManager::DEFAULT
@ DEFAULT
default behaviour as without rule, see above
Definition GatewaySensorManager.idl:433
peripheral::GatewaySensorManager::UNAVAILABLE
@ UNAVAILABLE
read: treat as unavailable (both state and numeric value) write: give up, do not retry
Definition GatewaySensorManager.idl:437
peripheral::GatewaySensorManager::IGNORE
@ IGNORE
read: ignore (use previous value) and retry write: ignore error and retry
Definition GatewaySensorManager.idl:436
peripheral::GatewaySensorManager::STATE_OFF
@ STATE_OFF
read: treat as state OFF write: use for reversed rule to handle requested OFF
Definition GatewaySensorManager.idl:440
peripheral::GatewaySensorManager::REJECT_SENSOR
@ REJECT_SENSOR
read only: sensor is treated as non-existent
Definition GatewaySensorManager.idl:435
peripheral::GatewaySensorManager::NUMERIC_INVALID
@ NUMERIC_INVALID
read only: treat as invalid numeric value
Definition GatewaySensorManager.idl:438
peripheral::GatewaySensorManager::STATE_ON
@ STATE_ON
read: treat as state ON write: use for reversed rule to handle requested ON
Definition GatewaySensorManager.idl:439
peripheral::GatewaySensorManager::REJECT_DEVICE
@ REJECT_DEVICE
read only: device is treated as non-existent
Definition GatewaySensorManager.idl:434
peripheral::GatewaySensorManager::getFeedback
vector< Feedback > getFeedback()
Get feedback from gateway sensor configuration usage.
peripheral::ModbusCfg
Definition ModbusCfg.idl:13
sensors::NumericSensor
A sensor with numeric readings.
Definition NumericSensor.idl:17
sensors::Sensor
Sensor interface
Definition Sensor.idl:15
idl
Basic IDL definitions.
Definition Event.idl:10
peripheral
Peripheral Devices.
Definition GatewaySensorManager.idl:17
sensors
Sensors Model.
Definition AccumulatingNumericSensor.idl:13
idl::Event
Common base for all events.
Definition Event.idl:13
peripheral::GatewaySensorManager::ConfigurationChangedEvent
Event: The gateway sensor feature configuration has changed.
Definition GatewaySensorManager.idl:715
peripheral::GatewaySensorManager::ConfigurationChangedEvent::configuration
map< string, ConfigurationPackage > configuration
the current gateway sensor feature configuration
Definition GatewaySensorManager.idl:716
peripheral::GatewaySensorManager::ConfigurationPackage
Definition GatewaySensorManager.idl:674
peripheral::GatewaySensorManager::ConfigurationPackage::disabled
boolean disabled
prevents usage of all sensor specifications defined in this package
Definition GatewaySensorManager.idl:675
peripheral::GatewaySensorManager::ConfigurationPackage::name
string name
package name
Definition GatewaySensorManager.idl:676
peripheral::GatewaySensorManager::DeviceFeedback
Definition GatewaySensorManager.idl:748
peripheral::GatewaySensorManager::DeviceFeedback::packageId
string packageId
the configuration package id
Definition GatewaySensorManager.idl:749
peripheral::GatewaySensorManager::DeviceFeedback::deviceId
string deviceId
the same id as in RemoteDevice
Definition GatewaySensorManager.idl:750
peripheral::GatewaySensorManager::FeedbackChangedEvent
Event: The configuration usage feedback has changed.
Definition GatewaySensorManager.idl:767
peripheral::GatewaySensorManager::FeedbackChangedEvent::feedback
vector< Feedback > feedback
the latest configuration usage feedback
Definition GatewaySensorManager.idl:768
peripheral::GatewaySensorManager::FeedbackObject
Feedback from gateway sensor configuration usage.
Definition GatewaySensorManager.idl:729
peripheral::GatewaySensorManager::FeedbackObject::stateTansitionTo
FeedbackState stateTansitionTo
this FeedbackObject changes state, if not UNSPECIFIED
Definition GatewaySensorManager.idl:740
peripheral::GatewaySensorManager::FeedbackObject::value
string value
message or value
Definition GatewaySensorManager.idl:739
peripheral::GatewaySensorManager::FeedbackObject::key
string key
empty or free defined value name
Definition GatewaySensorManager.idl:738
peripheral::GatewaySensorManager::Feedback
Definition GatewaySensorManager.idl:743
peripheral::GatewaySensorManager::Feedback::currentState
FeedbackObject::FeedbackState currentState
Device or sensor state.
Definition GatewaySensorManager.idl:744
peripheral::GatewaySensorManager::InterpretationRuleCatchAll
Definition GatewaySensorManager.idl:509
peripheral::GatewaySensorManager::InterpretationRuleEnum
InterpretationRuleEnum is applied to a reading and maps the values to the given Interpretation.
Definition GatewaySensorManager.idl:500
peripheral::GatewaySensorManager::InterpretationRuleEnum::enumValues
vector< string > enumValues
signed or unsigned 64-bit values as strings, decimal or hexadecimal 64-bit numbers
Definition GatewaySensorManager.idl:501
peripheral::GatewaySensorManager::InterpretationRuleIEEE754INF
InterpretationRuleIEEE* are applied after value is wapped, masked and interpreted as float / double.
Definition GatewaySensorManager.idl:506
peripheral::GatewaySensorManager::InterpretationRuleIEEE754NAN
Definition GatewaySensorManager.idl:507
peripheral::GatewaySensorManager::InterpretationRuleInvertable
Definition GatewaySensorManager.idl:460
peripheral::GatewaySensorManager::InterpretationRuleInvertable::invertCondition
boolean invertCondition
negate rule condition
Definition GatewaySensorManager.idl:461
peripheral::GatewaySensorManager::InterpretationRuleModbusException
InterpretationRuleModbusException is applied to modbus read exceptions.
Definition GatewaySensorManager.idl:466
peripheral::GatewaySensorManager::InterpretationRuleModbusException::exceptions
vector< int > exceptions
list of modbus exception codes
Definition GatewaySensorManager.idl:467
peripheral::GatewaySensorManager::InterpretationRuleModbusSpecificError
InterpretationRuleModbusSpecificError is applied to specific errors from libmodbus.
Definition GatewaySensorManager.idl:479
peripheral::GatewaySensorManager::InterpretationRuleModbusSpecificError::errors
vector< ModbusCfg::SpecificModbusErrors > errors
list of specific libmodbus error codes
Definition GatewaySensorManager.idl:480
peripheral::GatewaySensorManager::InterpretationRuleModbusSystemError
InterpretationRuleModbusSystemError is applied to standard system errors returned from libmodbus.
Definition GatewaySensorManager.idl:473
peripheral::GatewaySensorManager::InterpretationRuleModbusSystemError::errnos
vector< int > errnos
list of system error codes
Definition GatewaySensorManager.idl:474
peripheral::GatewaySensorManager::InterpretationRuleRAW
InterpretationRuleRAW is applied after swap, but before masking (because it has it's own mask)
Definition GatewaySensorManager.idl:485
peripheral::GatewaySensorManager::InterpretationRuleRAW::value
string value
compare to value (unsigned 64-bit value as string, decimal or hexadecimal)
Definition GatewaySensorManager.idl:486
peripheral::GatewaySensorManager::InterpretationRuleRAW::mask
string mask
mask before compare (unsigned 64-bit value as string, decimal or hexadecimal; "" or "0" = not masked,...
Definition GatewaySensorManager.idl:487
peripheral::GatewaySensorManager::InterpretationRuleRangeRAW
InterpretationRuleRangeRAW is applied after swap, but before masking (because it has it's own mask)
Definition GatewaySensorManager.idl:492
peripheral::GatewaySensorManager::InterpretationRuleRangeRAW::max
string max
maximum accepted value (unsigned 64-bit value as string, decimal or hexadecimal)
Definition GatewaySensorManager.idl:494
peripheral::GatewaySensorManager::InterpretationRuleRangeRAW::mask
string mask
mask before compare (unsigned 64-bit value as string, decimal or hexadecimal; "" or "0" = not masked,...
Definition GatewaySensorManager.idl:495
peripheral::GatewaySensorManager::InterpretationRuleRangeRAW::min
string min
minimum accepted value (unsigned 64-bit value as string, decimal or hexadecimal)
Definition GatewaySensorManager.idl:493
peripheral::GatewaySensorManager::InterpretationRule
InterpretationRule defines a rule that is applied to a reading, resulting in an Interpretation.
Definition GatewaySensorManager.idl:454
peripheral::GatewaySensorManager::InterpretationRule::accessType
AccessType accessType
use rule for read and/or write access
Definition GatewaySensorManager.idl:457
peripheral::GatewaySensorManager::InterpretationRule::interpretation
Interpretation interpretation
how to interpret the applied rule
Definition GatewaySensorManager.idl:455
peripheral::GatewaySensorManager::InterpretationRule::ignoreTimeout
int ignoreTimeout
if > 0, ignoring stops after this timeout (seconds), and state changes to unavailable
Definition GatewaySensorManager.idl:456
peripheral::GatewaySensorManager::ModbusSensor
Definition GatewaySensorManager.idl:663
peripheral::GatewaySensorManager::ModbusSensor::regAddr
int regAddr
Modbus server register address.
Definition GatewaySensorManager.idl:665
peripheral::GatewaySensorManager::ModbusValueEncoding16
Definition GatewaySensorManager.idl:565
peripheral::GatewaySensorManager::ModbusValueEncoding32
Definition GatewaySensorManager.idl:572
peripheral::GatewaySensorManager::ModbusValueEncoding32::endianness
ModbusEndianness endianness
Modbus 16-bit-words should be transmitted in big endian order.
Definition GatewaySensorManager.idl:577
peripheral::GatewaySensorManager::ModbusValueEncoding48
Definition GatewaySensorManager.idl:580
peripheral::GatewaySensorManager::ModbusValueEncoding64
Definition GatewaySensorManager.idl:582
peripheral::GatewaySensorManager::ModbusValueEncoding8
Definition GatewaySensorManager.idl:534
peripheral::GatewaySensorManager::ModbusValueEncoding8::width
int width
Word width in bits used in numerical interpretation.
Definition GatewaySensorManager.idl:562
peripheral::GatewaySensorManager::ModbusValueEncoding8::start
int start
The least significant bit of the read word used in numerical interpretation.
Definition GatewaySensorManager.idl:553
peripheral::GatewaySensorManager::ModbusValueEncoding8::byteSwap
boolean byteSwap
16-bit modbus words should be transferred in big-endian byte order.
Definition GatewaySensorManager.idl:541
peripheral::GatewaySensorManager::ModbusValueEncoding8::mask
string mask
64-bit unsigned raw mask value as decimal or hexadecimal string, applied before interpreting ("" or "...
Definition GatewaySensorManager.idl:546
peripheral::GatewaySensorManager::ModbusValueEncodingBit
Definition GatewaySensorManager.idl:532
peripheral::GatewaySensorManager::NumericSensorClass
Sensor class that stores numeric sensor properties.
Definition GatewaySensorManager.idl:232
peripheral::GatewaySensorManager::NumericSensorClass::defaultThresholds
sensors::NumericSensor Thresholds defaultThresholds
threshold values may be used initially and as default threshold values, depending on the value of the...
Definition GatewaySensorManager.idl:242
peripheral::GatewaySensorManager::NumericSensorClass::metadata
sensors::NumericSensor MetaData metadata
numeric sensor type, ranges, etc.
Definition GatewaySensorManager.idl:236
peripheral::GatewaySensorManager::NumericSensorClass::preferCommonThresholds
boolean preferCommonThresholds
if true, use common default thresholds if available, otherwise use the value of the defaultThresholds...
Definition GatewaySensorManager.idl:244
peripheral::GatewaySensorManager::NumericValueEncoding
Definition GatewaySensorManager.idl:527
peripheral::GatewaySensorManager::NumericValueEncoding::scalingFactor
float scalingFactor
multiply with when interpreting as numeric value
Definition GatewaySensorManager.idl:528
peripheral::GatewaySensorManager::NumericValueEncoding::offset
float offset
add value after applying scalingFactor
Definition GatewaySensorManager.idl:529
peripheral::GatewaySensorManager::RemoteDevice
Specification of a remote device that provides access to sensors.
Definition GatewaySensorManager.idl:273
peripheral::GatewaySensorManager::RemoteDevice::timeoutMs
int timeoutMs
communication access timeout, 0 = default
Definition GatewaySensorManager.idl:277
peripheral::GatewaySensorManager::RemoteDevice::name
string name
human readable remote device name
Definition GatewaySensorManager.idl:276
peripheral::GatewaySensorManager::RemoteDevice::deviceId
string deviceId
remote device id
Definition GatewaySensorManager.idl:274
peripheral::GatewaySensorManager::RemoteDevice::retry
int retry
communication retry count, 0 = default
Definition GatewaySensorManager.idl:278
peripheral::GatewaySensorManager::RemoteDevice::disabled
boolean disabled
prevents usage of all sensor specifications which reference this device
Definition GatewaySensorManager.idl:275
peripheral::GatewaySensorManager::RemoteModbusDevice
Definition GatewaySensorManager.idl:289
peripheral::GatewaySensorManager::RemoteModbusDevice::unsupportedFunctionCodes
vector< byte > unsupportedFunctionCodes
list of unsupported modbus function codes (FC)
Definition GatewaySensorManager.idl:304
peripheral::GatewaySensorManager::RemoteModbusDevice::detectionIdentifiers
map< int, string > detectionIdentifiers
list of expected device identifiers
Definition GatewaySensorManager.idl:290
peripheral::GatewaySensorManager::RemoteModbusDevice::unitId
int unitId
modbus server address
Definition GatewaySensorManager.idl:291
peripheral::GatewaySensorManager::RemoteModbusRTUDevice
Definition GatewaySensorManager.idl:307
peripheral::GatewaySensorManager::RemoteModbusRTUDevice::busSettings
ModbusCfg::SerialSettings busSettings
interface settings
Definition GatewaySensorManager.idl:326
peripheral::GatewaySensorManager::RemoteModbusRTUDevice::busInterface
string busInterface
rs485 interface used for modbus communication
Definition GatewaySensorManager.idl:325
peripheral::GatewaySensorManager::RemoteModbusRTUDevice::interframeDelayDeciChars
int interframeDelayDeciChars
(== 0) -> default, (< 0) -> no delay, (> 0) -> e.g. 35 means 3.5 chars
Definition GatewaySensorManager.idl:327
peripheral::GatewaySensorManager::RemoteModbusTCPDevice
Definition GatewaySensorManager.idl:330
peripheral::GatewaySensorManager::RemoteModbusTCPDevice::tcpPort
int tcpPort
modbus tcp port
Definition GatewaySensorManager.idl:332
peripheral::GatewaySensorManager::RemoteModbusTCPDevice::ipAddress
string ipAddress
modbus device ip address
Definition GatewaySensorManager.idl:331
peripheral::GatewaySensorManager::RemoteSnmpDevice
Definition GatewaySensorManager.idl:335
peripheral::GatewaySensorManager::RemoteSnmpDevice::host
string host
host
Definition GatewaySensorManager.idl:336
peripheral::GatewaySensorManager::RemoteSnmpV1V2Device
Definition GatewaySensorManager.idl:339
peripheral::GatewaySensorManager::RemoteSnmpV1V2Device::community
string community
community string for v1/v2c
Definition GatewaySensorManager.idl:340
peripheral::GatewaySensorManager::RemoteSnmpV3Device
Definition GatewaySensorManager.idl:367
peripheral::GatewaySensorManager::RemoteSnmpV3Device::user
string user
security user name
Definition GatewaySensorManager.idl:368
peripheral::GatewaySensorManager::RemoteSnmpV3Device::privacyProtocol
SnmpPrivProtocol privacyProtocol
privacy protocol (DES|AES|AES-192|AES-256)
Definition GatewaySensorManager.idl:372
peripheral::GatewaySensorManager::RemoteSnmpV3Device::privacyPassphrase
string privacyPassphrase
privacy protocol pass phrase
Definition GatewaySensorManager.idl:373
peripheral::GatewaySensorManager::RemoteSnmpV3Device::level
SnmpSecurityLevel level
security level (noAuthNoPriv|authNoPriv|authPriv)
Definition GatewaySensorManager.idl:369
peripheral::GatewaySensorManager::RemoteSnmpV3Device::authProtocol
SnmpAuthProtocol authProtocol
authentication protocol (MD5|SHA|SHA-224|SHA-256|SHA-384|SHA-512)
Definition GatewaySensorManager.idl:370
peripheral::GatewaySensorManager::RemoteSnmpV3Device::authPassphrase
string authPassphrase
authentication protocol passphrase
Definition GatewaySensorManager.idl:371
peripheral::GatewaySensorManager::SensorClass
Specification of sensor class that stores sensor properties.
Definition GatewaySensorManager.idl:225
peripheral::GatewaySensorManager::SensorClass::classId
string classId
sensor class id
Definition GatewaySensorManager.idl:226
peripheral::GatewaySensorManager::SensorFeedback
Definition GatewaySensorManager.idl:753
peripheral::GatewaySensorManager::SensorFeedback::sensorId
string sensorId
the same id as in Sensor
Definition GatewaySensorManager.idl:756
peripheral::GatewaySensorManager::SensorFeedback::deviceId
string deviceId
the same id as in RemoteDevice
Definition GatewaySensorManager.idl:755
peripheral::GatewaySensorManager::SensorFeedback::packageId
string packageId
the configuration package id
Definition GatewaySensorManager.idl:754
peripheral::GatewaySensorManager::Sensor
Specification of a Sensor.
Definition GatewaySensorManager.idl:590
peripheral::GatewaySensorManager::Sensor::disabled
boolean disabled
Set disabled = true prevents any usage of the specification.
Definition GatewaySensorManager.idl:599
peripheral::GatewaySensorManager::Sensor::classId
string classId
sensor class id
Definition GatewaySensorManager.idl:618
peripheral::GatewaySensorManager::Sensor::deviceId
string deviceId
remote device id
Definition GatewaySensorManager.idl:607
peripheral::GatewaySensorManager::Sensor::defaultDescription
string defaultDescription
sensor description
Definition GatewaySensorManager.idl:639
peripheral::GatewaySensorManager::Sensor::defaultName
string defaultName
sensor name
Definition GatewaySensorManager.idl:632
peripheral::GatewaySensorManager::Sensor::encodingId
string encodingId
sensor encoding id
Definition GatewaySensorManager.idl:625
peripheral::GatewaySensorManager::Sensor::defaultLocationZ
string defaultLocationZ
sensor location Z coordinate
Definition GatewaySensorManager.idl:660
peripheral::GatewaySensorManager::Sensor::sensorId
string sensorId
Unique sensor id, is automatically generated if not set.
Definition GatewaySensorManager.idl:594
peripheral::GatewaySensorManager::Sensor::defaultLocationY
string defaultLocationY
sensor location Y coordinate
Definition GatewaySensorManager.idl:653
peripheral::GatewaySensorManager::Sensor::defaultLocationX
string defaultLocationX
sensor location X coordinate
Definition GatewaySensorManager.idl:646
peripheral::GatewaySensorManager::SnmpSensor
Definition GatewaySensorManager.idl:668
peripheral::GatewaySensorManager::SnmpSensor::oid
string oid
sensor oid
Definition GatewaySensorManager.idl:669
peripheral::GatewaySensorManager::StateSensorClass
Sensor class that stores state sensor properties.
Definition GatewaySensorManager.idl:250
peripheral::GatewaySensorManager::StateSensorClass::type
sensors::Sensor TypeSpec type
state sensor type
Definition GatewaySensorManager.idl:251
peripheral::GatewaySensorManager::SwitchSensorClass
Sensor class that switch properties.
Definition GatewaySensorManager.idl:257
peripheral::GatewaySensorManager::ValueEncoding
Specification of value encoding.
Definition GatewaySensorManager.idl:519
peripheral::GatewaySensorManager::ValueEncoding::minAccessInterval
int minAccessInterval
minimum time interval between two read accesses in seconds
Definition GatewaySensorManager.idl:524
peripheral::GatewaySensorManager::ValueEncoding::invertState
boolean invertState
invert when interpreting as state
Definition GatewaySensorManager.idl:522
peripheral::GatewaySensorManager::ValueEncoding::type
EncodingType type
value coding type
Definition GatewaySensorManager.idl:521
peripheral::GatewaySensorManager::ValueEncoding::interpretationRules
vector< InterpretationRule > interpretationRules
error/value interpretation rules
Definition GatewaySensorManager.idl:523
peripheral::GatewaySensorManager::ValueEncoding::encodingId
string encodingId
encoding type id
Definition GatewaySensorManager.idl:520
peripheral::ModbusCfg::SerialSettings
Definition ModbusCfg.idl:14
sensors::NumericSensor::MetaData
Numeric sensor metadata.
Definition NumericSensor.idl:40
sensors::NumericSensor::Thresholds
Numeric sensor thresholds.
Definition NumericSensor.idl:111
sensors::Sensor::TypeSpec
Complete sensor type specification.
Definition Sensor.idl:177