|
HardFOC Core
API reference
|
CRTP transport bridging sfm::I2cInterface to a BaseI2c device.
More...
#include <SfmHandler.h>
Public Member Functions | |
| HalI2cSfmComm (BaseI2c &i2c_device) noexcept | |
| std::uint8_t | DeviceAddress () const noexcept |
Address configured on the bound BaseI2c device. | |
CRTP-required methods (static dispatch from sfm::I2cInterface) | |
| bool | Write (std::uint8_t addr7, const std::uint8_t *data, std::size_t len) noexcept |
| bool | Read (std::uint8_t addr7, std::uint8_t *out, std::size_t len) noexcept |
| void | DelayMs (std::uint32_t ms) noexcept |
| bool | EnsureInitialized () noexcept |
Private Attributes | |
| BaseI2c & | i2c_device_ |
| std::uint8_t | tx_scratch_ [8] {} |
| std::uint8_t | rx_scratch_ [18] {} |
CRTP transport bridging sfm::I2cInterface to a BaseI2c device.
SF06 parts use raw command writes and raw multi-byte reads (no register byte). The adapter validates the driver's 7-bit address against the device's configured address, frames through member scratch buffers (internal SRAM, not task stack), and maps a NACKed read to false so the driver can report NoData.
BaseI2c; it must outlive the adapter.
|
explicitnoexcept |
|
noexcept |
|
noexcept |
Address configured on the bound BaseI2c device.
|
noexcept |
|
noexcept |
|
noexcept |
|
private |
|
private |
|
private |