M5Unit-METER 0.1.0 git rev:2ae611f
Loading...
Searching...
No Matches
m5::unit::UnitDualKmeter Class Reference

Module 13.2 DualKmeter unit. More...

#include <unit_DualKmeter.hpp>

Inheritance diagram for m5::unit::UnitDualKmeter:

Classes

struct  config_t
 Settings for begin. More...
 

Public Member Functions

 UnitDualKmeter (const uint8_t addr=DEFAULT_ADDRESS)
 
virtual bool begin () override
 
virtual void update (const bool force=false) override
 
bool readStatus (uint8_t &status)
 Read status.
 
bool readFirmwareVersion (uint8_t &ver)
 Read firmware version.
 
Settings for begin
config_t config ()
 Gets the configration.
 
void config (const config_t &cfg)
 Set the configration.
 
Properties
dual_kmeter::MeasurementUnit measurementUnit () const
 
dual_kmeter::Channel measurementChannel () const
 
void setMeasurementUnit (const dual_kmeter::MeasurementUnit munit)
 
Measurement data by periodic
float temperature () const
 Oldest temperature.
 
Periodic measurement
bool startPeriodicMeasurement ()
 Start periodic measurement in the current settings.
 
bool startPeriodicMeasurement (const uint32_t interval, const dual_kmeter::Channel channel=dual_kmeter::Channel::One, const dual_kmeter::MeasurementUnit munit=dual_kmeter::MeasurementUnit::Celsius)
 Start periodic measurement @oaram channel Channel to be measured.
 
bool stopPeriodicMeasurement ()
 Stop periodic measurement.
 
Single shot measurement
bool measureSingleshot (dual_kmeter::Data &d, const dual_kmeter::Channel channel, dual_kmeter::MeasurementUnit munit=dual_kmeter::MeasurementUnit::Celsius, const uint32_t timeoutMs=100)
 Measure temperature single shot.
 
bool measureInternalSingleshot (dual_kmeter::Data &d, const dual_kmeter::Channel channel, const dual_kmeter::MeasurementUnit munit=dual_kmeter::MeasurementUnit::Celsius, const uint32_t timeoutMs=100)
 Measure internal temperature single shot.
 
Channel
bool readCurrentChannel (dual_kmeter::Channel &channel)
 Read the current measure channel.
 
bool writeCurrentChannel (const dual_kmeter::Channel channel)
 Write the current measure channel.
 

Protected Member Functions

bool read_register (const uint8_t reg, uint8_t *rbuf, const uint32_t len)
 
bool read_register8 (const uint8_t reg, uint8_t &v)
 
bool start_periodic_measurement ()
 
bool start_periodic_measurement (const uint32_t interval, const dual_kmeter::Channel channel, const dual_kmeter::MeasurementUnit munit)
 
bool stop_periodic_measurement ()
 
bool read_measurement (dual_kmeter::Data &d, const dual_kmeter::MeasurementUnit munit)
 
bool read_internal_measurement (dual_kmeter::Data &d, const dual_kmeter::MeasurementUnit munit)
 
bool is_data_ready ()
 
 M5_UNIT_COMPONENT_PERIODIC_MEASUREMENT_ADAPTER_HPP_BUILDER (UnitDualKmeter, dual_kmeter::Data)
 

Protected Attributes

std::unique_ptr< m5::container::CircularBuffer< dual_kmeter::Data > > _data {}
 
dual_kmeter::MeasurementUnit _munit {dual_kmeter::MeasurementUnit::Celsius}
 
dual_kmeter::Channel _channel {}
 
dual_kmeter::Channel _current_channel {}
 
config_t _cfg {}
 

Detailed Description

Module 13.2 DualKmeter unit.

Note
Address changeable by DIP switch on the unit
Address 0 1 2 3 Note
0x11 OFF OFF OFF OFF as default
0x12 ON OFF OFF OFF
0x13 OFF ON OFF OFF
0x14 ON ON OFF OFF
0x15 OFF OFF ON OFF
0x16 ON OFF ON OFF
0x17 OFF ON ON OFF
0x18 ON ON ON OFF
0x19 OFF OFF OFF ON
0x1A ON OFF OFF ON
0x1B OFF ON OFF ON
0x1C ON ON OFF ON
0x1D OFF OFF ON ON
0x1E ON OFF ON ON
0x1F OFF ON ON ON
0x20 ON ON ON ON
m5::unit::DualKmeter unit{0x1A}; // Configured address
Unit-related namespace.

Member Function Documentation

◆ measureInternalSingleshot()

bool m5::unit::UnitDualKmeter::measureInternalSingleshot ( dual_kmeter::Data & d,
const dual_kmeter::Channel channel,
const dual_kmeter::MeasurementUnit munit = dual_kmeter::MeasurementUnit::Celsius,
const uint32_t timeoutMs = 100 )

Measure internal temperature single shot.

Parameters
[out]dataMeasuerd data
munitmeasurement unit
timeoutMsMeasurement timeout time(ms)
Returns
True if successful
Warning
During periodic detection runs, an error is returned

◆ measurementChannel()

dual_kmeter::Channel m5::unit::UnitDualKmeter::measurementChannel ( ) const
inline

Gets the measurement channel on periodic measurement

◆ measurementUnit()

dual_kmeter::MeasurementUnit m5::unit::UnitDualKmeter::measurementUnit ( ) const
inline

Gets the measurement unit on periodic measurement

◆ measureSingleshot()

bool m5::unit::UnitDualKmeter::measureSingleshot ( dual_kmeter::Data & d,
const dual_kmeter::Channel channel,
dual_kmeter::MeasurementUnit munit = dual_kmeter::MeasurementUnit::Celsius,
const uint32_t timeoutMs = 100 )

Measure temperature single shot.

Parameters
[out]dataMeasuerd data
channelChannel to be measured
munitmeasurement unit
timeoutMsMeasurement timeout time(ms)
Returns
True if successful
Warning
During periodic detection runs, an error is returned

◆ readCurrentChannel()

bool m5::unit::UnitDualKmeter::readCurrentChannel ( dual_kmeter::Channel & channel)

Read the current measure channel.

Parameters
[out]channelChannel
Returns
True if successful

◆ readFirmwareVersion()

bool m5::unit::UnitDualKmeter::readFirmwareVersion ( uint8_t & ver)

Read firmware version.

Parameters
[out]verversion
Returns
True if successful

◆ readStatus()

bool m5::unit::UnitDualKmeter::readStatus ( uint8_t & status)

Read status.

Parameters
[out]statusStatus
Returns
True if successful

◆ setMeasurementUnit()

void m5::unit::UnitDualKmeter::setMeasurementUnit ( const dual_kmeter::MeasurementUnit munit)
inline

Set the measurement unit on periodic measurement

◆ startPeriodicMeasurement() [1/2]

bool m5::unit::UnitDualKmeter::startPeriodicMeasurement ( )
inline

Start periodic measurement in the current settings.

Returns
True if successful

◆ startPeriodicMeasurement() [2/2]

bool m5::unit::UnitDualKmeter::startPeriodicMeasurement ( const uint32_t interval,
const dual_kmeter::Channel channel = dual_kmeter::Channel::One,
const dual_kmeter::MeasurementUnit munit = dual_kmeter::MeasurementUnit::Celsius )
inline

Start periodic measurement @oaram channel Channel to be measured.

Parameters
intervalPeriodic interval(ms)
munitMeasurement unit
Returns
True if successful

◆ stopPeriodicMeasurement()

bool m5::unit::UnitDualKmeter::stopPeriodicMeasurement ( )
inline

Stop periodic measurement.

Returns
True if successful

◆ writeCurrentChannel()

bool m5::unit::UnitDualKmeter::writeCurrentChannel ( const dual_kmeter::Channel channel)

Write the current measure channel.

Parameters
channelChannel
Returns
True if successful