- WiFi Connect app is now hidden by default, but accessible at the bottom of the WiFi Manage app when WiFi is turned on. - WiFi service now turns on WiFi when calling connect() and WiFi is not on. - Removed `blocking` option for `service::loader::startApp()`. This feature was unused and complex. - Various apps: Moved private headers into Private/ folder. - Various apps: created start() function for easy starting. - Added documentation to all TactilityC APIs - Refactored various `enum` into `class enum` - Refactor M5Stack `initBoot()` (but VBus is still 0V for some reason)
38 lines
751 B
C++
38 lines
751 B
C++
#pragma once
|
|
|
|
#include <TactilityCore.h>
|
|
#include <Mutex.h>
|
|
#include <Thread.h>
|
|
#include "lvgl.h"
|
|
#include "hal/i2c/I2c.h"
|
|
#include "Timer.h"
|
|
#include <memory>
|
|
|
|
namespace tt::app::i2cscanner {
|
|
|
|
#define TAG "i2cscanner"
|
|
|
|
enum ScanState {
|
|
ScanStateInitial,
|
|
ScanStateScanning,
|
|
ScanStateStopped
|
|
};
|
|
|
|
struct Data {
|
|
// Core
|
|
Mutex mutex = Mutex(Mutex::Type::Recursive);
|
|
std::unique_ptr<Timer> scanTimer = nullptr;
|
|
// State
|
|
ScanState scanState;
|
|
i2c_port_t port = I2C_NUM_0;
|
|
std::vector<uint8_t> scannedAddresses;
|
|
// Widgets
|
|
lv_obj_t* scanButtonLabelWidget = nullptr;
|
|
lv_obj_t* portDropdownWidget = nullptr;
|
|
lv_obj_t* scanListWidget = nullptr;
|
|
};
|
|
|
|
void onScanTimerFinished(std::shared_ptr<Data> data);
|
|
|
|
}
|