M5UnitUnified 0.4.6 git rev:c61a63c
Loading...
Searching...
No Matches
m5::unit::Adapter Class Reference

Adapter base class to treat M5HAL and TwoWire,GPIO,Serial,SPI... in the same way. More...

#include <adapter_base.hpp>

Inheritance diagram for m5::unit::Adapter:
m5::unit::AdapterGPIOBase m5::unit::AdapterI2C m5::unit::AdapterSPI m5::unit::AdapterUART m5::unit::AdapterGPIO

Classes

class  Impl
 Implementation base class (Pimpl pattern) More...
 

Public Types

enum class  Type : uint8_t {
  Unknown , I2C , GPIO , UART ,
  SPI
}
 Adapter type. More...
 

Public Member Functions

 Adapter ()
 Default constructor (creates Unknown type adapter)
 
 Adapter (const Adapter &)=delete
 
 Adapter (Adapter &&) noexcept=default
 
Adapteroperator= (const Adapter &)=delete
 
Adapteroperator= (Adapter &&) noexcept=default
 
Type type () const
 Gets the adapter type.
 
virtual Adapterduplicate (const uint8_t)
 Create a duplicate adapter with a different address.
 
Transaction control
virtual void beginTransaction ()
 Begin a bus transaction.
 
virtual void endTransaction ()
 End a bus transaction.
 
I2C read/write
m5::hal::error::error_t readWithTransaction (uint8_t *data, const size_t len)
 Read data within a transaction.
 
m5::hal::error::error_t writeWithTransaction (const uint8_t *data, const size_t len, const uint32_t exparam=1)
 Read data within a transaction.
 
m5::hal::error::error_t writeWithTransaction (const uint8_t reg, const uint8_t *data, const size_t len, const uint32_t exparam=1)
 Read data within a transaction.
 
m5::hal::error::error_t writeWithTransaction (const uint16_t reg, const uint8_t *data, const size_t len, const uint32_t exparam=1)
 Read data within a transaction.
 
m5::hal::error::error_t generalCall (const uint8_t *data, const size_t len)
 Send a general call on the I2C bus.
 
GPIO RX pin operations
m5::hal::error::error_t pinModeRX (const gpio::Mode m)
 
m5::hal::error::error_t writeDigitalRX (const bool high)
 
m5::hal::error::error_t readDigitalRX (bool &high)
 
m5::hal::error::error_t writeAnalogRX (const uint16_t v)
 
m5::hal::error::error_t readAnalogRX (uint16_t &v)
 
m5::hal::error::error_t readAnalogMilliVoltsRX (uint32_t &mv)
 
m5::hal::error::error_t pulseInRX (uint32_t &duration, const int state, const uint32_t timeout_us)
 
GPIO TX pin operations
m5::hal::error::error_t pinModeTX (const gpio::Mode m)
 
m5::hal::error::error_t writeDigitalTX (const bool high)
 
m5::hal::error::error_t readDigitalTX (bool &high)
 
m5::hal::error::error_t writeAnalogTX (const uint16_t v)
 
m5::hal::error::error_t readAnalogTX (uint16_t &v)
 
m5::hal::error::error_t readAnalogMilliVoltsTX (uint32_t &mv)
 
m5::hal::error::error_t pulseInTX (uint32_t &duration, const int state, const uint32_t timeout_us)
 

Protected Member Functions

 Adapter (const Type t, Impl *impl)
 

Protected Attributes

std::unique_ptr< Impl_impl {}
 

Detailed Description

Adapter base class to treat M5HAL and TwoWire,GPIO,Serial,SPI... in the same way.

Member Enumeration Documentation

◆ Type

enum class m5::unit::Adapter::Type : uint8_t
strong

Adapter type.

Enumerator
Unknown 

Not yet assigned.

I2C 

I2C bus.

GPIO 

GPIO pins.

UART 

UART serial.

SPI 

SPI bus.

Member Function Documentation

◆ beginTransaction()

virtual void m5::unit::Adapter::beginTransaction ( )
inlinevirtual

Begin a bus transaction.

Reimplemented in m5::unit::AdapterSPI.

◆ duplicate()

virtual Adapter * m5::unit::Adapter::duplicate ( const uint8_t )
inlinevirtual

Create a duplicate adapter with a different address.

Reimplemented in m5::unit::AdapterI2C.

◆ endTransaction()

virtual void m5::unit::Adapter::endTransaction ( )
inlinevirtual

End a bus transaction.

Reimplemented in m5::unit::AdapterSPI.