Class LevelMeter5_4_VR_420Module
Defined in File LevelMeter5_4_VR_420Module.hpp
Inheritance Relationships
Base Type
public Module
(Class Module)
Class Documentation
-
class LevelMeter5_4_VR_420Module : public Module
This class represents the 5 Level Meters Module connected via eMOD bus to controller module. This module is a four capacitive, Namur and PNP probes plus five resistive probes plus an analogic input with potentiometer plus an 4-20mA input.
Class example 1
Public Types
-
enum ResistiveSensorID
Values:
-
enumerator kResistiveSensor1
-
enumerator kResistiveSensor2
-
enumerator kResistiveSensor3
-
enumerator kResistiveSensor4
-
enumerator kResistiveSensor5
-
enumerator kResistiveSensor1
-
enum CurrentSensorID
Values:
-
enumerator kCurrentSensor1
-
enumerator kCurrentSensor2
-
enumerator kCurrentSensor3
-
enumerator kCurrentSensor4
-
enumerator kCurrentSensor1
-
typedef void (*LevelMeter5_4_VR_420ModuleCallback_Type)(const uint8_t *data, uint16_t data_len, uint8_t id_function, void *ctx)
Callback function type, for the configOnNewDataEvent (see below).
- Param meter_num:
[in] sensor number, from 1 to 9, that triggers a new data event.
- Param new_status:
[in] new status from the meter_num sensor, indicating: 0 = sensor is not detecting; or 1 = sensor detection.
Public Functions
-
LevelMeter5_4_VR_420Module()
-
~LevelMeter5_4_VR_420Module()
-
EmodRet init(const LevelMeter5_4_VR_420ModuleCallback_Type callback_func = nullptr, void *callback_context = nullptr, const uint8_t variant = 1)
Initialize module. It is important to emphasize that it is mandatory to call this method and must be called always after instantiating the module. It can be called several times, each of which the module is initialized again.
- Parameters:
callback_func(optional) -- [in] function that will be called when a configured event occurs.
callback_context(optional) -- [in] context that will be passed to the callback function.
variant(optional) -- [in] identifies the module in case more than one module of the same type are present.
-
EmodRet configResistiveSensorPolarity(const uint16_t sensor_mask, const uint8_t polarity)
Configures Resistive Sensor polarity.
- Parameters:
sensor_mask -- [in] resistive sensor mask to configure (one or many), as enumerated above in the constants section.
polarity -- [in] polarity;
-
EmodRet configCurrentSensorPolarity(const uint16_t sensor_mask, const uint8_t polarity)
Configures Current Sensor polarity.
- Parameters:
sensor_mask -- [in] current sensor mask to configure (one or many), as enumerated above in the constants section.
polarity -- [in] polarity to configure;
-
EmodRet configAllResistiveSensorPolarity(const uint8_t polarity)
Configures All Resistive Sensors with common polarity.
- Parameters:
polarity -- [in] polarity to configure;
-
EmodRet configAllCurrentSensorPolarity(const uint8_t polarity)
Configures All Current Sensors with common polarity.
- Parameters:
polarity -- [in] polarity to configure;
-
EmodRet getResistiveSensorPolarity(const ResistiveSensorID sensor, uint8_t *polarity)
Gets Resistive Sensor polarity.
- Parameters:
sensor -- [in] resistive sensor id to get polarity, as enumerated above in the constants section.
polarity -- [out] present polarity;
-
EmodRet getCurrentSensorPolarity(const CurrentSensorID sensor, uint8_t *polarity)
Gets Current Sensor polarity.
- Parameters:
sensor -- [in] current sensor id to get polarity, as enumerated above in the constants section.
polarity -- [out] present polarity;
-
EmodRet getAllResistiveSensorPolarity(uint8_t polarities[kNumberOfResistiveSensors])
Gets All Resistive Sensor polarities.
- Parameters:
polarities -- [out] array of length 5 containing the polarities of all resistive sensors;
-
EmodRet getAllCurrentSensorPolarity(uint8_t polarities[kNumberOfCurrentSensors])
Gets All Current Sensor polarities.
- Parameters:
polarities -- [out] array of length 4 containing the polarities of all resistive sensors;
-
EmodRet setResistiveSensorThreshold(const ResistiveSensorID sensor, const uint16_t detect_resistance, const uint16_t refill_resistance)
Configures the detection and refill resistance threshold for a resistive sensor.
- Parameters:
sensor -- [in] resistive sensor number to configure, as enumerated above in the constants section.
detect_resistance -- [in] below this low limit value, sensor is detecting the liquid presence.
refill_resistance -- [in] above this high limit value, sensor is detecting the liquid absence.
-
EmodRet setAllResistiveSensorThreshold(const uint16_t detect_resistance, const uint16_t refill_resistance)
Configures the detection and refill resistance threshold for all resistive sensors.
- Parameters:
detect_resistance -- [in] below this low limit value, sensor is detecting the liquid presence.
refill_resistance -- [in] above this high limit value, sensor is detecting the liquid absence.
-
EmodRet setResistiveSensorSensitivity(const ResistiveSensorID sensor, const uint16_t refill_resistance)
Configures the refill resistance threshold for a resistive sensor. The detection resistance is computed as the 50% of the refill resistance.
- Parameters:
sensor -- [in] resistive sensor number to configure, as enumerated above in the constants section.
refill_resistance -- [in] above this high limit value, sensor is detecting the liquid absence.
-
EmodRet setAllResistiveSensorSensitivity(const uint16_t refill_resistance)
Configures the refill resistance threshold for all resistive sensors. The detection resistance is computed as the 50% of the refill resistance.
- Parameters:
refill_resistance -- [in] above this high limit value, sensor is detecting the liquid absence.
-
EmodRet setCurrentSensorType(const CurrentSensorID sensor, const LevelMeterType type)
Configures the type of current sensor.
- Parameters:
sensor -- [in] current sensor number to configure, as enumerated above in the constants section.
type -- [in] can be Namur, Capacitive or PNP, as enumerated above in the constants section.
-
EmodRet setAllCurrentSensorType(const LevelMeterType type)
Configures the type of all current sensor.
- Parameters:
type -- [in] can be Namur, Capacitive or PNP, as enumerated above in the constants section.
-
EmodRet getResistiveLevelStatus(const ResistiveSensorID sensor, uint8_t *status)
Gets the status of a resistive sensor.
- Parameters:
sensor -- [in] resistive sensor number to get the status, as enumerated above in the constants section.
status -- [out] When 0 polarity 0 = sensor is detecting absence, 1 = sensor is detecting presence. When 1 polarity telling the opposite.
-
EmodRet getCurrentLevelStatus(const CurrentSensorID sensor, uint8_t *status)
Gets the status of a current sensor.
- Parameters:
sensor -- [in] current sensor number to get the status, as enumerated above in the constants section.
status -- [out] When 0 polarity 0 = sensor is detecting absence, 1 = sensor is detecting presence. When 1 polarity telling the opposite.
-
EmodRet getAllResistiveLevelStatus(uint8_t status[kNumberOfResistiveSensors])
Gets the status of all Resistive sensors.
- Parameters:
status -- [out] array of length 5. When 0 polarity 0 = sensor is detecting absence, 1 = sensor is detecting presence. When 1 polarity telling the opposite.
-
EmodRet getAllCurrentLevelStatus(uint8_t status[kNumberOfCurrentSensors])
Gets the status of all Current sensors.
- Parameters:
status -- [out] array of length 4. When 0 polarity 0 = sensor is detecting absence, 1 = sensor is detecting presence. When 1 polarity telling the opposite.
-
EmodRet getPotentiometerInput(uint16_t *data)
Gets the value of the Potentiometer Input in %.
- Parameters:
data -- [out] value ranging from 0 to 100.
-
EmodRet get420Input(uint16_t *data)
Gets the value of the 4-20 mA input.
- Parameters:
data -- [out] value ranging from 0 to 20000 µA.
-
EmodRet configEventOnNewData()
Configures module for calling init callback_func when new data arrives on any of its resistive or current sensors. We use 1 to 5 for resistive sensors and 6 to 9 for current sensors.
-
EmodRet configEventAtTimeIntervalLevel(const uint32_t time_interval)
Configures module for calling init callback_func at specified period.
- Parameters:
time_interval -- [in] period in milliseconds. Minimum value is 500ms.
-
EmodRet configEventWithinRangePotentiometer(const uint32_t low_limit, const uint32_t high_limit)
Configures module for calling init callback_func when input value enters the specified range.
- Parameters:
low_limit -- [in] low limit of the range in %.
high_limit -- [in] high limit of the range in %.
-
EmodRet configEventOutOfRangePotentiometer(const uint32_t low_limit, const uint32_t high_limit)
Configures module for calling init callback_func when input value gets out of the specified range.
- Parameters:
low_limit -- [in] low limit of the range in %.
high_limit -- [in] high limit of the range in %.
-
EmodRet configEventOnValueChangePotentiometer(const uint32_t threshold)
Configures module for calling init callback_func when input changes its value by a specified amount.
- Parameters:
threshold -- [in] amount of % that triggers the event.
-
EmodRet configEventAtTimeIntervalPotentiometer(const uint32_t time_interval)
Configures module for calling init callback_func at specified period.
- Parameters:
time_interval -- [in] period in milliseconds. Minimum value is 500ms.
-
EmodRet configEventWithinRange420(const uint32_t low_limit, const uint32_t high_limit)
Configures module for calling init callback_func when 4-20 input value enters the specified range.
- Parameters:
low_limit -- [in] low limit of the range in µA.
high_limit -- [in] high limit of the range in µA.
-
EmodRet configEventOutOfRange420(const uint32_t low_limit, const uint32_t high_limit)
Configures module for calling init callback_func when 4-20 input value gets out of the specified range.
- Parameters:
low_limit -- [in] low limit of the range in µA.
high_limit -- [in] high limit of the range in µA.
-
EmodRet configEventOnValueChange420(const uint32_t threshold)
Configures module for calling init callback_func when input changes its value by a specified amount.
- Parameters:
threshold -- [in] amount of mA that triggers the event.
Public Static Attributes
-
static constexpr int kNumberOfResistiveSensors = 5
-
static constexpr int kNumberOfCurrentSensors = 4
-
static constexpr int kNumberOfPotentiometers = 1
-
static constexpr int kNumberOf420Inputs = 1
-
static constexpr uint16_t kMaxRefillResistance = 100
-
static constexpr uint16_t kMinDetectResistance = 1
-
static constexpr uint16_t kResistiveSensorAll = 0x001f
-
static constexpr uint16_t kCurrentSensorAll = 0x000f
Protected Attributes
-
LevelMeterFunctions *level_meters_
-
enum ResistiveSensorID