#pragma once //standard library includes #include #include #include #include //esp-idf includes #include "driver/gpio.h" #include "esp_rom_gpio.h" #include "driver/spi_common.h" #include "driver/spi_master.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/semphr.h" #include "esp_log.h" #include "esp_timer.h" #include "rom/ets_sys.h" /// @brief SHTP protocol channels enum channels_t { CHANNEL_COMMAND, CHANNEL_EXECUTABLE, CHANNEL_CONTROL, CHANNEL_REPORTS, CHANNEL_WAKE_REPORTS, CHANNEL_GYRO }; /// @brief Sensor accuracy returned during sensor calibration enum sensor_accuracy_t { LOW_ACCURACY = 1, MED_ACCURACY, HIGH_ACCURACY }; /// @brief IMU configuration settings passed into constructor typedef struct bno08x_config_t { spi_host_device_t spi_peripheral; ///