39 const std::span<const I2CPortHardwareConfig_preset>
presets;
60 bool transmitMaster(
I2CDevice* device,
const uint16_t addr,uint8_t* pData,
const uint16_t size,
const uint32_t timeout,
bool shiftAddr =
true);
64 bool receiveMaster(
I2CDevice* device,
const uint16_t addr,uint8_t* pData,
const uint16_t size,
const uint32_t timeout,
bool shiftAddr =
true);
66 bool receiveMasterIT(
I2CDevice* device,
const uint16_t addr,uint8_t* pData,
const uint16_t size,
bool shiftAddr =
true);
68 bool writeMem(
I2CDevice* device,
const uint16_t devAddr,
const uint16_t memAddr,
const uint16_t memAddSize,uint8_t* pData,
const uint16_t size,
const uint32_t timeout,
bool shiftAddr =
true);
69 bool readMem(
I2CDevice* device,
const uint16_t devAddr,
const uint16_t memAddr,
const uint16_t memAddSize,uint8_t* pData,
const uint16_t size,
const uint32_t timeout,
bool shiftAddr =
true);
70 bool readMemIT(
I2CDevice* device,
const uint16_t devAddr,
const uint16_t memAddr,
const uint16_t memAddSize,uint8_t* pData,
const uint16_t size,
bool shiftAddr =
true);
71 bool writeMemIT(
I2CDevice* device,
const uint16_t devAddr,
const uint16_t memAddr,
const uint16_t memAddSize,uint8_t* pData,
const uint16_t size,
bool shiftAddr =
true);
73 bool isDeviceReady(
I2CDevice* device,
const uint16_t devAddr,
const uint32_t trials,uint32_t timeout,
bool shiftAddr =
true);
virtual void i2cError(I2CPort *port)
virtual void i2cTxCompleted(I2CPort *port)
virtual void i2cRxCompleted(I2CPort *port)
virtual void startI2CTransfer(I2CPort *port)
virtual void endI2CTransfer(I2CPort *port)
const std::span< const I2CPortHardwareConfig_preset > presets
I2CPortHardwareConfig_preset getPreset(uint8_t idx) const
const bool canChangeSpeed
constexpr I2CPortHardwareConfig(const bool canChangeSpeed, std::span< const I2CPortHardwareConfig_preset > presets_list)
bool writeMemIT(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, bool shiftAddr=true)
cpp_freertos::BinarySemaphore semaphore
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
const I2CPortHardwareConfig & presets
void I2cError(I2C_HandleTypeDef *hi2c)
bool isDeviceReady(I2CDevice *device, const uint16_t devAddr, const uint32_t trials, uint32_t timeout, bool shiftAddr=true)
const ClassIdentifier getInfo()
Command handlers always have class infos. Works well with ChoosableClass.
bool transmitMasterDMA(I2CDevice *device, const uint16_t addr, uint8_t *pData, const uint16_t size, bool shiftAddr=true)
bool receiveMasterIT(I2CDevice *device, const uint16_t addr, uint8_t *pData, const uint16_t size, bool shiftAddr=true)
bool receiveMaster(I2CDevice *device, const uint16_t addr, uint8_t *pData, const uint16_t size, const uint32_t timeout, bool shiftAddr=true)
bool transmitMaster(I2CDevice *device, const uint16_t addr, uint8_t *pData, const uint16_t size, const uint32_t timeout, bool shiftAddr=true)
bool readMem(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, const uint32_t timeout, bool shiftAddr=true)
void freePort(I2CDevice *device)
bool readMemIT(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, bool shiftAddr=true)
I2CPort(I2C_HandleTypeDef &hi2c, const I2CPortHardwareConfig &presets, uint8_t instance=0)
void I2cTxCplt(I2C_HandleTypeDef *hi2c)
void takePort(I2CDevice *device)
void I2cRxCplt(I2C_HandleTypeDef *hi2c)
static ClassIdentifier info
bool writeMem(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, const uint32_t timeout, bool shiftAddr=true)
void configurePort(I2C_InitTypeDef *config)
void setSpeedPreset(uint8_t preset)
const ClassType getClassType() override
bool receiveMasterDMA(I2CDevice *device, const uint16_t addr, uint8_t *pData, const uint16_t size, bool shiftAddr=true)
I2CDevice * currentDevice
bool transmitMasterIT(I2CDevice *device, const uint16_t addr, uint8_t *pData, const uint16_t size, bool shiftAddr=true)