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(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(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
SENSOR_SCALE_DEFAULT 0x00

Defined possible sensor scales.

#define
SENSOR_SCALE_ABSOLUTE_HUMIDITY 0x01

Absolute humidity.

#define
SENSOR_SCALE_ACIDITY 0x00

Acidity.

#define
SENSOR_SCALE_AMPERE 0x00

Ampere.

#define
SENSOR_SCALE_AWEIGHTED_DECIBELS 0x01

A-weighted decibels.

#define
SENSOR_SCALE_BEATS_PER_MINUTE 0x00

Beats per minute.

#define
SENSOR_SCALE_BECQUEREL_PER_CUBIC_METER 0x00

Becquerel per cubic meter.

#define
SENSOR_SCALE_BMI_INDEX 0x00

BMI Index.

#define
SENSOR_SCALE_BODY_WAVE 0x03

Body wave.

#define
SENSOR_SCALE_BREATHS_PER_MINUTE 0x00

Breaths per minute.

#define
SENSOR_SCALE_BTU_H 0x01

Btu/h.

#define
SENSOR_SCALE_CELSIUS 0x00

Celsius.

#define
SENSOR_SCALE_CENTIMETER 0x01

Centimeter.

#define
SENSOR_SCALE_CUBIC_FEET_PER_MINUTE 0x01

Cubic feet per minute.

#define
SENSOR_SCALE_CUBIC_METER 0x01

Cubic meter.

#define
SENSOR_SCALE_CUBIC_METER_PER_HOUR 0x00

Cubic meter per hour.

#define
SENSOR_SCALE_DBM 0x01

dBm

#define
SENSOR_SCALE_DECIBEL 0x00

Decibel.

#define
SENSOR_SCALE_DEGREES 0x00

Degrees.

#define
SENSOR_SCALE_DEGREES_RELATIVE_TO_NORTH_POLE 0x01

Degrees relative to north pole.

#define
SENSOR_SCALE_DIASTOLIC 0x01

Diastolic.

#define
SENSOR_SCALE_DIMENSIONLESS_VALUE 0x01

Dimensionless value.

#define
SENSOR_SCALE_EUROPEAN_MACROSEISMIC 0x01

European Macroseismic.

#define
SENSOR_SCALE_FAHRENHEIT 0x01

Fahrenheit.

#define
SENSOR_SCALE_FEET 0x01

Feet.

#define
SENSOR_SCALE_GALLONS 0x02

Gallons.

#define
SENSOR_SCALE_HERTZ 0x01

Hertz.

#define
SENSOR_SCALE_IMPEDANCE 0x02

Impedance.

#define
SENSOR_SCALE_INCHES_OF_MERCURY 0x01

Inches of Mercury.

#define
SENSOR_SCALE_INCHES_PER_HOUR 0x01

Inches per hour.

#define
SENSOR_SCALE_JOULE 0x00

Joule.

#define
SENSOR_SCALE_KILOGRAM 0x00

Kilogram.

#define
SENSOR_SCALE_KILOHERTZ 0x01

Kilohertz.

#define
SENSOR_SCALE_KILOPASCAL 0x00

Kilopascal.

#define
SENSOR_SCALE_LIEDU 0x02

Liedu.

#define
SENSOR_SCALE_LITER 0x00

Liter.

#define
SENSOR_SCALE_LITER_PER_HOUR 0x00

Liter per hour.

#define
SENSOR_SCALE_LOCAL 0x00

Local.

#define
SENSOR_SCALE_LUX 0x01

Lux.

#define
SENSOR_SCALE_MERCALLI 0x00

Mercalli.

#define
SENSOR_SCALE_METER 0x00

Meter.

#define
SENSOR_SCALE_METER_PER_SECOND 0x00

Meter per second.

#define
SENSOR_SCALE_METER_PER_SQUARE_SECOND 0x00

Meter per square second.

#define
SENSOR_SCALE_MICROGRAM_PER_CUBIC_METER 0x01

Microgram per cubic meter.

#define
SENSOR_SCALE_MICRO_GRAM_PER_CUBIC_METER 0x00

Micro gram per cubic meter.

#define
SENSOR_SCALE_MILES_PER_HOUR 0x01

Miles per hour.

#define
SENSOR_SCALE_MILLIAMPERE 0x01

Milliampere.

#define
SENSOR_SCALE_MILLIGRAM_PER_LITER 0x00

Milligram per liter.

#define
SENSOR_SCALE_MILLIMETER_PER_HOUR 0x00

Millimeter per hour.

#define
SENSOR_SCALE_MILLIVOLT 0x01

Millivolt.

#define
SENSOR_SCALE_MOLE_PER_CUBIC_METER 0x00

Mole per cubic meter.

#define
SENSOR_SCALE_MOMENT 0x01

Moment.

#define
SENSOR_SCALE_NEWTON 0x00

Newton.

#define
SENSOR_SCALE_OHM_METER 0x00

Ohm meter.

#define
SENSOR_SCALE_PARTS_PER_MILLION 0x00

Parts per million.

#define
SENSOR_SCALE_PERCENTAGE_VALUE 0x00

Percentage value.

#define
SENSOR_SCALE_PICOCURIES_PER_LITER 0x01

Picocuries per liter.

#define
SENSOR_SCALE_POUNDS 0x01

Pounds.

#define
SENSOR_SCALE_POUND_PER_SQUARE_INCH 0x01

Pound per square inch.

#define
SENSOR_SCALE_REVOLUTIONS_PER_MINUTE 0x00

Revolutions per minute.

#define
SENSOR_SCALE_RSSI 0x00

RSSI.

#define
SENSOR_SCALE_SECOND 0x00

Second.

#define
SENSOR_SCALE_SHINDO 0x03

Shindo.

#define
SENSOR_SCALE_SIEMENS_PER_METER 0x00

Siemens per meter.

#define
SENSOR_SCALE_SURFACE_WAVE 0x02

Surface wave.

#define
SENSOR_SCALE_SYSTOLIC 0x00

Systolic.

#define
SENSOR_SCALE_UNITLESS 0x00

Unitless.

#define
SENSOR_SCALE_UV_INDEX 0x00

UV index.

#define
SENSOR_SCALE_VOLT 0x00

Volt.

#define
SENSOR_SCALE_VOLUME_WATER_CONTENT 0x01

Volume water content.

#define
SENSOR_SCALE_WATER_ACTIVITY 0x03

Water activity.

#define
SENSOR_SCALE_WATT 0x00

Watt.

#define
SENSOR_SCALE_WATT_PER_SQUARE_METER 0x00

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
SLI_MAX_RAW_RESULT_BYTES 4

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#

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.

Returns

  • CC_MULTILEVEL_SENSOR_RETURN_VALUE_OK if success, else CC_MULTILEVEL_SENSOR_RETURN_VALUE_ERROR.


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

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.