M5UnitUnified 0.0.5 git rev:3b942a7
Loading...
Searching...
No Matches
m5::unit::Component Class Referenceabstract

Base class of unit component. More...

#include <M5UnitComponent.hpp>

Classes

struct  component_config_t
 Component basic settings for begin. More...
 

Public Member Functions

bool generalCall (const uint8_t *data, const size_t len)
 General call for I2C.
 
virtual std::string debugInfo () const
 Output information for debug.
 
Constructor
Warning
COPY PROHIBITED
 Component (const uint8_t addr=0x00)
 
 Component (const Component &)=delete
 
 Component (Component &&) noexcept=default
 
Assignment
Warning
COPY PROHIBITED
Componentoperator= (const Component &)=delete
 
Componentoperator= (Component &&) noexcept=default
 
Component settings
component_config_t component_config ()
 Gets the common configurations in each unit.
 
void component_config (const component_config_t &cfg)
 Set the common configurations in each unit.
 
Functions that must be inherited
virtual bool begin ()
 Begin unit.
 
virtual void update (const bool force=false)
 Update unit.
 
Properties
const char * deviceName () const
 Gets the device name.
 
types::uid_t identifier () const
 Gets the identifier.
 
types::attr_t attribute () const
 Gets the attributes.
 
uint32_t order () const
 Gets the registered order (== 0 means not yet)
 
int16_t channel () const
 Gets the channel if connected to another unit.
 
bool isRegistered () const
 Is the unit registered with the manager?
 
uint8_t address () const
 Address used to access the device.
 
Adapteradapter () const
 Gets the access adapter.
 
Periodic measurement
bool inPeriodic () const
 In periodic measurement?
 
bool updated () const
 Periodic measurement data updated?
 
types::elapsed_time_t updatedMillis () const
 Time elapsed since start-up when the measurement data was updated in update()
 
types::elapsed_time_t interval () const
 Gets the periodic measurement interval.
 
Bus assignment
virtual bool assign (m5::hal::bus::Bus *bus)
 Assgin m5::hal::bus.
 
virtual bool assign (TwoWire &wire)
 Assgin TwoWire.
 
Parent-children relationship
Note
For daisy-chaining units such as hubs
bool hasParent () const
 Has parent unit?
 
bool hasSiblings () const
 Are there any other devices connected to the same parent unit besides yourself?
 
bool hasChildren () const
 Are there other devices connected to me?
 
size_t childrenSize () const
 Number of units connected to me.
 
bool existsChild (const uint8_t ch) const
 Is there an other unit connected to the specified channel?
 
Componentchild (const uint8_t chhanle) const
 Gets the deviceconnected to the specified channel.
 
bool add (Component &c, const int16_t channel)
 Connect the unit to the specified channel.
 
bool selectChannel (const uint8_t ch=8)
 Select valid channel if exists.
 
Read/Write
m5::hal::error::error_t readWithTransaction (uint8_t *data, const size_t len)
 Read any data with transaction.
 
template<typename Reg >
bool readRegister (const Reg reg, uint8_t *rbuf, const size_t len, const uint32_t delayMillis, const bool stop=true)
 Read any data with transaction from register.
 
template<typename Reg >
bool readRegister8 (const Reg reg, uint8_t &result, const uint32_t delayMillis, const bool stop=true)
 Read byte with transaction from register.
 
template<typename Reg >
bool readRegister16BE (const Reg reg, uint16_t &result, const uint32_t delayMillis, const bool stop=true)
 Read word in big-endian order with transaction from register.
 
template<typename Reg >
bool readRegister16LE (const Reg reg, uint16_t &result, const uint32_t delayMillis, const bool stop=true)
 Read word in little-endian order with transaction from register.
 
template<typename Reg >
bool readRegister32BE (const Reg reg, uint32_t &result, const uint32_t delayMillis, const bool stop=true)
 Read dword in big-endian order with transaction from register.
 
template<typename Reg >
bool readRegister32LE (const Reg reg, uint32_t &result, const uint32_t delayMillis, const bool stop=true)
 Read dword in little-endian order with transaction from register.
 
m5::hal::error::error_t writeWithTransaction (const uint8_t *data, const size_t len, const bool stop=true)
 Write any data with transaction.
 
template<typename Reg >
m5::hal::error::error_t writeWithTransaction (const Reg reg, const uint8_t *data, const size_t len, const bool stop=true)
 Write any data with transaction to register.
 
template<typename Reg >
bool writeRegister (const Reg reg, const uint8_t *buf=nullptr, const size_t len=0U, const bool stop=true)
 Write any data with transaction to register.
 
template<typename Reg >
bool writeRegister8 (const Reg reg, const uint8_t value, const bool stop=true)
 Write byte with transaction to register.
 
template<typename Reg >
bool writeRegister16BE (const Reg reg, const uint16_t value, const bool stop=true)
 Write word in big-endian order with transaction from register.
 
template<typename Reg >
bool writeRegister16LE (const Reg reg, const uint16_t value, const bool stop=true)
 Write word in little-endian order with transaction from register.
 
template<typename Reg >
bool writeRegister32BE (const Reg reg, const uint32_t value, const bool stop=true)
 Write dword in big-endian order with transaction from register.
 
template<typename Reg >
bool writeRegister32LE (const Reg reg, const uint32_t value, const bool stop=true)
 Write dword in little-endian order with transaction from register.
 

Static Public Attributes

Fixed parameters for class
Warning
Define the same name and type in the derived class.
static const types::uid_t uid {0}
 Unique identifier.
 
static const types::attr_t attr {0}
 Attributes.
 
static const char name [] = ""
 Device name string.
 

Protected Member Functions

virtual const char * unit_device_name () const =0
 
virtual types::uid_t unit_identifier () const =0
 
virtual types::attr_t unit_attribute () const =0
 
virtual bool in_periodic () const
 
virtual Adapterduplicate_adapter (const uint8_t)
 
virtual m5::hal::error::error_t select_channel (const uint8_t)
 
size_t stored_size () const
 
bool add_child (Component *c)
 
bool changeAddress (const uint8_t addr)
 

Detailed Description

Base class of unit component.

Member Function Documentation

◆ adapter()

Adapter * m5::unit::Component::adapter ( ) const
inline

Gets the access adapter.

Warning
Ownership is retained by the unit and should not be released

◆ begin()

virtual bool m5::unit::Component::begin ( )
inlinevirtual

Begin unit.

Initiate functions based on component config and unit config

◆ interval()

types::elapsed_time_t m5::unit::Component::interval ( ) const
inline

Gets the periodic measurement interval.

Returns
interval time (Unit: ms)

◆ update()

virtual void m5::unit::Component::update ( const bool force = false)
inlinevirtual

Update unit.

Parameters
forceForced communication for updates if true

◆ updatedMillis()

types::elapsed_time_t m5::unit::Component::updatedMillis ( ) const
inline

Time elapsed since start-up when the measurement data was updated in update()

Returns
Updated time (Unit: ms)