AceWire  0.4.0
Unified interface for selecting different I2C implementations on Arduino platforms
Public Member Functions | List of all members
ace_wire::ThexenoWireInterface< T_WIRE > Class Template Reference

A thin wrapper around the TwoWire class from the https://github.com/thexeno/HardWire-Arduino-Library project so that it becomes compatible with the AceWire API. More...

#include <ThexenoWireInterface.h>

Public Member Functions

 ThexenoWireInterface (T_WIRE &wire)
 Constructor. More...
 
void begin () const
 Initialize the interface. More...
 
void end () const
 End the interface. More...
 
uint8_t beginTransmission (uint8_t addr) const
 Prepare the write buffer to accept a sequence of data, and save the addr for transmission when endTransmission() is called. More...
 
uint8_t write (uint8_t data) const
 Write data into the write buffer. More...
 
uint8_t endTransmission (bool sendStop=true) const
 Send the data in the buffer, with a STOP condition if sendStop is true. More...
 
uint8_t requestFrom (uint8_t addr, uint8_t quantity, bool sendStop=true) const
 Read bytes from the slave and store in buffer owned by TwoWire and send a STOP condition if sendStop is true. More...
 
uint8_t read () const
 Read byte from the TwoWire receive buffer.
 
 ThexenoWireInterface (const ThexenoWireInterface &)=default
 
ThexenoWireInterfaceoperator= (const ThexenoWireInterface &)=default
 

Detailed Description

template<typename T_WIRE>
class ace_wire::ThexenoWireInterface< T_WIRE >

A thin wrapper around the TwoWire class from the https://github.com/thexeno/HardWire-Arduino-Library project so that it becomes compatible with the AceWire API.

The HardWire library uses a TX buffer and an RX buffer of 32 bytes each.

Template Parameters
T_WIREunderlying I2C class which will always be TwoWire

Definition at line 41 of file ThexenoWireInterface.h.

Constructor & Destructor Documentation

◆ ThexenoWireInterface()

template<typename T_WIRE >
ace_wire::ThexenoWireInterface< T_WIRE >::ThexenoWireInterface ( T_WIRE &  wire)
inlineexplicit

Constructor.

Parameters
wireinstance of HardWire

Definition at line 47 of file ThexenoWireInterface.h.

Member Function Documentation

◆ begin()

template<typename T_WIRE >
void ace_wire::ThexenoWireInterface< T_WIRE >::begin ( ) const
inline

Initialize the interface.

Currently does nothing.

Definition at line 50 of file ThexenoWireInterface.h.

◆ beginTransmission()

template<typename T_WIRE >
uint8_t ace_wire::ThexenoWireInterface< T_WIRE >::beginTransmission ( uint8_t  addr) const
inline

Prepare the write buffer to accept a sequence of data, and save the addr for transmission when endTransmission() is called.

Returns
always returns 0 to indicate success because the addr is simply written into a buffer

Definition at line 62 of file ThexenoWireInterface.h.

◆ end()

template<typename T_WIRE >
void ace_wire::ThexenoWireInterface< T_WIRE >::end ( ) const
inline

End the interface.

Currently does nothing.

Definition at line 53 of file ThexenoWireInterface.h.

◆ endTransmission()

template<typename T_WIRE >
uint8_t ace_wire::ThexenoWireInterface< T_WIRE >::endTransmission ( bool  sendStop = true) const
inline

Send the data in the buffer, with a STOP condition if sendStop is true.

Returns the value returned by the underlying TwoWire::endTransmission() method, which returns the values documented in the twi_writeTo() function:

  • 0: success
  • 1: length too long for buffer
  • 2: address send, NACK received
  • 3: data send, NACK received
  • 4: other twi error (lost bus arbitration, bus error, ..)

Definition at line 89 of file ThexenoWireInterface.h.

◆ requestFrom()

template<typename T_WIRE >
uint8_t ace_wire::ThexenoWireInterface< T_WIRE >::requestFrom ( uint8_t  addr,
uint8_t  quantity,
bool  sendStop = true 
) const
inline

Read bytes from the slave and store in buffer owned by TwoWire and send a STOP condition if sendStop is true.

Parameters
addrI2C address
quantitynumber of bytes to read
sendStopwhether the STOP condition should be sent at end
Returns
the value returned by the underlying T_WIRE::requestFrom() method, which will normally be 'quantity'

Definition at line 104 of file ThexenoWireInterface.h.

◆ write()

template<typename T_WIRE >
uint8_t ace_wire::ThexenoWireInterface< T_WIRE >::write ( uint8_t  data) const
inline

Write data into the write buffer.

Returns
the number of bytes written into buffer, will always be 1.

Definition at line 72 of file ThexenoWireInterface.h.


The documentation for this class was generated from the following file: