10static const char *
const TAG =
"tof10120";
11static const uint8_t TOF10120_READ_DISTANCE_CMD[] = {0x00};
12static const uint8_t TOF10120_DEFAULT_DELAY = 30;
14static const uint8_t TOF10120_DIR_SEND_REGISTER = 0x0e;
15static const uint8_t TOF10120_DISTANCE_REGISTER = 0x00;
17static const uint16_t TOF10120_OUT_OF_RANGE_VALUE = 2000;
20 LOG_SENSOR(
"",
"TOF10120",
this);
21 LOG_UPDATE_INTERVAL(
this);
28 if (!this->
write_bytes(TOF10120_DISTANCE_REGISTER, TOF10120_READ_DISTANCE_CMD,
sizeof(TOF10120_READ_DISTANCE_CMD))) {
29 ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
39 delay(TOF10120_DEFAULT_DELAY);
41 ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
46 uint32_t distance_mm = (data[0] << 8) | data[1];
47 ESP_LOGI(TAG,
"Data read: %" PRIu32
"mm", distance_mm);
49 if (distance_mm == TOF10120_OUT_OF_RANGE_VALUE) {
50 ESP_LOGW(TAG,
"Distance measurement out of range");
void status_set_warning()
void status_clear_warning()
ErrorCode write(const uint8_t *data, size_t len) const
writes an array of bytes to a device using an I2CBus
ErrorCode read(uint8_t *data, size_t len) const
reads an array of bytes from the device using an I2CBus
bool write_bytes(uint8_t a_register, const uint8_t *data, uint8_t len) const
void publish_state(float state)
Publish a new state to the front-end.
void dump_config() override
@ ERROR_OK
No error found during execution of method.
void HOT delay(uint32_t ms)