19#include "driver/i2c.h"
24 sfDevFPC2534I2C_Helper() : _i2cBusNumber{0}, _isInitialized{false}, _pendingStop{false}, _timeOutMillis{50}
29 _i2cBusNumber = i2cBusNumber;
30 _isInitialized =
true;
44 esp_err_t err = ESP_OK;
45 uint8_t buffer[256] = {0};
49 i2c_cmd_handle_t handle = i2c_cmd_link_create_static(buffer,
sizeof(buffer));
53 err = i2c_master_read(handle, (uint8_t *)data, len, I2C_MASTER_LAST_NACK);
57 i2c_master_stop(handle);
58 err = i2c_master_cmd_begin((i2c_port_t)_i2cBusNumber, handle, _timeOutMillis / portTICK_PERIOD_MS);
65 i2c_cmd_link_delete_static(handle);
81 esp_err_t err = ESP_OK;
82 uint8_t buffer[256] = {0};
86 i2c_cmd_handle_t handle = i2c_cmd_link_create_static(buffer,
sizeof(buffer));
93 i2c_master_stop(handle);
94 err = i2c_master_cmd_begin((i2c_port_t)_i2cBusNumber, handle, _timeOutMillis / portTICK_PERIOD_MS);
95 i2c_cmd_link_delete_static(handle);
96 handle = i2c_cmd_link_create_static(buffer,
sizeof(buffer));
102 err = i2c_master_start(handle);
106 err = i2c_master_write_byte(handle, device_address << 1 | I2C_MASTER_READ,
true);
110 err = i2c_master_read(handle, (uint8_t *)&theSize,
sizeof(theSize), I2C_MASTER_ACK);
114 err = i2c_master_cmd_begin((i2c_port_t)_i2cBusNumber, handle, _timeOutMillis / portTICK_PERIOD_MS);
123 i2c_cmd_link_delete_static(handle);
129 uint8_t _i2cBusNumber;
132 uint16_t _timeOutMillis;
Definition: sfDevFPC2534I2C.h:28
virtual uint16_t readPayload(size_t len, uint8_t *data)=0
virtual void initialize(uint8_t i2cBusNumber)=0
virtual uint16_t readTransferSize(uint8_t device_address)=0