![]() |
SparkFun Toolkit
v1.0.5-6-g34ffa30
Core Functionality Library
|
The sfTkArdI2C implements an sfTkII2C interface, defining the Arduino implementation for I2C in the Toolkit. More...
#include <sfTkArdI2C.h>
Public Member Functions | |
sfTkArdI2C (void) | |
Constructor. More... | |
sfTkArdI2C (uint8_t addr) | |
Constructor. More... | |
sfTkArdI2C (sfTkArdI2C const &rhs) | |
copy constructor More... | |
sfTkArdI2C & | operator= (const sfTkArdI2C &rhs) |
Copy assignment. More... | |
sfTkError_t | init () |
Method sets up the required I2C settings. More... | |
sfTkError_t | init (uint8_t addr) |
| |
sfTkError_t | init (TwoWire &wirePort, uint8_t addr, bool bInit=false) |
Method sets up the required I2C settings. More... | |
sfTkError_t | ping () |
A simple ping of the device at the given address. More... | |
sfTkError_t | writeRegister (uint8_t *devReg, size_t regLength, const uint8_t *data, size_t length) |
Writes data to a specified register on an I2C device. More... | |
sfTkError_t | readRegister (uint8_t *devReg, size_t regLength, uint8_t *data, size_t numBytes, size_t &readBytes, uint32_t read_delay=0) |
Reads data from a specified register of an I2C device. More... | |
void | setBufferChunkSize (size_t theChunk) |
set the buffer chunk size More... | |
size_t | bufferChunkSize (void) |
set the buffer chunk size More... | |
virtual sfTkError_t | readRegister (uint8_t *devReg, size_t regLength, uint8_t *data, size_t numBytes, size_t &readBytes, uint32_t read_delay=0)=0 |
Reads an array of bytes to a register on the target address. Supports any address size. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint8_t &data) |
Read a single byte from the given register. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint16_t &data) |
Read a single word (16 bit) from the given register. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint32_t &data) |
Read a 32 bit value from the given register. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint8_t *data, size_t numBytes, size_t &readBytes) |
Reads data from a specified register. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint8_t &value) |
Overloaded function to read a 8-bit value from the given 16-bit register address. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint16_t &value) |
Overloaded function to read a 16-bit value from the given 16-bit register address. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint32_t &value) |
Overloaded function to read a 32-bit value from the given 16-bit register address. More... | |
sfTkError_t | readRegister (uint16_t devReg, uint8_t *data, size_t numBytes, size_t &readBytes) |
Reads a specified number of bytes from a given register with a 16bit address. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint16_t *data, size_t length, size_t &read16) |
Reads a 16-bit block of data from the given 16-bit register address. More... | |
virtual sfTkError_t | writeRegister (uint8_t *devReg, size_t regLength, const uint8_t *data, size_t length)=0 |
Writes an array of bytes to a register on the target address. Supports any address size. More... | |
sfTkError_t | writeRegister (uint8_t devReg, uint8_t data) |
Write a single byte (8 bit) to the given register. More... | |
virtual sfTkError_t | writeRegister (uint8_t devReg, const uint16_t data) |
Write a single word (16 bit) to the given register. More... | |
virtual sfTkError_t | writeRegister (uint8_t devReg, const uint32_t data) |
Writes a 32-bit data value to a specified device register. More... | |
virtual sfTkError_t | writeRegister (uint8_t devReg, const uint8_t *data, size_t length) |
Writes a number of bytes starting at the given register's address. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint8_t *data, size_t length) |
Writes a number of bytes starting at the given register's 16-bit address. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint8_t data) |
Writes a 8-bit data value to a specified device register. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint16_t data) |
Writes a 16-bit data value to a specified device 16bit register. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint32_t data) |
Writes a 32-bit data value to a specified device register. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint16_t *data, size_t length) |
Writes a number of uint16's starting at the given register's 16-bit address. More... | |
![]() | |
sfTkII2C () | |
Constructor for the I2C bus. More... | |
sfTkII2C (uint8_t addr) | |
Constructor for the I2C bus with an address passed in. More... | |
virtual sfTkError_t | ping ()=0 |
A simple ping of the device at the set address. More... | |
virtual void | setAddress (uint8_t devAddr) |
setter for the I2C address More... | |
virtual uint8_t | address (void) |
getter for the I2C address More... | |
virtual void | setStop (bool stop) |
setter for I2C stop message (vs restarts) More... | |
virtual bool | stop (void) |
getter for I2C stops message (vs restarts) More... | |
virtual uint8_t | type (void) |
Get the type of the object. More... | |
![]() | |
sfTkIBus () | |
Constructor. More... | |
virtual sfTkError_t | writeRegister (uint8_t *devReg, size_t regLength, const uint8_t *data, size_t length)=0 |
Writes an array of bytes to a register on the target address. Supports any address size. More... | |
virtual sfTkError_t | writeData (uint8_t data) |
Writes a 8-bit data value. More... | |
sfTkError_t | writeUInt8 (uint8_t data) |
Writes a 8-bit data value. More... | |
virtual sfTkError_t | writeData (uint16_t data) |
Send a 16 bit value to the device. More... | |
sfTkError_t | writeUInt16 (uint16_t data) |
Send a 16 bit value to the device. More... | |
virtual sfTkError_t | writeData (uint32_t data) |
Writes a 32-bit data value. More... | |
sfTkError_t | writeUInt32 (uint32_t data) |
Writes a 32-bit data value. More... | |
virtual sfTkError_t | writeData (const uint8_t *data, size_t length) |
Writes an array. More... | |
sfTkError_t | writeRegister (uint8_t devReg, uint8_t data) |
Write a single byte (8 bit) to the given register. More... | |
sfTkError_t | writeRegisterUInt8 (uint8_t reg, uint8_t data) |
Write a single byte (8 bit) to the given register. More... | |
virtual sfTkError_t | writeRegister (uint8_t devReg, const uint16_t data) |
Write a single word (16 bit) to the given register. More... | |
sfTkError_t | writeRegisterUInt16 (uint8_t reg, uint16_t data) |
Write a single word (16 bit) to the given register. More... | |
virtual sfTkError_t | writeRegister (uint8_t devReg, const uint32_t data) |
Writes a 32-bit data value to a specified device register. More... | |
sfTkError_t | writeRegisterUInt32 (uint8_t reg, uint32_t data) |
Writes a 32-bit data value to a specified device register. More... | |
virtual sfTkError_t | writeRegister (uint8_t devReg, const uint8_t *data, size_t length) |
Writes a number of bytes starting at the given register's address. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint8_t *data, size_t length) |
Writes a number of bytes starting at the given register's 16-bit address. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint8_t data) |
Writes a 8-bit data value to a specified device register. More... | |
sfTkError_t | writeRegisterUInt8 (uint16_t reg, const uint8_t data) |
Writes a 8-bit data value to a specified device register. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint16_t data) |
Writes a 16-bit data value to a specified device 16bit register. More... | |
sfTkError_t | writeRegisterUInt16 (uint16_t reg, const uint16_t data) |
Writes a 16-bit data value to a specified device 16bit register. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint32_t data) |
Writes a 32-bit data value to a specified device register. More... | |
sfTkError_t | writeRegisterUInt32 (uint16_t reg, const uint32_t data) |
Writes a 32-bit data value to a specified device register. More... | |
virtual sfTkError_t | writeRegister (uint16_t devReg, const uint16_t *data, size_t length) |
Writes a number of uint16's starting at the given register's 16-bit address. More... | |
virtual sfTkError_t | readRegister (uint8_t *devReg, size_t regLength, uint8_t *data, size_t numBytes, size_t &readBytes, uint32_t read_delay=0)=0 |
Reads an array of bytes to a register on the target address. Supports any address size. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint8_t &data) |
Read a single byte from the given register. More... | |
sfTkError_t | readRegisterUInt8 (uint8_t devReg, uint8_t &data) |
Read a single byte from the given register. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint16_t &data) |
Read a single word (16 bit) from the given register. More... | |
sfTkError_t | readRegisterUInt16 (uint8_t devReg, uint16_t &data) |
Read a single word (16 bit) from the given register. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint32_t &data) |
Read a 32 bit value from the given register. More... | |
sfTkError_t | readRegisterUInt32 (uint8_t devReg, uint32_t &data) |
Read a 32 bit value from the given register. More... | |
virtual sfTkError_t | readRegister (uint8_t devReg, uint8_t *data, size_t numBytes, size_t &readBytes) |
Reads data from a specified register. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint8_t &value) |
Overloaded function to read a 8-bit value from the given 16-bit register address. More... | |
sfTkError_t | readRegisterUInt8 (uint16_t devReg, uint8_t &data) |
Overloaded function to read a 8-bit value from the given 16-bit register address. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint16_t &value) |
Overloaded function to read a 16-bit value from the given 16-bit register address. More... | |
sfTkError_t | readRegisterUInt16 (uint16_t devReg, uint16_t &data) |
Overloaded function to read a 16-bit value from the given 16-bit register address. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint32_t &value) |
Overloaded function to read a 32-bit value from the given 16-bit register address. More... | |
sfTkError_t | readRegisterUInt32 (uint16_t devReg, uint32_t &data) |
Overloaded function to read a 32-bit value from the given 16-bit register address. More... | |
sfTkError_t | readRegister (uint16_t devReg, uint8_t *data, size_t numBytes, size_t &readBytes) |
Reads a specified number of bytes from a given register with a 16bit address. More... | |
virtual sfTkError_t | readRegister (uint16_t reg, uint16_t *data, size_t length, size_t &read16) |
Reads a 16-bit block of data from the given 16-bit register address. More... | |
virtual uint8_t | type (void) |
Get the type of the object. More... | |
void | setByteOrder (sfTkByteOrder order) |
Set the byte order for multi-byte data transfers. More... | |
sfTkByteOrder | byteOrder (void) |
Get the current byte order. More... | |
Protected Attributes | |
TwoWire * | _i2cPort |
![]() | |
sfTkByteOrder | _byteOrder |
Additional Inherited Members | |
![]() | |
static constexpr uint8_t | kNoAddress = 0 |
kNoAddress is a constant to indicate no address has been set More... | |
The sfTkArdI2C implements an sfTkII2C interface, defining the Arduino implementation for I2C in the Toolkit.
|
inline |
Constructor.
|
inline |
Constructor.
addr | The address of the device |
|
inline |
copy constructor
|
inline |
set the buffer chunk size
The | current chunk size |
sfTkError_t sfTkArdI2C::init | ( | void | ) |
Method sets up the required I2C settings.
Initializes the I2C communication with the currently set address.
ksfTkErrOk | on successful execution. |
This function initializes the I2C communication by calling the init function with the address that is currently set for the I2C device.
sfTkError_t sfTkArdI2C::init | ( | TwoWire & | wirePort, |
uint8_t | addr, | ||
bool | bInit = false |
||
) |
Method sets up the required I2C settings.
Initializes the I2C communication for the sfTkArdI2C object.
wirePort | Port for I2C communication. |
addr | The address of the device |
bInit | This flag tracks whether the bus has been initialized. |
ksfTkErrOk | on successful execution. |
This function sets up the I2C communication by assigning the provided TwoWire object to the internal _i2cPort pointer. If the I2C port is not already set, it will use the provided wirePort and optionally initialize it by calling its begin() method. It also sets the I2C address for communication.
wirePort | Reference to a TwoWire object representing the I2C port. |
addr | The I2C address to be used for communication. |
bInit | Boolean flag indicating whether to initialize the I2C port by calling its begin() method. If true, begin() will be called. |
sfTkError_t sfTkArdI2C::init | ( | uint8_t | addr | ) |
Initializes the I2C communication with the specified address.
addr | The address of the device |
This function initializes the I2C communication for the device. If no I2C port is specified, it defaults to using the Wire library. If an I2C port is already specified, it assumes the initialization is already done.
addr | The I2C address of the device. |
|
inline |
Copy assignment.
rhs | right hand side of the assignment |
|
virtual |
A simple ping of the device at the given address.
Pings the I2C device to check if it is responsive.
ksfTkErrOk | on success, |
This function attempts to initiate a transmission to the I2C device and checks if the device acknowledges the transmission. It can be used to verify that the device is properly connected and responsive.
Implements sfTkII2C.
|
inline |
Reads a specified number of bytes from a given register with a 16bit address.
This function reads data from a 16-bit register and stores it in the provided buffer.
devReg | The 16-bit register address to read from. Byteswapped if needed. |
data | Pointer to the buffer where the read data will be stored. |
numBytes | The number of bytes to read from the register. |
readBytes | Reference to a variable where the number of bytes actually read will be stored. |
|
inlinevirtual |
Overloaded function to read a 16-bit value from the given 16-bit register address.
This function reads a 16-bit value from the specified 16-bit register address.
reg | The device's 16-bit register's address. The address is byteswapped if needed. | |
[out] | value | The 16-bit value read from the register. The value is byte swapped if needed. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Reads a 16-bit block of data from the given 16-bit register address.
reg | The device's 16 bit register's address. Byteswapped if needed | |
data | Data area to read into - byteswapped if needed | |
length | - length of data (16 bit element count) | |
[out] | read16 | - number of 16 bit words read |
int | returns ksfTkErrOk on success, or ksfTkErrFail code |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Overloaded function to read a 32-bit value from the given 16-bit register address.
This function reads a 32-bit value from the specified 16-bit register address.
reg | The device's 16-bit register's address. The address is byteswapped if needed. | |
[out] | value | The 32-bit value read from the register. The value is byte swapped if needed. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Overloaded function to read a 8-bit value from the given 16-bit register address.
This function reads a 8-bit value from the specified 16-bit register address.
reg | The device's 16-bit register's address. The address is byteswapped if needed | |
[out] | value | The 8-bit value read from the register. |
Reimplemented from sfTkIBus.
|
virtual |
Reads data from a specified register of an I2C device.
Reads an array of bytes to a register on the target address. Supports any address size.
devReg | Pointer to the register address to read from. |
regLength | Length of the register address. |
data | Pointer to the buffer where the read data will be stored. |
numBytes | Number of bytes to read from the register. |
readBytes | Reference to a variable where the number of bytes actually read will be stored. |
read_delay | After sending the address, delay in milliseconds before reading the data |
devReg | The device's register's address - can be any size |
regLength | The length of the register address |
data | The data to buffer to read into |
numBytes | The length of the data buffer |
readBytes[out] | The number of bytes read |
read_delay | After sending the address, delay in milliseconds before reading the data |
Implements sfTkIBus.
|
virtual |
Reads an array of bytes to a register on the target address. Supports any address size.
devReg | The device's register's address - can be any size |
regLength | The length of the register address |
data | The data to buffer to read into |
numBytes | The length of the data buffer |
readBytes[out] | The number of bytes read |
read_delay | After sending the address, delay in milliseconds before reading the data |
Implements sfTkIBus.
|
inlinevirtual |
Read a single word (16 bit) from the given register.
devReg | The device's register's address. |
data | Data to read.– the data value is byteswapped if needed |
sfTkError_t | - ksfTkErrOk on successful execution. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Read a 32 bit value from the given register.
devReg | The device's register's address. |
data | Data to read. The data value is byteswapped if needed |
sfTkError_t | - ksfTkErrOk on successful execution. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Read a single byte from the given register.
devReg | The device's register's address. |
data | Data to read. |
sfTkError_t | - ksfTkErrOk on successful execution. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Reads data from a specified register.
This function reads a specified number of bytes from a given register and stores the data in the provided buffer.
devReg | The register address to read from. |
data | Pointer to the buffer where the read data will be stored. |
numBytes | The number of bytes to read from the register. |
readBytes | Reference to a variable where the number of bytes actually read will be stored. |
Reimplemented from sfTkIBus.
|
inline |
set the buffer chunk size
theChunk | the new size - must be > 0 |
|
inlinevirtual |
Writes a number of uint16's starting at the given register's 16-bit address.
devReg | The device's register's address. |
data | 16 bit Data to write. This value is byteswapped if the byteorder set is different than the systems byteorder |
length | - length of data |
sfTkError_t | ksfTkErrOk on successful execution |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Writes a 16-bit data value to a specified device 16bit register.
This function writes a 16-bit data value to a specified device register. If the system byte order differs from the byte order expected by the device, the data value is byte-swapped before being written.
devReg | The 16 bit register address to write to. |
data | The 16-bit data value to write. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Writes a 32-bit data value to a specified device register.
This function writes a 32-bit data value to a specified device register. If the system byte order differs from the byte order expected by the device, the data value is byte-swapped before being written.
devReg | The register address to write to. |
data | The 32-bit data value to write. This value is byteswapped if the byteorder set is different that the systems byteorder |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Writes a number of bytes starting at the given register's 16-bit address.
devReg | The device's register's 16 bit address. If the byteorder is different than the systems, the address is byteswapped |
data | Data to write. |
length | - length of data |
sfTkError_t | ksfTkErrOk on successful execution |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Writes a 8-bit data value to a specified device register.
This function writes a 16-bit data value to a specified device register. If the system byte order differs from the byte order expected by the device, the data value is byte-swapped before being written.
devReg | The device's register's 16 bit address. If the byteorder is different than the systems, the address is byteswapped |
data | The 8-bit data value to write. |
Reimplemented from sfTkIBus.
|
virtual |
Writes data to a specified register on an I2C device.
Writes an array of bytes to a register on the target address. Supports any address size.
devReg | Pointer to the register address on the I2C device. |
regLength | Length of the register address in bytes. |
data | Pointer to the data to be written to the register. |
length | Length of the data to be written in bytes. |
devReg | The device's register's address - can be any size |
regLength | The length of the register address |
data | The data to write |
length | The length of the data buffer |
Implements sfTkIBus.
|
virtual |
Writes an array of bytes to a register on the target address. Supports any address size.
devReg | The device's register's address - can be any size, If nullptr, address is not sent |
regLength | The length of the register address. If 0, address is not sent |
data | The data to write |
length | The length of the data buffer |
Implements sfTkIBus.
|
inlinevirtual |
Write a single word (16 bit) to the given register.
devReg | The device's register's address. |
data | Data to write. Note - if byte order differs, swap the data before writing. |
sfTkError_t | - ksfTkErrOk on successful execution. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Writes a 32-bit data value to a specified device register.
This function writes a 32-bit data value to a specified device register. If the system byte order differs from the byte order expected by the device, the data value is byte-swapped before being written.
devReg | The register address to write to. |
data | The 32-bit data value to write. |
Reimplemented from sfTkIBus.
|
inlinevirtual |
Writes a number of bytes starting at the given register's address.
devReg | The device's register's address. |
data | Data to write. |
length | - length of data |
sfTkError_t | ksfTkErrOk on successful execution |
Reimplemented from sfTkIBus.
|
inline |
Write a single byte (8 bit) to the given register.
devReg | The device's register's address. |
data | Data to write. Note - if byte order differs, swap the data before writing. |
sfTkError_t | - ksfTkErrOk on successful execution. |
|
protected |
The actual Arduino i2c port