Merge develop into main (#167)

- 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)
This commit is contained in:
Ken Van Hoeylandt
2025-01-17 19:37:42 +01:00
committed by GitHub
parent 3ca0f8cf97
commit 3ea02d912f
147 changed files with 1538 additions and 739 deletions
@@ -1,4 +1,4 @@
#include "I2cHelpers.h"
#include "app/i2cscanner/I2cHelpers.h"
#include "Tactility.h"
#include "StringUtils.h"
#include <iomanip>
@@ -1,12 +0,0 @@
#pragma once
#include <string>
#include <cstdint>
namespace tt::app::i2cscanner {
std::string getAddressText(uint8_t address);
std::string getPortNamesForDropdown();
}
@@ -1,6 +1,6 @@
#include "I2cScanner.h"
#include "I2cScannerThread.h"
#include "I2cHelpers.h"
#include "app/i2cscanner/I2cScannerPrivate.h"
#include "app/i2cscanner/I2cScannerThread.h"
#include "app/i2cscanner/I2cHelpers.h"
#include "Assets.h"
#include "Tactility.h"
@@ -50,7 +50,7 @@ static void onSelectBus(lv_event_t* event) {
TT_LOG_I(TAG, "Selected %ld", selected);
}
static void onPressScan(lv_event_t* event) {
static void onPressScan(TT_UNUSED lv_event_t* event) {
auto data = optData();
if (data != nullptr) {
if (data->scanState == ScanStateScanning) {
@@ -191,4 +191,8 @@ extern const AppManifest manifest = {
.onHide = onHide
};
void start() {
service::loader::startApp(manifest.id);
}
} // namespace
+1 -23
View File
@@ -10,28 +10,6 @@
namespace tt::app::i2cscanner {
#define TAG "i2cscanner"
enum ScanState {
ScanStateInitial,
ScanStateScanning,
ScanStateStopped
};
struct Data {
// Core
Mutex mutex = Mutex(Mutex::TypeRecursive);
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);
void start();
}
@@ -1,4 +1,4 @@
#include "I2cScannerThread.h"
#include "app/i2cscanner/I2cScannerThread.h"
#include "lvgl.h"
#include "service/loader/Loader.h"
@@ -100,7 +100,7 @@ void startScanning(std::shared_ptr<Data> data) {
data->scanState = ScanStateScanning;
data->scanTimer = std::make_unique<Timer>(
Timer::TypeOnce,
Timer::Type::Once,
onScanTimer,
data
);
@@ -1,12 +0,0 @@
#pragma once
#include "I2cScanner.h"
#include <memory>
namespace tt::app::i2cscanner {
bool hasScanTimer(std::shared_ptr<Data> data);
void startScanning(std::shared_ptr<Data> data);
void stopScanning(std::shared_ptr<Data> data);
}