C/C++ API Reference
Loading...
Searching...
No Matches
pw::i2c::RegisterDevice Class Reference

Overview

The common interface for I2C register devices. Contains methods to help read and write the device's registers.

Warning
This interface assumes that you know how to consult your device's datasheet to determine correct address sizes, data sizes, endianness, etc.
Inheritance diagram for pw::i2c::RegisterDevice:
pw::i2c::Device

Public Member Functions

constexpr RegisterDevice (Initiator &initiator, Address address, endian register_address_order, endian data_order, RegisterAddressSize register_address_size)
 
constexpr RegisterDevice (Initiator &initiator, Address address, endian order, RegisterAddressSize register_address_size)
 
Status WriteRegisters (uint32_t register_address, ConstByteSpan register_data, ByteSpan buffer, chrono::SystemClock::duration timeout)
 
Status WriteRegisters8 (uint32_t register_address, span< const uint8_t > register_data, ByteSpan buffer, chrono::SystemClock::duration timeout)
 
Status WriteRegisters16 (uint32_t register_address, span< const uint16_t > register_data, ByteSpan buffer, chrono::SystemClock::duration timeout)
 
Status WriteRegisters32 (uint32_t register_address, span< const uint32_t > register_data, ByteSpan buffer, chrono::SystemClock::duration timeout)
 
Status ReadRegisters (uint32_t register_address, ByteSpan return_data, chrono::SystemClock::duration timeout)
 
Status ReadRegisters8 (uint32_t register_address, span< uint8_t > return_data, chrono::SystemClock::duration timeout)
 
Status ReadRegisters16 (uint32_t register_address, span< uint16_t > return_data, chrono::SystemClock::duration timeout)
 
Status ReadRegisters32 (uint32_t register_address, span< uint32_t > return_data, chrono::SystemClock::duration timeout)
 
Status WriteRegister (uint32_t register_address, std::byte register_data, chrono::SystemClock::duration timeout)
 
Status WriteRegister8 (uint32_t register_address, uint8_t register_data, chrono::SystemClock::duration timeout)
 
Status WriteRegister16 (uint32_t register_address, uint16_t register_data, chrono::SystemClock::duration timeout)
 
Status WriteRegister32 (uint32_t register_address, uint32_t register_data, chrono::SystemClock::duration timeout)
 
Result< std::byte > ReadRegister (uint32_t register_address, chrono::SystemClock::duration timeout)
 
Result< uint8_t > ReadRegister8 (uint32_t register_address, chrono::SystemClock::duration timeout)
 
Result< uint16_t > ReadRegister16 (uint32_t register_address, chrono::SystemClock::duration timeout)
 
Result< uint32_t > ReadRegister32 (uint32_t register_address, chrono::SystemClock::duration timeout)
 
- Public Member Functions inherited from pw::i2c::Device
constexpr Device (Initiator &initiator, Address device_address)
 
 Device (const Device &)=delete
 
 Device (Device &&)=default
 
Status TransferFor (span< const Message > messages, chrono::SystemClock::duration timeout)
 Wraps pw::i2c::Initiator::TransferFor.
 
Status WriteReadFor (ConstByteSpan tx_buffer, ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
 Wraps pw::i2c::Initiator::WriteReadFor.
 
Status WriteReadFor (const void *tx_buffer, size_t tx_size_bytes, void *rx_buffer, size_t rx_size_bytes, chrono::SystemClock::duration timeout)
 
Status WriteFor (ConstByteSpan tx_buffer, chrono::SystemClock::duration timeout)
 Wraps pw::i2c::Initiator::WriteFor.
 
Status WriteFor (const void *tx_buffer, size_t tx_size_bytes, chrono::SystemClock::duration timeout)
 
Status ReadFor (ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
 Wraps pw::i2c::Initiator::ReadFor.
 
Status ReadFor (void *rx_buffer, size_t rx_size_bytes, chrono::SystemClock::duration timeout)
 
Status ProbeFor (chrono::SystemClock::duration timeout)
 Wraps pw::i2c::Initiator::ProbeDeviceFor.
 

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