#pragma once #include #include #include #include "lvgl.h" #include "hal/i2c/I2c.h" namespace tt::app::i2cscanner { #define TAG "i2cscanner" enum ScanState { ScanStateInitial, ScanStateScanning, ScanStateStopped }; struct Data { // Core Mutex mutex = Mutex(MutexTypeRecursive); Thread* _Nullable scanThread = nullptr; // State ScanState scanState; i2c_port_t port = I2C_NUM_0; std::vector scannedAddresses; // Widgets lv_obj_t* scanButtonLabelWidget = nullptr; lv_obj_t* portDropdownWidget = nullptr; lv_obj_t* scanListWidget = nullptr; }; void onThreadFinished(Data* data); }