MultilevelSensor#

Modules#

_sensor_type

_sensor_read_result

_sensor_interface

_sensor_administration

Enumerations#

enum
SENSOR_NAME_AIR_TEMPERATURE = 0x00
SENSOR_NAME_GENERAL_PURPOSE
SENSOR_NAME_ILLUMINANCE
SENSOR_NAME_POWER
SENSOR_NAME_HUMIDITY
SENSOR_NAME_VELOCITY
SENSOR_NAME_DIRECTION
SENSOR_NAME_ATMOSPHERIC_PRESSURE
SENSOR_NAME_BAROMETRIC_PRESSURE
SENSOR_NAME_SOLAR_RADIATION
SENSOR_NAME_DEW_POINT
SENSOR_NAME_RAIN_RATE
SENSOR_NAME_TIDE_LEVEL
SENSOR_NAME_WEIGHT
SENSOR_NAME_VOLTAGE
SENSOR_NAME_CURRENT
SENSOR_NAME_CARBON_DIOXIDE_CO2_LEVEL
SENSOR_NAME_AIR_FLOW
SENSOR_NAME_TANK_CAPACITY
SENSOR_NAME_DISTANCE
SENSOR_NAME_ANGLE_POSITION
SENSOR_NAME_ROTATION
SENSOR_NAME_WATER_TEMPERATURE
SENSOR_NAME_SOIL_TEMPERATURE
SENSOR_NAME_SEISMIC_INTENSITY
SENSOR_NAME_SEISMIC_MAGNITUDE
SENSOR_NAME_ULTRAVIOLET
SENSOR_NAME_ELECTRICAL_RESISTIVITY
SENSOR_NAME_ELECTRICAL_CONDUCTIVITY
SENSOR_NAME_LOUDNESS
SENSOR_NAME_MOISTURE
SENSOR_NAME_FREQUENCY
SENSOR_NAME_TIME
SENSOR_NAME_TARGET_TEMPERATURE
SENSOR_NAME_PARTICULATE_MATTER_2_5
SENSOR_NAME_FORMALDEHYDE_CH2O_LEVEL
SENSOR_NAME_RADON_CONCENTRATION
SENSOR_NAME_METHANE_CH4_DENSITY
SENSOR_NAME_VOLATILE_ORGANIC_COMPOUND_LEVEL
SENSOR_NAME_CARBON_MONOXIDE_CO_LEVEL
SENSOR_NAME_SOIL_HUMIDITY
SENSOR_NAME_SOIL_REACTIVITY
SENSOR_NAME_SOIL_SALINITY
SENSOR_NAME_HEART_RATE
SENSOR_NAME_BLOOD_PRESSURE
SENSOR_NAME_MUSCLE_MASS
SENSOR_NAME_FAT_MASS
SENSOR_NAME_BONE_MASS
SENSOR_NAME_TOTAL_BODY_WATER_TBW
SENSOR_NAME_BASIS_METABOLIC_RATE_BMR
SENSOR_NAME_BODY_MASS_INDEX_BMI
SENSOR_NAME_ACCELERATION_X
SENSOR_NAME_ACCELERATION_Y
SENSOR_NAME_ACCELERATION_Z
SENSOR_NAME_SMOKE_DENSITY
SENSOR_NAME_WATER_FLOW
SENSOR_NAME_WATER_PRESSURE
SENSOR_NAME_RF_SIGNAL_STRENGTH
SENSOR_NAME_PARTICULATE_MATTER_10
SENSOR_NAME_RESPIRATORY_RATE
SENSOR_NAME_RELATIVE_MODULATION_LEVEL
SENSOR_NAME_BOILER_WATER_TEMPERATURE
SENSOR_NAME_DOMESTIC_HOT_WATER_DHW_TEMPERATURE
SENSOR_NAME_OUTSIDE_TEMPERATURE
SENSOR_NAME_EXHAUST_TEMPERATURE
SENSOR_NAME_WATER_CHLORINE_LEVEL
SENSOR_NAME_WATER_ACIDITY
SENSOR_NAME_WATER_OXIDATION_REDUCTION_POTENTIAL
SENSOR_NAME_HEART_RATE_LF_HF_RATIO
SENSOR_NAME_MOTION_DIRECTION
SENSOR_NAME_APPLIED_FORCE_ON_THE_SENSOR
SENSOR_NAME_RETURN_AIR_TEMPERATURE
SENSOR_NAME_SUPPLY_AIR_TEMPERATURE
SENSOR_NAME_CONDENSER_COIL_TEMPERATURE
SENSOR_NAME_EVAPORATOR_COIL_TEMPERATURE
SENSOR_NAME_LIQUID_LINE_TEMPERATURE
SENSOR_NAME_DISCHARGE_LINE_TEMPERATURE
SENSOR_NAME_SUCTION_INPUT_PUMP_COMPRESSOR_PRESSURE
SENSOR_NAME_DISCHARGE_OUTPUT_PUMP_COMPRESSOR_PRESSURE
SENSOR_NAME_DEFROST_TEMPERATURE_DEFROST
SENSOR_NAME_OZONE_O3
SENSOR_NAME_SULFUR_DIOXIDE_SO2
SENSOR_NAME_NITROGEN_DIOXIDE_NO2
SENSOR_NAME_AMMONIA_NH3
SENSOR_NAME_LEAD_PB
SENSOR_NAME_PARTICULATE_MATTER_1
SENSOR_NAME_PERSON_COUNTER_ENTERING
SENSOR_NAME_PERSON_COUNTER_EXITING
SENSOR_NAME_MAX_COUNT
}

Defined possible sensor types.

enum
SENSOR_READ_RESULT_SIZE_1 = 1
SENSOR_READ_RESULT_SIZE_2 = 2
SENSOR_READ_RESULT_SIZE_4 = 4
SENSOR_READ_RESULT_SIZE_END = 5
}

Defined possible sensor read size.

enum
SENSOR_READ_RESULT_PRECISION_1 = 1
SENSOR_READ_RESULT_PRECISION_2
SENSOR_READ_RESULT_PRECISION_3
SENSOR_READ_RESULT_PRECISION_END
}

Defined possible sensor read precision.

enum
SENSOR_INTERFACE_RETURN_VALUE_OK
SENSOR_INTERFACE_RETURN_VALUE_ALREADY_SET
SENSOR_INTERFACE_RETURN_VALUE_INVALID_SCALE_VALUE
SENSOR_INTERFACE_RETURN_VALUE_ERROR
SENSOR_INTERFACE_RETURN_VALUE_END
}

Defined sensor interface return values.

enum
CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK
CC_MULTILEVEL_SENSOR_RETURN_VALUE_ERROR
CC_MULTILEVEL_SENSOR_RETURN_VALUE_NOT_FOUND
CC_MULTILEVEL_SENSOR_RETURN_VALUE_ALREADY_REGISTRATED
CC_MULTILEVEL_SENSOR_RETURN_VALUE_REGISTRATION_LIMIT_REACHED
CC_MULTILEVEL_SENSOR_RETURN_VALUE_END
}

Defined Multilevel Sensor return values.

Typedefs#

typedef enum sensor_name

Defined possible sensor types.

typedef struct _sensor_type

Structure that holds the attributes of a sensor type.

typedef struct _sensor_interface

Structure that holds a read result from the read interface.

typedef struct _sensor_administration

Structure that administrate all of the registered sensors.

Functions#

void

This function will report the registered sensor's measured datas to the Lifeline group.

void

Calls the init function for all of the registered sensor interfaces.

uint8_t
cc_multilevel_sensor_check_scale(const sensor_interface_t *i_interface, uint8_t i_scale)

Checks if the wanted scale is a legal one for an interface.

cc_multilevel_sensor_check_sensor_type_registered(uint8_t endpoint, uint8_t sensor_type_value)

Checks if the wanted sensor type has a registered interface or not.

cc_multilevel_sensor_registration(sensor_interface_t *i_new_sensor)

Registers an interface to a specific sensor type.

cc_multilevel_sensor_get_supported_sensors_by_endpoint(uint8_t endpoint, uint8_t *o_supported_sensor_buffer)

Fills an input buffer with flags where each flag represents a supported sensor for a specific endpoint.

cc_multilevel_sensor_get_supported_sensors(uint8_t *o_supported_sensor_buffer)

Fills an input buffer with flags where each flag represents a supported sensor.

cc_multilevel_sensor_get_supported_scale_by_endpoint(uint8_t endpoint, uint8_t sensor_type_value, uint8_t *o_supported_scale)

Fills an input buffer with flags where each flag represents a supported scale for a specific endpoint.

cc_multilevel_sensor_get_supported_scale(uint8_t sensor_type_value, uint8_t *o_supported_scale)

Fills an input buffer with flags where each flag represents a supported scale.

cc_multilevel_sensor_get_interface(uint8_t endpoint, uint8_t sensor_type_value, sensor_interface_t **o_interface)

Getter function for a sensor type's interface.

cc_multilevel_sensor_get_default_sensor_type(uint8_t *o_default_sensor_type)

Gets the default sensor type value.

cc_multilevel_sensor_init_iterator(sensor_interface_iterator_t **i_iterator)

Initialize an iterator struct for the registered sensor interfaces.

void
cc_multilevel_sensor_next_iterator(sensor_interface_iterator_t **i_iterator)

Moves the iterator reference forward to the next registered interface, if the current is the last one then NULL If there is any registered interface the iterator will be NULL.

uint8_t

Returns the number of registered sensor interfaces.

void

Removes all of the registered sensor interfaces from the administration.

cc_multilevel_sensor_get_sensor_type(sensor_name_t i_sensor_name)

Returns a sensor_type_t struct from the sensor_types config table.

cc_multilevel_sensor_init_interface(sensor_interface_t *i_instance, sensor_name_t i_name)

Initialize a sensor interface instance.

cc_multilevel_sensor_add_supported_scale_interface(sensor_interface_t *i_instance, uint8_t i_scale)

Adds a new scale to an existing interface.

Macros#

#define
MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_SEC (MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_MIN * 60)
#define
MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_MS (MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_SEC * 1000)
#define

Defined possible sensor scales.

#define

Absolute humidity.

#define

Acidity.

#define

Ampere.

#define

A-weighted decibels.

#define

Beats per minute.

#define

Becquerel per cubic meter.

#define

BMI Index.

#define

Body wave.

#define

Breaths per minute.

#define

Btu/h.

#define

Celsius.

#define

Centimeter.

#define

Cubic feet per minute.

#define

Cubic meter.

#define

Cubic meter per hour.

#define
#define

Decibel.

#define

Degrees.

#define

Degrees relative to north pole.

#define

Diastolic.

#define

Dimensionless value.

#define

European Macroseismic.

#define

Fahrenheit.

#define
#define

Gallons.

#define

Hertz.

#define

Impedance.

#define

Inches of Mercury.

#define

Inches per hour.

#define

Joule.

#define

Kilogram.

#define

Kilohertz.

#define

Kilopascal.

#define

Liedu.

#define

Liter.

#define

Liter per hour.

#define

Local.

#define
#define

Mercalli.

#define

Meter.

#define

Meter per second.

#define

Meter per square second.

#define

Microgram per cubic meter.

#define

Micro gram per cubic meter.

#define

Miles per hour.

#define

Milliampere.

#define

Milligram per liter.

#define

Millimeter per hour.

#define

Millivolt.

#define

Mole per cubic meter.

#define

Moment.

#define

Newton.

#define

Ohm meter.

#define

Parts per million.

#define

Percentage value.

#define

Picocuries per liter.

#define

Pounds.

#define

Pound per square inch.

#define

Revolutions per minute.

#define
#define

Second.

#define

Shindo.

#define

Siemens per meter.

#define

Surface wave.

#define

Systolic.

#define

Unitless.

#define

UV index.

#define
#define

Volume water content.

#define

Water activity.

#define
#define

Watt per square meter.

#define
SENSOR_SCALE_DIMENSIONLESS SENSOR_SCALE_DIMENSIONLESS_VALUE

Sensor scale aliases for backward compatibility.

#define
SENSOR_SCALE_METER_SQUARE_SECOND SENSOR_SCALE_METER_PER_SQUARE_SECOND
#define
SENSOR_SCALE_PERCENTAGE SENSOR_SCALE_PERCENTAGE_VALUE
#define
SENSOR_TYPE_AIR_TEMPERATURE .value = 0x01, .byte_offset = 1, .bit_mask = 0, .max_scale_value = 0x01

Macros for sensor type definitions - allows inlining at call sites for better optimization These expand to compound literals that can be used directly in assignments.

#define
SENSOR_TYPE_GENERAL_PURPOSE .value = 0x02, .byte_offset = 1, .bit_mask = 1, .max_scale_value = 0x01
#define
SENSOR_TYPE_ILLUMINANCE .value = 0x03, .byte_offset = 1, .bit_mask = 2, .max_scale_value = 0x01
#define
SENSOR_TYPE_POWER .value = 0x04, .byte_offset = 1, .bit_mask = 3, .max_scale_value = 0x01
#define
SENSOR_TYPE_HUMIDITY .value = 0x05, .byte_offset = 1, .bit_mask = 4, .max_scale_value = 0x01
#define
SENSOR_TYPE_VELOCITY .value = 0x06, .byte_offset = 1, .bit_mask = 5, .max_scale_value = 0x01
#define
SENSOR_TYPE_DIRECTION .value = 0x07, .byte_offset = 1, .bit_mask = 6, .max_scale_value = 0x00
#define
SENSOR_TYPE_ATMOSPHERIC_PRESSURE .value = 0x08, .byte_offset = 1, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_BAROMETRIC_PRESSURE .value = 0x09, .byte_offset = 2, .bit_mask = 0, .max_scale_value = 0x01
#define
SENSOR_TYPE_SOLAR_RADIATION .value = 0x0A, .byte_offset = 2, .bit_mask = 1, .max_scale_value = 0x00
#define
SENSOR_TYPE_DEW_POINT .value = 0x0B, .byte_offset = 2, .bit_mask = 2, .max_scale_value = 0x01
#define
SENSOR_TYPE_RAIN_RATE .value = 0x0C, .byte_offset = 2, .bit_mask = 3, .max_scale_value = 0x01
#define
SENSOR_TYPE_TIDE_LEVEL .value = 0x0D, .byte_offset = 2, .bit_mask = 4, .max_scale_value = 0x01
#define
SENSOR_TYPE_WEIGHT .value = 0x0E, .byte_offset = 2, .bit_mask = 5, .max_scale_value = 0x01
#define
SENSOR_TYPE_VOLTAGE .value = 0x0F, .byte_offset = 2, .bit_mask = 6, .max_scale_value = 0x01
#define
SENSOR_TYPE_CURRENT .value = 0x10, .byte_offset = 2, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_CARBON_DIOXIDE_CO2_LEVEL .value = 0x11, .byte_offset = 3, .bit_mask = 0, .max_scale_value = 0x00
#define
SENSOR_TYPE_AIR_FLOW .value = 0x12, .byte_offset = 3, .bit_mask = 1, .max_scale_value = 0x01
#define
SENSOR_TYPE_TANK_CAPACITY .value = 0x13, .byte_offset = 3, .bit_mask = 2, .max_scale_value = 0x02
#define
SENSOR_TYPE_DISTANCE .value = 0x14, .byte_offset = 3, .bit_mask = 3, .max_scale_value = 0x02
#define
SENSOR_TYPE_ANGLE_POSITION .value = 0x15, .byte_offset = 3, .bit_mask = 4, .max_scale_value = 0x02
#define
SENSOR_TYPE_ROTATION .value = 0x16, .byte_offset = 3, .bit_mask = 5, .max_scale_value = 0x01
#define
SENSOR_TYPE_WATER_TEMPERATURE .value = 0x17, .byte_offset = 3, .bit_mask = 6, .max_scale_value = 0x01
#define
SENSOR_TYPE_SOIL_TEMPERATURE .value = 0x18, .byte_offset = 3, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_SEISMIC_INTENSITY .value = 0x19, .byte_offset = 4, .bit_mask = 0, .max_scale_value = 0x03
#define
SENSOR_TYPE_SEISMIC_MAGNITUDE .value = 0x1A, .byte_offset = 4, .bit_mask = 1, .max_scale_value = 0x03
#define
SENSOR_TYPE_ULTRAVIOLET .value = 0x1B, .byte_offset = 4, .bit_mask = 2, .max_scale_value = 0x00
#define
SENSOR_TYPE_ELECTRICAL_RESISTIVITY .value = 0x1C, .byte_offset = 4, .bit_mask = 3, .max_scale_value = 0x00
#define
SENSOR_TYPE_ELECTRICAL_CONDUCTIVITY .value = 0x1D, .byte_offset = 4, .bit_mask = 4, .max_scale_value = 0x00
#define
SENSOR_TYPE_LOUDNESS .value = 0x1E, .byte_offset = 4, .bit_mask = 5, .max_scale_value = 0x01
#define
SENSOR_TYPE_MOISTURE .value = 0x1F, .byte_offset = 4, .bit_mask = 6, .max_scale_value = 0x03
#define
SENSOR_TYPE_FREQUENCY .value = 0x20, .byte_offset = 4, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_TIME .value = 0x21, .byte_offset = 5, .bit_mask = 0, .max_scale_value = 0x00
#define
SENSOR_TYPE_TARGET_TEMPERATURE .value = 0x22, .byte_offset = 5, .bit_mask = 1, .max_scale_value = 0x01
#define
SENSOR_TYPE_PARTICULATE_MATTER_2_5 .value = 0x23, .byte_offset = 5, .bit_mask = 2, .max_scale_value = 0x01
#define
SENSOR_TYPE_FORMALDEHYDE_CH2O_LEVEL .value = 0x24, .byte_offset = 5, .bit_mask = 3, .max_scale_value = 0x00
#define
SENSOR_TYPE_RADON_CONCENTRATION .value = 0x25, .byte_offset = 5, .bit_mask = 4, .max_scale_value = 0x01
#define
SENSOR_TYPE_METHANE_CH4_DENSITY .value = 0x26, .byte_offset = 5, .bit_mask = 5, .max_scale_value = 0x00
#define
SENSOR_TYPE_VOLATILE_ORGANIC_COMPOUND_LEVEL .value = 0x27, .byte_offset = 5, .bit_mask = 6, .max_scale_value = 0x01
#define
SENSOR_TYPE_CARBON_MONOXIDE_CO_LEVEL .value = 0x28, .byte_offset = 5, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_SOIL_HUMIDITY .value = 0x29, .byte_offset = 6, .bit_mask = 0, .max_scale_value = 0x00
#define
SENSOR_TYPE_SOIL_REACTIVITY .value = 0x2A, .byte_offset = 6, .bit_mask = 1, .max_scale_value = 0x00
#define
SENSOR_TYPE_SOIL_SALINITY .value = 0x2B, .byte_offset = 6, .bit_mask = 2, .max_scale_value = 0x00
#define
SENSOR_TYPE_HEART_RATE .value = 0x2C, .byte_offset = 6, .bit_mask = 3, .max_scale_value = 0x00
#define
SENSOR_TYPE_BLOOD_PRESSURE .value = 0x2D, .byte_offset = 6, .bit_mask = 4, .max_scale_value = 0x01
#define
SENSOR_TYPE_MUSCLE_MASS .value = 0x2E, .byte_offset = 6, .bit_mask = 5, .max_scale_value = 0x00
#define
SENSOR_TYPE_FAT_MASS .value = 0x2F, .byte_offset = 6, .bit_mask = 6, .max_scale_value = 0x00
#define
SENSOR_TYPE_BONE_MASS .value = 0x30, .byte_offset = 6, .bit_mask = 7, .max_scale_value = 0x00
#define
SENSOR_TYPE_TOTAL_BODY_WATER_TBW .value = 0x31, .byte_offset = 7, .bit_mask = 0, .max_scale_value = 0x00
#define
SENSOR_TYPE_BASIS_METABOLIC_RATE_BMR .value = 0x32, .byte_offset = 7, .bit_mask = 1, .max_scale_value = 0x00
#define
SENSOR_TYPE_BODY_MASS_INDEX_BMI .value = 0x33, .byte_offset = 7, .bit_mask = 2, .max_scale_value = 0x00
#define
SENSOR_TYPE_ACCELERATION_X .value = 0x34, .byte_offset = 7, .bit_mask = 3, .max_scale_value = 0x00
#define
SENSOR_TYPE_ACCELERATION_Y .value = 0x35, .byte_offset = 7, .bit_mask = 4, .max_scale_value = 0x00
#define
SENSOR_TYPE_ACCELERATION_Z .value = 0x36, .byte_offset = 7, .bit_mask = 5, .max_scale_value = 0x00
#define
SENSOR_TYPE_SMOKE_DENSITY .value = 0x37, .byte_offset = 7, .bit_mask = 6, .max_scale_value = 0x00
#define
SENSOR_TYPE_WATER_FLOW .value = 0x38, .byte_offset = 7, .bit_mask = 7, .max_scale_value = 0x00
#define
SENSOR_TYPE_WATER_PRESSURE .value = 0x39, .byte_offset = 8, .bit_mask = 0, .max_scale_value = 0x00
#define
SENSOR_TYPE_RF_SIGNAL_STRENGTH .value = 0x3A, .byte_offset = 8, .bit_mask = 1, .max_scale_value = 0x01
#define
SENSOR_TYPE_PARTICULATE_MATTER_10 .value = 0x3B, .byte_offset = 8, .bit_mask = 2, .max_scale_value = 0x01
#define
SENSOR_TYPE_RESPIRATORY_RATE .value = 0x3C, .byte_offset = 8, .bit_mask = 3, .max_scale_value = 0x00
#define
SENSOR_TYPE_RELATIVE_MODULATION_LEVEL .value = 0x3D, .byte_offset = 8, .bit_mask = 4, .max_scale_value = 0x00
#define
SENSOR_TYPE_BOILER_WATER_TEMPERATURE .value = 0x3E, .byte_offset = 8, .bit_mask = 5, .max_scale_value = 0x01
#define
SENSOR_TYPE_DOMESTIC_HOT_WATER_DHW_TEMPERATURE .value = 0x3F, .byte_offset = 8, .bit_mask = 6, .max_scale_value = 0x01
#define
SENSOR_TYPE_OUTSIDE_TEMPERATURE .value = 0x40, .byte_offset = 8, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_EXHAUST_TEMPERATURE .value = 0x41, .byte_offset = 9, .bit_mask = 0, .max_scale_value = 0x01
#define
SENSOR_TYPE_WATER_CHLORINE_LEVEL .value = 0x42, .byte_offset = 9, .bit_mask = 1, .max_scale_value = 0x00
#define
SENSOR_TYPE_WATER_ACIDITY .value = 0x43, .byte_offset = 9, .bit_mask = 2, .max_scale_value = 0x00
#define
SENSOR_TYPE_WATER_OXIDATION_REDUCTION_POTENTIAL .value = 0x44, .byte_offset = 9, .bit_mask = 3, .max_scale_value = 0x00
#define
SENSOR_TYPE_HEART_RATE_LF_HF_RATIO .value = 0x45, .byte_offset = 9, .bit_mask = 4, .max_scale_value = 0x00
#define
SENSOR_TYPE_MOTION_DIRECTION .value = 0x46, .byte_offset = 9, .bit_mask = 5, .max_scale_value = 0x00
#define
SENSOR_TYPE_APPLIED_FORCE_ON_THE_SENSOR .value = 0x47, .byte_offset = 9, .bit_mask = 6, .max_scale_value = 0x00
#define
SENSOR_TYPE_RETURN_AIR_TEMPERATURE .value = 0x48, .byte_offset = 9, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_SUPPLY_AIR_TEMPERATURE .value = 0x49, .byte_offset = 10, .bit_mask = 0, .max_scale_value = 0x01
#define
SENSOR_TYPE_CONDENSER_COIL_TEMPERATURE .value = 0x4A, .byte_offset = 10, .bit_mask = 1, .max_scale_value = 0x01
#define
SENSOR_TYPE_EVAPORATOR_COIL_TEMPERATURE .value = 0x4B, .byte_offset = 10, .bit_mask = 2, .max_scale_value = 0x01
#define
SENSOR_TYPE_LIQUID_LINE_TEMPERATURE .value = 0x4C, .byte_offset = 10, .bit_mask = 3, .max_scale_value = 0x01
#define
SENSOR_TYPE_DISCHARGE_LINE_TEMPERATURE .value = 0x4D, .byte_offset = 10, .bit_mask = 4, .max_scale_value = 0x01
#define
SENSOR_TYPE_SUCTION_INPUT_PUMP_COMPRESSOR_PRESSURE .value = 0x4E, .byte_offset = 10, .bit_mask = 5, .max_scale_value = 0x01
#define
SENSOR_TYPE_DISCHARGE_OUTPUT_PUMP_COMPRESSOR_PRESSURE .value = 0x4F, .byte_offset = 10, .bit_mask = 6, .max_scale_value = 0x01
#define
SENSOR_TYPE_DEFROST_TEMPERATURE_DEFROST .value = 0x50, .byte_offset = 10, .bit_mask = 7, .max_scale_value = 0x01
#define
SENSOR_TYPE_OZONE_O3 .value = 0x51, .byte_offset = 11, .bit_mask = 0, .max_scale_value = 0x00
#define
SENSOR_TYPE_SULFUR_DIOXIDE_SO2 .value = 0x52, .byte_offset = 11, .bit_mask = 1, .max_scale_value = 0x00
#define
SENSOR_TYPE_NITROGEN_DIOXIDE_NO2 .value = 0x53, .byte_offset = 11, .bit_mask = 2, .max_scale_value = 0x00
#define
SENSOR_TYPE_AMMONIA_NH3 .value = 0x54, .byte_offset = 11, .bit_mask = 3, .max_scale_value = 0x00
#define
SENSOR_TYPE_LEAD_PB .value = 0x55, .byte_offset = 11, .bit_mask = 4, .max_scale_value = 0x00
#define
SENSOR_TYPE_PARTICULATE_MATTER_1 .value = 0x56, .byte_offset = 11, .bit_mask = 5, .max_scale_value = 0x00
#define
SENSOR_TYPE_PERSON_COUNTER_ENTERING .value = 0x57, .byte_offset = 11, .bit_mask = 6, .max_scale_value = 0x00
#define
SENSOR_TYPE_PERSON_COUNTER_EXITING .value = 0x58, .byte_offset = 11, .bit_mask = 7, .max_scale_value = 0x00
#define
SENSOR_TYPE_CASE (i_name, name)

Helper macro to generate a single case in the sensor type lookup Sensor types that are accessed by the application code are allocated statically.

#define
SENSOR_TYPE_FROM_NAME (sensor_name)

Macro to map sensor_name_t enum to corresponding sensor type.

#define

Structure that holds a read result from the read interface.

Enumeration Documentation#

sensor_name#

sensor_name

Defined possible sensor types.

Enumerator
SENSOR_NAME_AIR_TEMPERATURE

0x01 - Air temperature

SENSOR_NAME_GENERAL_PURPOSE

0x02 - General purpose

SENSOR_NAME_ILLUMINANCE

0x03 - Illuminance

SENSOR_NAME_POWER

0x04 - Power

SENSOR_NAME_HUMIDITY

0x05 - Humidity

SENSOR_NAME_VELOCITY

0x06 - Velocity

SENSOR_NAME_DIRECTION

0x07 - Direction

SENSOR_NAME_ATMOSPHERIC_PRESSURE

0x08 - Atmospheric pressure

SENSOR_NAME_BAROMETRIC_PRESSURE

0x09 - Barometric pressure

SENSOR_NAME_SOLAR_RADIATION

0x0A - Solar radiation

SENSOR_NAME_DEW_POINT

0x0B - Dew point

SENSOR_NAME_RAIN_RATE

0x0C - Rain rate

SENSOR_NAME_TIDE_LEVEL

0x0D - Tide level

SENSOR_NAME_WEIGHT

0x0E - Weight

SENSOR_NAME_VOLTAGE

0x0F - Voltage

SENSOR_NAME_CURRENT

0x10 - Current

SENSOR_NAME_CARBON_DIOXIDE_CO2_LEVEL

0x11 - Carbon dioxide (CO2-level)

SENSOR_NAME_AIR_FLOW

0x12 - Air flow

SENSOR_NAME_TANK_CAPACITY

0x13 - Tank capacity

SENSOR_NAME_DISTANCE

0x14 - Distance

SENSOR_NAME_ANGLE_POSITION

0x15 - Angle position

SENSOR_NAME_ROTATION

0x16 - Rotation

SENSOR_NAME_WATER_TEMPERATURE

0x17 - Water temperature

SENSOR_NAME_SOIL_TEMPERATURE

0x18 - Soil temperature

SENSOR_NAME_SEISMIC_INTENSITY

0x19 - Seismic Intensity

SENSOR_NAME_SEISMIC_MAGNITUDE

0x1A - Seismic magnitude

SENSOR_NAME_ULTRAVIOLET

0x1B - Ultraviolet

SENSOR_NAME_ELECTRICAL_RESISTIVITY

0x1C - Electrical resistivity

SENSOR_NAME_ELECTRICAL_CONDUCTIVITY

0x1D - Electrical conductivity

SENSOR_NAME_LOUDNESS

0x1E - Loudness

SENSOR_NAME_MOISTURE

0x1F - Moisture

SENSOR_NAME_FREQUENCY

0x20 - Frequency

SENSOR_NAME_TIME

0x21 - Time

SENSOR_NAME_TARGET_TEMPERATURE

0x22 - Target temperature

SENSOR_NAME_PARTICULATE_MATTER_2_5

0x23 - Particulate Matter 2.5

SENSOR_NAME_FORMALDEHYDE_CH2O_LEVEL

0x24 - Formaldehyde (CH2O-level)

SENSOR_NAME_RADON_CONCENTRATION

0x25 - Radon concentration

SENSOR_NAME_METHANE_CH4_DENSITY

0x26 - Methane (CH4) density

SENSOR_NAME_VOLATILE_ORGANIC_COMPOUND_LEVEL

0x27 - Volatile Organic Compound level

SENSOR_NAME_CARBON_MONOXIDE_CO_LEVEL

0x28 - Carbon monoxide (CO) level

SENSOR_NAME_SOIL_HUMIDITY

0x29 - Soil humidity

SENSOR_NAME_SOIL_REACTIVITY

0x2A - Soil reactivity

SENSOR_NAME_SOIL_SALINITY

0x2B - Soil salinity

SENSOR_NAME_HEART_RATE

0x2C - Heart rate

SENSOR_NAME_BLOOD_PRESSURE

0x2D - Blood pressure

SENSOR_NAME_MUSCLE_MASS

0x2E - Muscle mass

SENSOR_NAME_FAT_MASS

0x2F - Fat mass

SENSOR_NAME_BONE_MASS

0x30 - Bone mass

SENSOR_NAME_TOTAL_BODY_WATER_TBW

0x31 - Total body water (TBW)

SENSOR_NAME_BASIS_METABOLIC_RATE_BMR

0x32 - Basis metabolic rate (BMR)

SENSOR_NAME_BODY_MASS_INDEX_BMI

0x33 - Body Mass Index (BMI)

SENSOR_NAME_ACCELERATION_X

0x34 - Acceleration X-axis

SENSOR_NAME_ACCELERATION_Y

0x35 - Acceleration Y-axis

SENSOR_NAME_ACCELERATION_Z

0x36 - Acceleration Z-axis

SENSOR_NAME_SMOKE_DENSITY

0x37 - Smoke density

SENSOR_NAME_WATER_FLOW

0x38 - Water flow

SENSOR_NAME_WATER_PRESSURE

0x39 - Water pressure

SENSOR_NAME_RF_SIGNAL_STRENGTH

0x3A - RF signal strength

SENSOR_NAME_PARTICULATE_MATTER_10

0x3B - Particulate Matter 10

SENSOR_NAME_RESPIRATORY_RATE

0x3C - Respiratory rate

SENSOR_NAME_RELATIVE_MODULATION_LEVEL

0x3D - Relative Modulation level

SENSOR_NAME_BOILER_WATER_TEMPERATURE

0x3E - Boiler water temperature

SENSOR_NAME_DOMESTIC_HOT_WATER_DHW_TEMPERATURE

0x3F - Domestic Hot Water (DHW) temperature

SENSOR_NAME_OUTSIDE_TEMPERATURE

0x40 - Outside temperature

SENSOR_NAME_EXHAUST_TEMPERATURE

0x41 - Exhaust temperature

SENSOR_NAME_WATER_CHLORINE_LEVEL

0x42 - Water Chlorine level

SENSOR_NAME_WATER_ACIDITY

0x43 - Water acidity

SENSOR_NAME_WATER_OXIDATION_REDUCTION_POTENTIAL

0x44 - Water Oxidation reduction potential

SENSOR_NAME_HEART_RATE_LF_HF_RATIO

0x45 - Heart Rate LF/HF ratio

SENSOR_NAME_MOTION_DIRECTION

0x46 - Motion Direction

SENSOR_NAME_APPLIED_FORCE_ON_THE_SENSOR

0x47 - Applied force on the sensor

SENSOR_NAME_RETURN_AIR_TEMPERATURE

0x48 - Return Air temperature

SENSOR_NAME_SUPPLY_AIR_TEMPERATURE

0x49 - Supply Air temperature

SENSOR_NAME_CONDENSER_COIL_TEMPERATURE

0x4A - Condenser Coil temperature

SENSOR_NAME_EVAPORATOR_COIL_TEMPERATURE

0x4B - Evaporator Coil temperature

SENSOR_NAME_LIQUID_LINE_TEMPERATURE

0x4C - Liquid Line temperature

SENSOR_NAME_DISCHARGE_LINE_TEMPERATURE

0x4D - Discharge Line temperature

SENSOR_NAME_SUCTION_INPUT_PUMP_COMPRESSOR_PRESSURE

0x4E - Suction (input pump/compressor) Pressure

SENSOR_NAME_DISCHARGE_OUTPUT_PUMP_COMPRESSOR_PRESSURE

0x4F - Discharge (output pump/compressor) Pressure

SENSOR_NAME_DEFROST_TEMPERATURE_DEFROST

0x50 - Defrost temperature (sensor used to decide when to defrost)

SENSOR_NAME_OZONE_O3

0x51 - Ozone (O3)

SENSOR_NAME_SULFUR_DIOXIDE_SO2

0x52 - Sulfur dioxide (SO2)

SENSOR_NAME_NITROGEN_DIOXIDE_NO2

0x53 - Nitrogen dioxide (NO2)

SENSOR_NAME_AMMONIA_NH3

0x54 - Ammonia (NH3)

SENSOR_NAME_LEAD_PB

0x55 - Lead (Pb)

SENSOR_NAME_PARTICULATE_MATTER_1

0x56 - Particulate Matter 1

SENSOR_NAME_PERSON_COUNTER_ENTERING

0x57 - Person counter (entering)

SENSOR_NAME_PERSON_COUNTER_EXITING

0x58 - Person counter (exiting)

SENSOR_NAME_MAX_COUNT

sensor_read_result_size_t#

sensor_read_result_size_t

Defined possible sensor read size.

Enumerator
SENSOR_READ_RESULT_SIZE_1
SENSOR_READ_RESULT_SIZE_2
SENSOR_READ_RESULT_SIZE_4
SENSOR_READ_RESULT_SIZE_END

sensor_read_result_precision#

sensor_read_result_precision

Defined possible sensor read precision.

Enumerator
SENSOR_READ_RESULT_PRECISION_1
SENSOR_READ_RESULT_PRECISION_2
SENSOR_READ_RESULT_PRECISION_3
SENSOR_READ_RESULT_PRECISION_END

sensor_interface_return_value_t#

sensor_interface_return_value_t

Defined sensor interface return values.

Enumerator
SENSOR_INTERFACE_RETURN_VALUE_OK
SENSOR_INTERFACE_RETURN_VALUE_ALREADY_SET
SENSOR_INTERFACE_RETURN_VALUE_INVALID_SCALE_VALUE
SENSOR_INTERFACE_RETURN_VALUE_ERROR
SENSOR_INTERFACE_RETURN_VALUE_END

cc_multilevel_sensor_return_value#

cc_multilevel_sensor_return_value

Defined Multilevel Sensor return values.

Enumerator
CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK
CC_MULTILEVEL_SENSOR_RETURN_VALUE_ERROR
CC_MULTILEVEL_SENSOR_RETURN_VALUE_NOT_FOUND
CC_MULTILEVEL_SENSOR_RETURN_VALUE_ALREADY_REGISTRATED
CC_MULTILEVEL_SENSOR_RETURN_VALUE_REGISTRATION_LIMIT_REACHED
CC_MULTILEVEL_SENSOR_RETURN_VALUE_END

Typedef Documentation#

sensor_name_t#

typedef enum sensor_name sensor_name_t

Defined possible sensor types.


sensor_type_t#

typedef struct _sensor_type sensor_type_t

Structure that holds the attributes of a sensor type.


sensor_read_result_t#

typedef struct _sensor_read_result sensor_read_result_t

sensor_interface_t#

typedef struct _sensor_interface sensor_interface_t

Structure that holds a read result from the read interface.


sensor_interface_iterator_t#

typedef struct _sensor_interface sensor_interface_iterator_t

sensor_administration_t#

typedef struct _sensor_administration sensor_administration_t

Structure that administrate all of the registered sensors.


Function Documentation#

cc_multilevel_sensor_send_sensor_data#

void cc_multilevel_sensor_send_sensor_data (void )

This function will report the registered sensor's measured datas to the Lifeline group.

Parameters
TypeDirectionArgument NameDescription
voidN/A

cc_multilevel_sensor_config_register_instances#

void cc_multilevel_sensor_config_register_instances (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

cc_multilevel_sensor_init_all_sensor#

void cc_multilevel_sensor_init_all_sensor (void )

Calls the init function for all of the registered sensor interfaces.

Parameters
TypeDirectionArgument NameDescription
voidN/A

cc_multilevel_sensor_check_scale#

uint8_t cc_multilevel_sensor_check_scale (const sensor_interface_t * i_interface, uint8_t i_scale)

Checks if the wanted scale is a legal one for an interface.

Parameters
TypeDirectionArgument NameDescription
const sensor_interface_t *[in]i_interface

Pointer to an existing sensor interface

uint8_t[in]i_scale

Scale value to check

If the scale is not set the function will return with the first available scale. The function will iterate from bit 0 to 7 to look for the first scale which is supported. That will be the default scale. Returns

  • a usable scale value, if the input i_scale is valid that will be return, else the default one.


cc_multilevel_sensor_check_sensor_type_registered#

cc_multilevel_sensor_return_value cc_multilevel_sensor_check_sensor_type_registered (uint8_t endpoint, uint8_t sensor_type_value)

Checks if the wanted sensor type has a registered interface or not.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]endpoint

Sensor type value to check, this is the value in sensor_type_t struct's value

uint8_tN/Asensor_type_value

Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if interface is registered for a sensor, else CC_MULTILEVEL_SENSOR_RETURN_VALUE_NOT_FOUND.


cc_multilevel_sensor_registration#

cc_multilevel_sensor_return_value cc_multilevel_sensor_registration (sensor_interface_t * i_new_sensor)

Registers an interface to a specific sensor type.

Parameters
TypeDirectionArgument NameDescription
sensor_interface_t *[in]i_new_sensor

Pointer to a filled sensor interface struct

The number of registered sensor types is maximized with REGISTERED_SENSOR_NUMBER_LIMIT Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if interface is registered for a sensor.


cc_multilevel_sensor_get_supported_sensors_by_endpoint#

cc_multilevel_sensor_return_value cc_multilevel_sensor_get_supported_sensors_by_endpoint (uint8_t endpoint, uint8_t * o_supported_sensor_buffer)

Fills an input buffer with flags where each flag represents a supported sensor for a specific endpoint.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]endpoint

The endpoint to filter sensors by

uint8_t *[out]o_supported_sensor_buffer

Pointer to a buffer where the supported sensors' are represented as flags in a byte array. The position of each flag is calculated based on SDS13812. The buffer must be 11 byte long at least.

Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if success, else CC_MULTILEVEL_SENSOR_RETURN_VALUE_ERROR.


cc_multilevel_sensor_get_supported_sensors#

cc_multilevel_sensor_return_value cc_multilevel_sensor_get_supported_sensors (uint8_t * o_supported_sensor_buffer)

Fills an input buffer with flags where each flag represents a supported sensor.

Parameters
TypeDirectionArgument NameDescription
uint8_t *[out]o_supported_sensor_buffer

Pointer to a buffer where the supported sensors' are represented as flags in a byte array. The position of each flag is calculated based on SDS13812. The buffer must be 11 byte long at least.

This is a backward compatible wrapper that defaults to endpoint 0 (root endpoint). Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if success, else CC_MULTILEVEL_SENSOR_RETURN_VALUE_ERROR.


cc_multilevel_sensor_get_supported_scale_by_endpoint#

cc_multilevel_sensor_return_value cc_multilevel_sensor_get_supported_scale_by_endpoint (uint8_t endpoint, uint8_t sensor_type_value, uint8_t * o_supported_scale)

Fills an input buffer with flags where each flag represents a supported scale for a specific endpoint.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]endpoint

The endpoint to filter scales by

uint8_t[in]sensor_type_value

Sensor type value to check, this is the value in sensor_type_t struct's value

uint8_t *[out]o_supported_scale

Pointer to a buffer where the supported scales will be represented for a sensor type

Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if interface is registered for a sensor.


cc_multilevel_sensor_get_supported_scale#

cc_multilevel_sensor_return_value cc_multilevel_sensor_get_supported_scale (uint8_t sensor_type_value, uint8_t * o_supported_scale)

Fills an input buffer with flags where each flag represents a supported scale.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]sensor_type_value

Sensor type value to check, this is the value in sensor_type_t struct's value

uint8_t *[out]o_supported_scale

Pointer to a buffer where the supported scales will be represented for a sensor type

This is a backward compatible wrapper that defaults to endpoint 0 (root endpoint). Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if interface is registered for a sensor.


cc_multilevel_sensor_get_interface#

cc_multilevel_sensor_return_value cc_multilevel_sensor_get_interface (uint8_t endpoint, uint8_t sensor_type_value, sensor_interface_t ** o_interface)

Getter function for a sensor type's interface.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]endpoint

Sensor type value to check, this is the value in sensor_type_t struct's value

uint8_t[out]sensor_type_value

This is a double pointer which will hold an interface reference

sensor_interface_t **N/Ao_interface

Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if interface is registered for a sensor, else CC_MULTILEVEL_SENSOR_RETURN_VALUE_NOT_FOUND.


cc_multilevel_sensor_get_default_sensor_type#

cc_multilevel_sensor_return_value cc_multilevel_sensor_get_default_sensor_type (uint8_t * o_default_sensor_type)

Gets the default sensor type value.

Parameters
TypeDirectionArgument NameDescription
uint8_t *[in]o_default_sensor_type

Pointer to a byte buffer which will hold the default sensor type value

Basically the first registered sensor interface' type is the default one. Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if there is any registered interface, else CC_MULTILEVEL_SENSOR_RETURN_VALUE_ERROR.


cc_multilevel_sensor_init_iterator#

cc_multilevel_sensor_return_value cc_multilevel_sensor_init_iterator (sensor_interface_iterator_t ** i_iterator)

Initialize an iterator struct for the registered sensor interfaces.

Parameters
TypeDirectionArgument NameDescription
sensor_interface_iterator_t **[out]i_iterator

This is a double pointer which will hold an interface reference to the first registered interface

If there is any registered interface the iterator will be NULL. Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if success, else CC_MULTILEVEL_SENSOR_RETURN_VALUE_ERROR..


cc_multilevel_sensor_next_iterator#

void cc_multilevel_sensor_next_iterator (sensor_interface_iterator_t ** i_iterator)

Moves the iterator reference forward to the next registered interface, if the current is the last one then NULL If there is any registered interface the iterator will be NULL.

Parameters
TypeDirectionArgument NameDescription
sensor_interface_iterator_t **[out]i_iterator

This is a double pointer which will hold an interface reference


cc_multilevel_sensor_get_number_of_registered_sensors#

uint8_t cc_multilevel_sensor_get_number_of_registered_sensors (void )

Returns the number of registered sensor interfaces.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Number of registered sensor interfaces.


cc_multilevel_sensor_reset_administration#

void cc_multilevel_sensor_reset_administration (void )

Removes all of the registered sensor interfaces from the administration.

Parameters
TypeDirectionArgument NameDescription
voidN/A

cc_multilevel_sensor_get_sensor_type#

const sensor_type_t * cc_multilevel_sensor_get_sensor_type (sensor_name_t i_sensor_name)

Returns a sensor_type_t struct from the sensor_types config table.

Parameters
TypeDirectionArgument NameDescription
sensor_name_t[in]i_sensor_name

The name of the sensor type, the sensor type attributes' reference will be look for based on this value

Returns

  • sensor_type_t struct which includes the type attributes.


cc_multilevel_sensor_init_interface#

sensor_interface_return_value_t cc_multilevel_sensor_init_interface (sensor_interface_t * i_instance, sensor_name_t i_name)

Initialize a sensor interface instance.

Parameters
TypeDirectionArgument NameDescription
sensor_interface_t *[in]i_instance

Pointer to an existing sensor interface to init

sensor_name_t[in]i_name

The name of the sensor type, the sensor type attributes' reference will be look for based on this value

Sets the whole struct to zero and sets the reference to the appropiate sensor_type_t struct. Returns

  • Status of the initialization.


cc_multilevel_sensor_add_supported_scale_interface#

sensor_interface_return_value_t cc_multilevel_sensor_add_supported_scale_interface (sensor_interface_t * i_instance, uint8_t i_scale)

Adds a new scale to an existing interface.

Parameters
TypeDirectionArgument NameDescription
sensor_interface_t *[in]i_instance

Pointer to an existing sensor interface which the new scale will be registered to

uint8_t[in]i_scale

The new scale which will be registered

Supported scales must be set by this function during initialization. Returns

  • Status of the new scale value registration.


Macro Definition Documentation#

MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_SEC#

#define MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_SEC
Value:
(MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_MIN * 60)

MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_MS#

#define MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_MS
Value:
(MULTILEVEL_SENSOR_DEFAULT_AUTOREPORT_PEDIOD_SEC * 1000)

SENSOR_SCALE_DEFAULT#

#define SENSOR_SCALE_DEFAULT
Value:
0x00

Defined possible sensor scales.


SENSOR_SCALE_ABSOLUTE_HUMIDITY#

#define SENSOR_SCALE_ABSOLUTE_HUMIDITY
Value:
0x01

Absolute humidity.


SENSOR_SCALE_ACIDITY#

#define SENSOR_SCALE_ACIDITY
Value:
0x00

Acidity.


SENSOR_SCALE_AMPERE#

#define SENSOR_SCALE_AMPERE
Value:
0x00

Ampere.


SENSOR_SCALE_AWEIGHTED_DECIBELS#

#define SENSOR_SCALE_AWEIGHTED_DECIBELS
Value:
0x01

A-weighted decibels.


SENSOR_SCALE_BEATS_PER_MINUTE#

#define SENSOR_SCALE_BEATS_PER_MINUTE
Value:
0x00

Beats per minute.


SENSOR_SCALE_BECQUEREL_PER_CUBIC_METER#

#define SENSOR_SCALE_BECQUEREL_PER_CUBIC_METER
Value:
0x00

Becquerel per cubic meter.


SENSOR_SCALE_BMI_INDEX#

#define SENSOR_SCALE_BMI_INDEX
Value:
0x00

BMI Index.


SENSOR_SCALE_BODY_WAVE#

#define SENSOR_SCALE_BODY_WAVE
Value:
0x03

Body wave.


SENSOR_SCALE_BREATHS_PER_MINUTE#

#define SENSOR_SCALE_BREATHS_PER_MINUTE
Value:
0x00

Breaths per minute.


SENSOR_SCALE_BTU_H#

#define SENSOR_SCALE_BTU_H
Value:
0x01

Btu/h.


SENSOR_SCALE_CELSIUS#

#define SENSOR_SCALE_CELSIUS
Value:
0x00

Celsius.


SENSOR_SCALE_CENTIMETER#

#define SENSOR_SCALE_CENTIMETER
Value:
0x01

Centimeter.


SENSOR_SCALE_CUBIC_FEET_PER_MINUTE#

#define SENSOR_SCALE_CUBIC_FEET_PER_MINUTE
Value:
0x01

Cubic feet per minute.


SENSOR_SCALE_CUBIC_METER#

#define SENSOR_SCALE_CUBIC_METER
Value:
0x01

Cubic meter.


SENSOR_SCALE_CUBIC_METER_PER_HOUR#

#define SENSOR_SCALE_CUBIC_METER_PER_HOUR
Value:
0x00

Cubic meter per hour.


SENSOR_SCALE_DBM#

#define SENSOR_SCALE_DBM
Value:
0x01

dBm


SENSOR_SCALE_DECIBEL#

#define SENSOR_SCALE_DECIBEL
Value:
0x00

Decibel.


SENSOR_SCALE_DEGREES#

#define SENSOR_SCALE_DEGREES
Value:
0x00

Degrees.


SENSOR_SCALE_DEGREES_RELATIVE_TO_NORTH_POLE#

#define SENSOR_SCALE_DEGREES_RELATIVE_TO_NORTH_POLE
Value:
0x01

Degrees relative to north pole.


SENSOR_SCALE_DIASTOLIC#

#define SENSOR_SCALE_DIASTOLIC
Value:
0x01

Diastolic.


SENSOR_SCALE_DIMENSIONLESS_VALUE#

#define SENSOR_SCALE_DIMENSIONLESS_VALUE
Value:
0x01

Dimensionless value.


SENSOR_SCALE_EUROPEAN_MACROSEISMIC#

#define SENSOR_SCALE_EUROPEAN_MACROSEISMIC
Value:
0x01

European Macroseismic.


SENSOR_SCALE_FAHRENHEIT#

#define SENSOR_SCALE_FAHRENHEIT
Value:
0x01

Fahrenheit.


SENSOR_SCALE_FEET#

#define SENSOR_SCALE_FEET
Value:
0x01

Feet.


SENSOR_SCALE_GALLONS#

#define SENSOR_SCALE_GALLONS
Value:
0x02

Gallons.


SENSOR_SCALE_HERTZ#

#define SENSOR_SCALE_HERTZ
Value:
0x01

Hertz.


SENSOR_SCALE_IMPEDANCE#

#define SENSOR_SCALE_IMPEDANCE
Value:
0x02

Impedance.


SENSOR_SCALE_INCHES_OF_MERCURY#

#define SENSOR_SCALE_INCHES_OF_MERCURY
Value:
0x01

Inches of Mercury.


SENSOR_SCALE_INCHES_PER_HOUR#

#define SENSOR_SCALE_INCHES_PER_HOUR
Value:
0x01

Inches per hour.


SENSOR_SCALE_JOULE#

#define SENSOR_SCALE_JOULE
Value:
0x00

Joule.


SENSOR_SCALE_KILOGRAM#

#define SENSOR_SCALE_KILOGRAM
Value:
0x00

Kilogram.


SENSOR_SCALE_KILOHERTZ#

#define SENSOR_SCALE_KILOHERTZ
Value:
0x01

Kilohertz.


SENSOR_SCALE_KILOPASCAL#

#define SENSOR_SCALE_KILOPASCAL
Value:
0x00

Kilopascal.


SENSOR_SCALE_LIEDU#

#define SENSOR_SCALE_LIEDU
Value:
0x02

Liedu.


SENSOR_SCALE_LITER#

#define SENSOR_SCALE_LITER
Value:
0x00

Liter.


SENSOR_SCALE_LITER_PER_HOUR#

#define SENSOR_SCALE_LITER_PER_HOUR
Value:
0x00

Liter per hour.


SENSOR_SCALE_LOCAL#

#define SENSOR_SCALE_LOCAL
Value:
0x00

Local.


SENSOR_SCALE_LUX#

#define SENSOR_SCALE_LUX
Value:
0x01

Lux.


SENSOR_SCALE_MERCALLI#

#define SENSOR_SCALE_MERCALLI
Value:
0x00

Mercalli.


SENSOR_SCALE_METER#

#define SENSOR_SCALE_METER
Value:
0x00

Meter.


SENSOR_SCALE_METER_PER_SECOND#

#define SENSOR_SCALE_METER_PER_SECOND
Value:
0x00

Meter per second.


SENSOR_SCALE_METER_PER_SQUARE_SECOND#

#define SENSOR_SCALE_METER_PER_SQUARE_SECOND
Value:
0x00

Meter per square second.


SENSOR_SCALE_MICROGRAM_PER_CUBIC_METER#

#define SENSOR_SCALE_MICROGRAM_PER_CUBIC_METER
Value:
0x01

Microgram per cubic meter.


SENSOR_SCALE_MICRO_GRAM_PER_CUBIC_METER#

#define SENSOR_SCALE_MICRO_GRAM_PER_CUBIC_METER
Value:
0x00

Micro gram per cubic meter.


SENSOR_SCALE_MILES_PER_HOUR#

#define SENSOR_SCALE_MILES_PER_HOUR
Value:
0x01

Miles per hour.


SENSOR_SCALE_MILLIAMPERE#

#define SENSOR_SCALE_MILLIAMPERE
Value:
0x01

Milliampere.


SENSOR_SCALE_MILLIGRAM_PER_LITER#

#define SENSOR_SCALE_MILLIGRAM_PER_LITER
Value:
0x00

Milligram per liter.


SENSOR_SCALE_MILLIMETER_PER_HOUR#

#define SENSOR_SCALE_MILLIMETER_PER_HOUR
Value:
0x00

Millimeter per hour.


SENSOR_SCALE_MILLIVOLT#

#define SENSOR_SCALE_MILLIVOLT
Value:
0x01

Millivolt.


SENSOR_SCALE_MOLE_PER_CUBIC_METER#

#define SENSOR_SCALE_MOLE_PER_CUBIC_METER
Value:
0x00

Mole per cubic meter.


SENSOR_SCALE_MOMENT#

#define SENSOR_SCALE_MOMENT
Value:
0x01

Moment.


SENSOR_SCALE_NEWTON#

#define SENSOR_SCALE_NEWTON
Value:
0x00

Newton.


SENSOR_SCALE_OHM_METER#

#define SENSOR_SCALE_OHM_METER
Value:
0x00

Ohm meter.


SENSOR_SCALE_PARTS_PER_MILLION#

#define SENSOR_SCALE_PARTS_PER_MILLION
Value:
0x00

Parts per million.


SENSOR_SCALE_PERCENTAGE_VALUE#

#define SENSOR_SCALE_PERCENTAGE_VALUE
Value:
0x00

Percentage value.


SENSOR_SCALE_PICOCURIES_PER_LITER#

#define SENSOR_SCALE_PICOCURIES_PER_LITER
Value:
0x01

Picocuries per liter.


SENSOR_SCALE_POUNDS#

#define SENSOR_SCALE_POUNDS
Value:
0x01

Pounds.


SENSOR_SCALE_POUND_PER_SQUARE_INCH#

#define SENSOR_SCALE_POUND_PER_SQUARE_INCH
Value:
0x01

Pound per square inch.


SENSOR_SCALE_REVOLUTIONS_PER_MINUTE#

#define SENSOR_SCALE_REVOLUTIONS_PER_MINUTE
Value:
0x00

Revolutions per minute.


SENSOR_SCALE_RSSI#

#define SENSOR_SCALE_RSSI
Value:
0x00

RSSI.


SENSOR_SCALE_SECOND#

#define SENSOR_SCALE_SECOND
Value:
0x00

Second.


SENSOR_SCALE_SHINDO#

#define SENSOR_SCALE_SHINDO
Value:
0x03

Shindo.


SENSOR_SCALE_SIEMENS_PER_METER#

#define SENSOR_SCALE_SIEMENS_PER_METER
Value:
0x00

Siemens per meter.


SENSOR_SCALE_SURFACE_WAVE#

#define SENSOR_SCALE_SURFACE_WAVE
Value:
0x02

Surface wave.


SENSOR_SCALE_SYSTOLIC#

#define SENSOR_SCALE_SYSTOLIC
Value:
0x00

Systolic.


SENSOR_SCALE_UNITLESS#

#define SENSOR_SCALE_UNITLESS
Value:
0x00

Unitless.


SENSOR_SCALE_UV_INDEX#

#define SENSOR_SCALE_UV_INDEX
Value:
0x00

UV index.


SENSOR_SCALE_VOLT#

#define SENSOR_SCALE_VOLT
Value:
0x00

Volt.


SENSOR_SCALE_VOLUME_WATER_CONTENT#

#define SENSOR_SCALE_VOLUME_WATER_CONTENT
Value:
0x01

Volume water content.


SENSOR_SCALE_WATER_ACTIVITY#

#define SENSOR_SCALE_WATER_ACTIVITY
Value:
0x03

Water activity.


SENSOR_SCALE_WATT#

#define SENSOR_SCALE_WATT
Value:
0x00

Watt.


SENSOR_SCALE_WATT_PER_SQUARE_METER#

#define SENSOR_SCALE_WATT_PER_SQUARE_METER
Value:
0x00

Watt per square meter.


SENSOR_SCALE_DIMENSIONLESS#

#define SENSOR_SCALE_DIMENSIONLESS
Value:
SENSOR_SCALE_DIMENSIONLESS_VALUE

Sensor scale aliases for backward compatibility.


SENSOR_SCALE_METER_SQUARE_SECOND#

#define SENSOR_SCALE_METER_SQUARE_SECOND
Value:
SENSOR_SCALE_METER_PER_SQUARE_SECOND

SENSOR_SCALE_PERCENTAGE#

#define SENSOR_SCALE_PERCENTAGE
Value:
SENSOR_SCALE_PERCENTAGE_VALUE

SENSOR_TYPE_AIR_TEMPERATURE#

#define SENSOR_TYPE_AIR_TEMPERATURE
Value:
.value = 0x01, .byte_offset = 1, .bit_mask = 0, .max_scale_value = 0x01

Macros for sensor type definitions - allows inlining at call sites for better optimization These expand to compound literals that can be used directly in assignments.


SENSOR_TYPE_GENERAL_PURPOSE#

#define SENSOR_TYPE_GENERAL_PURPOSE
Value:
.value = 0x02, .byte_offset = 1, .bit_mask = 1, .max_scale_value = 0x01

SENSOR_TYPE_ILLUMINANCE#

#define SENSOR_TYPE_ILLUMINANCE
Value:
.value = 0x03, .byte_offset = 1, .bit_mask = 2, .max_scale_value = 0x01

SENSOR_TYPE_POWER#

#define SENSOR_TYPE_POWER
Value:
.value = 0x04, .byte_offset = 1, .bit_mask = 3, .max_scale_value = 0x01

SENSOR_TYPE_HUMIDITY#

#define SENSOR_TYPE_HUMIDITY
Value:
.value = 0x05, .byte_offset = 1, .bit_mask = 4, .max_scale_value = 0x01

SENSOR_TYPE_VELOCITY#

#define SENSOR_TYPE_VELOCITY
Value:
.value = 0x06, .byte_offset = 1, .bit_mask = 5, .max_scale_value = 0x01

SENSOR_TYPE_DIRECTION#

#define SENSOR_TYPE_DIRECTION
Value:
.value = 0x07, .byte_offset = 1, .bit_mask = 6, .max_scale_value = 0x00

SENSOR_TYPE_ATMOSPHERIC_PRESSURE#

#define SENSOR_TYPE_ATMOSPHERIC_PRESSURE
Value:
.value = 0x08, .byte_offset = 1, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_BAROMETRIC_PRESSURE#

#define SENSOR_TYPE_BAROMETRIC_PRESSURE
Value:
.value = 0x09, .byte_offset = 2, .bit_mask = 0, .max_scale_value = 0x01

SENSOR_TYPE_SOLAR_RADIATION#

#define SENSOR_TYPE_SOLAR_RADIATION
Value:
.value = 0x0A, .byte_offset = 2, .bit_mask = 1, .max_scale_value = 0x00

SENSOR_TYPE_DEW_POINT#

#define SENSOR_TYPE_DEW_POINT
Value:
.value = 0x0B, .byte_offset = 2, .bit_mask = 2, .max_scale_value = 0x01

SENSOR_TYPE_RAIN_RATE#

#define SENSOR_TYPE_RAIN_RATE
Value:
.value = 0x0C, .byte_offset = 2, .bit_mask = 3, .max_scale_value = 0x01

SENSOR_TYPE_TIDE_LEVEL#

#define SENSOR_TYPE_TIDE_LEVEL
Value:
.value = 0x0D, .byte_offset = 2, .bit_mask = 4, .max_scale_value = 0x01

SENSOR_TYPE_WEIGHT#

#define SENSOR_TYPE_WEIGHT
Value:
.value = 0x0E, .byte_offset = 2, .bit_mask = 5, .max_scale_value = 0x01

SENSOR_TYPE_VOLTAGE#

#define SENSOR_TYPE_VOLTAGE
Value:
.value = 0x0F, .byte_offset = 2, .bit_mask = 6, .max_scale_value = 0x01

SENSOR_TYPE_CURRENT#

#define SENSOR_TYPE_CURRENT
Value:
.value = 0x10, .byte_offset = 2, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_CARBON_DIOXIDE_CO2_LEVEL#

#define SENSOR_TYPE_CARBON_DIOXIDE_CO2_LEVEL
Value:
.value = 0x11, .byte_offset = 3, .bit_mask = 0, .max_scale_value = 0x00

SENSOR_TYPE_AIR_FLOW#

#define SENSOR_TYPE_AIR_FLOW
Value:
.value = 0x12, .byte_offset = 3, .bit_mask = 1, .max_scale_value = 0x01

SENSOR_TYPE_TANK_CAPACITY#

#define SENSOR_TYPE_TANK_CAPACITY
Value:
.value = 0x13, .byte_offset = 3, .bit_mask = 2, .max_scale_value = 0x02

SENSOR_TYPE_DISTANCE#

#define SENSOR_TYPE_DISTANCE
Value:
.value = 0x14, .byte_offset = 3, .bit_mask = 3, .max_scale_value = 0x02

SENSOR_TYPE_ANGLE_POSITION#

#define SENSOR_TYPE_ANGLE_POSITION
Value:
.value = 0x15, .byte_offset = 3, .bit_mask = 4, .max_scale_value = 0x02

SENSOR_TYPE_ROTATION#

#define SENSOR_TYPE_ROTATION
Value:
.value = 0x16, .byte_offset = 3, .bit_mask = 5, .max_scale_value = 0x01

SENSOR_TYPE_WATER_TEMPERATURE#

#define SENSOR_TYPE_WATER_TEMPERATURE
Value:
.value = 0x17, .byte_offset = 3, .bit_mask = 6, .max_scale_value = 0x01

SENSOR_TYPE_SOIL_TEMPERATURE#

#define SENSOR_TYPE_SOIL_TEMPERATURE
Value:
.value = 0x18, .byte_offset = 3, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_SEISMIC_INTENSITY#

#define SENSOR_TYPE_SEISMIC_INTENSITY
Value:
.value = 0x19, .byte_offset = 4, .bit_mask = 0, .max_scale_value = 0x03

SENSOR_TYPE_SEISMIC_MAGNITUDE#

#define SENSOR_TYPE_SEISMIC_MAGNITUDE
Value:
.value = 0x1A, .byte_offset = 4, .bit_mask = 1, .max_scale_value = 0x03

SENSOR_TYPE_ULTRAVIOLET#

#define SENSOR_TYPE_ULTRAVIOLET
Value:
.value = 0x1B, .byte_offset = 4, .bit_mask = 2, .max_scale_value = 0x00

SENSOR_TYPE_ELECTRICAL_RESISTIVITY#

#define SENSOR_TYPE_ELECTRICAL_RESISTIVITY
Value:
.value = 0x1C, .byte_offset = 4, .bit_mask = 3, .max_scale_value = 0x00

SENSOR_TYPE_ELECTRICAL_CONDUCTIVITY#

#define SENSOR_TYPE_ELECTRICAL_CONDUCTIVITY
Value:
.value = 0x1D, .byte_offset = 4, .bit_mask = 4, .max_scale_value = 0x00

SENSOR_TYPE_LOUDNESS#

#define SENSOR_TYPE_LOUDNESS
Value:
.value = 0x1E, .byte_offset = 4, .bit_mask = 5, .max_scale_value = 0x01

SENSOR_TYPE_MOISTURE#

#define SENSOR_TYPE_MOISTURE
Value:
.value = 0x1F, .byte_offset = 4, .bit_mask = 6, .max_scale_value = 0x03

SENSOR_TYPE_FREQUENCY#

#define SENSOR_TYPE_FREQUENCY
Value:
.value = 0x20, .byte_offset = 4, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_TIME#

#define SENSOR_TYPE_TIME
Value:
.value = 0x21, .byte_offset = 5, .bit_mask = 0, .max_scale_value = 0x00

SENSOR_TYPE_TARGET_TEMPERATURE#

#define SENSOR_TYPE_TARGET_TEMPERATURE
Value:
.value = 0x22, .byte_offset = 5, .bit_mask = 1, .max_scale_value = 0x01

SENSOR_TYPE_PARTICULATE_MATTER_2_5#

#define SENSOR_TYPE_PARTICULATE_MATTER_2_5
Value:
.value = 0x23, .byte_offset = 5, .bit_mask = 2, .max_scale_value = 0x01

SENSOR_TYPE_FORMALDEHYDE_CH2O_LEVEL#

#define SENSOR_TYPE_FORMALDEHYDE_CH2O_LEVEL
Value:
.value = 0x24, .byte_offset = 5, .bit_mask = 3, .max_scale_value = 0x00

SENSOR_TYPE_RADON_CONCENTRATION#

#define SENSOR_TYPE_RADON_CONCENTRATION
Value:
.value = 0x25, .byte_offset = 5, .bit_mask = 4, .max_scale_value = 0x01

SENSOR_TYPE_METHANE_CH4_DENSITY#

#define SENSOR_TYPE_METHANE_CH4_DENSITY
Value:
.value = 0x26, .byte_offset = 5, .bit_mask = 5, .max_scale_value = 0x00

SENSOR_TYPE_VOLATILE_ORGANIC_COMPOUND_LEVEL#

#define SENSOR_TYPE_VOLATILE_ORGANIC_COMPOUND_LEVEL
Value:
.value = 0x27, .byte_offset = 5, .bit_mask = 6, .max_scale_value = 0x01

SENSOR_TYPE_CARBON_MONOXIDE_CO_LEVEL#

#define SENSOR_TYPE_CARBON_MONOXIDE_CO_LEVEL
Value:
.value = 0x28, .byte_offset = 5, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_SOIL_HUMIDITY#

#define SENSOR_TYPE_SOIL_HUMIDITY
Value:
.value = 0x29, .byte_offset = 6, .bit_mask = 0, .max_scale_value = 0x00

SENSOR_TYPE_SOIL_REACTIVITY#

#define SENSOR_TYPE_SOIL_REACTIVITY
Value:
.value = 0x2A, .byte_offset = 6, .bit_mask = 1, .max_scale_value = 0x00

SENSOR_TYPE_SOIL_SALINITY#

#define SENSOR_TYPE_SOIL_SALINITY
Value:
.value = 0x2B, .byte_offset = 6, .bit_mask = 2, .max_scale_value = 0x00

SENSOR_TYPE_HEART_RATE#

#define SENSOR_TYPE_HEART_RATE
Value:
.value = 0x2C, .byte_offset = 6, .bit_mask = 3, .max_scale_value = 0x00

SENSOR_TYPE_BLOOD_PRESSURE#

#define SENSOR_TYPE_BLOOD_PRESSURE
Value:
.value = 0x2D, .byte_offset = 6, .bit_mask = 4, .max_scale_value = 0x01

SENSOR_TYPE_MUSCLE_MASS#

#define SENSOR_TYPE_MUSCLE_MASS
Value:
.value = 0x2E, .byte_offset = 6, .bit_mask = 5, .max_scale_value = 0x00

SENSOR_TYPE_FAT_MASS#

#define SENSOR_TYPE_FAT_MASS
Value:
.value = 0x2F, .byte_offset = 6, .bit_mask = 6, .max_scale_value = 0x00

SENSOR_TYPE_BONE_MASS#

#define SENSOR_TYPE_BONE_MASS
Value:
.value = 0x30, .byte_offset = 6, .bit_mask = 7, .max_scale_value = 0x00

SENSOR_TYPE_TOTAL_BODY_WATER_TBW#

#define SENSOR_TYPE_TOTAL_BODY_WATER_TBW
Value:
.value = 0x31, .byte_offset = 7, .bit_mask = 0, .max_scale_value = 0x00

SENSOR_TYPE_BASIS_METABOLIC_RATE_BMR#

#define SENSOR_TYPE_BASIS_METABOLIC_RATE_BMR
Value:
.value = 0x32, .byte_offset = 7, .bit_mask = 1, .max_scale_value = 0x00

SENSOR_TYPE_BODY_MASS_INDEX_BMI#

#define SENSOR_TYPE_BODY_MASS_INDEX_BMI
Value:
.value = 0x33, .byte_offset = 7, .bit_mask = 2, .max_scale_value = 0x00

SENSOR_TYPE_ACCELERATION_X#

#define SENSOR_TYPE_ACCELERATION_X
Value:
.value = 0x34, .byte_offset = 7, .bit_mask = 3, .max_scale_value = 0x00

SENSOR_TYPE_ACCELERATION_Y#

#define SENSOR_TYPE_ACCELERATION_Y
Value:
.value = 0x35, .byte_offset = 7, .bit_mask = 4, .max_scale_value = 0x00

SENSOR_TYPE_ACCELERATION_Z#

#define SENSOR_TYPE_ACCELERATION_Z
Value:
.value = 0x36, .byte_offset = 7, .bit_mask = 5, .max_scale_value = 0x00

SENSOR_TYPE_SMOKE_DENSITY#

#define SENSOR_TYPE_SMOKE_DENSITY
Value:
.value = 0x37, .byte_offset = 7, .bit_mask = 6, .max_scale_value = 0x00

SENSOR_TYPE_WATER_FLOW#

#define SENSOR_TYPE_WATER_FLOW
Value:
.value = 0x38, .byte_offset = 7, .bit_mask = 7, .max_scale_value = 0x00

SENSOR_TYPE_WATER_PRESSURE#

#define SENSOR_TYPE_WATER_PRESSURE
Value:
.value = 0x39, .byte_offset = 8, .bit_mask = 0, .max_scale_value = 0x00

SENSOR_TYPE_RF_SIGNAL_STRENGTH#

#define SENSOR_TYPE_RF_SIGNAL_STRENGTH
Value:
.value = 0x3A, .byte_offset = 8, .bit_mask = 1, .max_scale_value = 0x01

SENSOR_TYPE_PARTICULATE_MATTER_10#

#define SENSOR_TYPE_PARTICULATE_MATTER_10
Value:
.value = 0x3B, .byte_offset = 8, .bit_mask = 2, .max_scale_value = 0x01

SENSOR_TYPE_RESPIRATORY_RATE#

#define SENSOR_TYPE_RESPIRATORY_RATE
Value:
.value = 0x3C, .byte_offset = 8, .bit_mask = 3, .max_scale_value = 0x00

SENSOR_TYPE_RELATIVE_MODULATION_LEVEL#

#define SENSOR_TYPE_RELATIVE_MODULATION_LEVEL
Value:
.value = 0x3D, .byte_offset = 8, .bit_mask = 4, .max_scale_value = 0x00

SENSOR_TYPE_BOILER_WATER_TEMPERATURE#

#define SENSOR_TYPE_BOILER_WATER_TEMPERATURE
Value:
.value = 0x3E, .byte_offset = 8, .bit_mask = 5, .max_scale_value = 0x01

SENSOR_TYPE_DOMESTIC_HOT_WATER_DHW_TEMPERATURE#

#define SENSOR_TYPE_DOMESTIC_HOT_WATER_DHW_TEMPERATURE
Value:
.value = 0x3F, .byte_offset = 8, .bit_mask = 6, .max_scale_value = 0x01

SENSOR_TYPE_OUTSIDE_TEMPERATURE#

#define SENSOR_TYPE_OUTSIDE_TEMPERATURE
Value:
.value = 0x40, .byte_offset = 8, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_EXHAUST_TEMPERATURE#

#define SENSOR_TYPE_EXHAUST_TEMPERATURE
Value:
.value = 0x41, .byte_offset = 9, .bit_mask = 0, .max_scale_value = 0x01

SENSOR_TYPE_WATER_CHLORINE_LEVEL#

#define SENSOR_TYPE_WATER_CHLORINE_LEVEL
Value:
.value = 0x42, .byte_offset = 9, .bit_mask = 1, .max_scale_value = 0x00

SENSOR_TYPE_WATER_ACIDITY#

#define SENSOR_TYPE_WATER_ACIDITY
Value:
.value = 0x43, .byte_offset = 9, .bit_mask = 2, .max_scale_value = 0x00

SENSOR_TYPE_WATER_OXIDATION_REDUCTION_POTENTIAL#

#define SENSOR_TYPE_WATER_OXIDATION_REDUCTION_POTENTIAL
Value:
.value = 0x44, .byte_offset = 9, .bit_mask = 3, .max_scale_value = 0x00

SENSOR_TYPE_HEART_RATE_LF_HF_RATIO#

#define SENSOR_TYPE_HEART_RATE_LF_HF_RATIO
Value:
.value = 0x45, .byte_offset = 9, .bit_mask = 4, .max_scale_value = 0x00

SENSOR_TYPE_MOTION_DIRECTION#

#define SENSOR_TYPE_MOTION_DIRECTION
Value:
.value = 0x46, .byte_offset = 9, .bit_mask = 5, .max_scale_value = 0x00

SENSOR_TYPE_APPLIED_FORCE_ON_THE_SENSOR#

#define SENSOR_TYPE_APPLIED_FORCE_ON_THE_SENSOR
Value:
.value = 0x47, .byte_offset = 9, .bit_mask = 6, .max_scale_value = 0x00

SENSOR_TYPE_RETURN_AIR_TEMPERATURE#

#define SENSOR_TYPE_RETURN_AIR_TEMPERATURE
Value:
.value = 0x48, .byte_offset = 9, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_SUPPLY_AIR_TEMPERATURE#

#define SENSOR_TYPE_SUPPLY_AIR_TEMPERATURE
Value:
.value = 0x49, .byte_offset = 10, .bit_mask = 0, .max_scale_value = 0x01

SENSOR_TYPE_CONDENSER_COIL_TEMPERATURE#

#define SENSOR_TYPE_CONDENSER_COIL_TEMPERATURE
Value:
.value = 0x4A, .byte_offset = 10, .bit_mask = 1, .max_scale_value = 0x01

SENSOR_TYPE_EVAPORATOR_COIL_TEMPERATURE#

#define SENSOR_TYPE_EVAPORATOR_COIL_TEMPERATURE
Value:
.value = 0x4B, .byte_offset = 10, .bit_mask = 2, .max_scale_value = 0x01

SENSOR_TYPE_LIQUID_LINE_TEMPERATURE#

#define SENSOR_TYPE_LIQUID_LINE_TEMPERATURE
Value:
.value = 0x4C, .byte_offset = 10, .bit_mask = 3, .max_scale_value = 0x01

SENSOR_TYPE_DISCHARGE_LINE_TEMPERATURE#

#define SENSOR_TYPE_DISCHARGE_LINE_TEMPERATURE
Value:
.value = 0x4D, .byte_offset = 10, .bit_mask = 4, .max_scale_value = 0x01

SENSOR_TYPE_SUCTION_INPUT_PUMP_COMPRESSOR_PRESSURE#

#define SENSOR_TYPE_SUCTION_INPUT_PUMP_COMPRESSOR_PRESSURE
Value:
.value = 0x4E, .byte_offset = 10, .bit_mask = 5, .max_scale_value = 0x01

SENSOR_TYPE_DISCHARGE_OUTPUT_PUMP_COMPRESSOR_PRESSURE#

#define SENSOR_TYPE_DISCHARGE_OUTPUT_PUMP_COMPRESSOR_PRESSURE
Value:
.value = 0x4F, .byte_offset = 10, .bit_mask = 6, .max_scale_value = 0x01

SENSOR_TYPE_DEFROST_TEMPERATURE_DEFROST#

#define SENSOR_TYPE_DEFROST_TEMPERATURE_DEFROST
Value:
.value = 0x50, .byte_offset = 10, .bit_mask = 7, .max_scale_value = 0x01

SENSOR_TYPE_OZONE_O3#

#define SENSOR_TYPE_OZONE_O3
Value:
.value = 0x51, .byte_offset = 11, .bit_mask = 0, .max_scale_value = 0x00

SENSOR_TYPE_SULFUR_DIOXIDE_SO2#

#define SENSOR_TYPE_SULFUR_DIOXIDE_SO2
Value:
.value = 0x52, .byte_offset = 11, .bit_mask = 1, .max_scale_value = 0x00

SENSOR_TYPE_NITROGEN_DIOXIDE_NO2#

#define SENSOR_TYPE_NITROGEN_DIOXIDE_NO2
Value:
.value = 0x53, .byte_offset = 11, .bit_mask = 2, .max_scale_value = 0x00

SENSOR_TYPE_AMMONIA_NH3#

#define SENSOR_TYPE_AMMONIA_NH3
Value:
.value = 0x54, .byte_offset = 11, .bit_mask = 3, .max_scale_value = 0x00

SENSOR_TYPE_LEAD_PB#

#define SENSOR_TYPE_LEAD_PB
Value:
.value = 0x55, .byte_offset = 11, .bit_mask = 4, .max_scale_value = 0x00

SENSOR_TYPE_PARTICULATE_MATTER_1#

#define SENSOR_TYPE_PARTICULATE_MATTER_1
Value:
.value = 0x56, .byte_offset = 11, .bit_mask = 5, .max_scale_value = 0x00

SENSOR_TYPE_PERSON_COUNTER_ENTERING#

#define SENSOR_TYPE_PERSON_COUNTER_ENTERING
Value:
.value = 0x57, .byte_offset = 11, .bit_mask = 6, .max_scale_value = 0x00

SENSOR_TYPE_PERSON_COUNTER_EXITING#

#define SENSOR_TYPE_PERSON_COUNTER_EXITING
Value:
.value = 0x58, .byte_offset = 11, .bit_mask = 7, .max_scale_value = 0x00

SENSOR_TYPE_CASE#

#define SENSOR_TYPE_CASE
Value:
(i_name) == SENSOR_NAME_##name \
?({ static const sensor_type_t _st_##name = (const sensor_type_t){ SENSOR_TYPE_##name }; &_st_##name; }) :

Helper macro to generate a single case in the sensor type lookup Sensor types that are accessed by the application code are allocated statically.

Unused sensor types are optimized out at compile time.


SENSOR_TYPE_FROM_NAME#

#define SENSOR_TYPE_FROM_NAME

Macro to map sensor_name_t enum to corresponding sensor type.


SLI_MAX_RAW_RESULT_BYTES#

#define SLI_MAX_RAW_RESULT_BYTES
Value:
4

Structure that holds a read result from the read interface.