Various improvements (#461)
* **New Features** * Time and delay utilities added (ticks, ms, µs); SD card now uses an expansion-header CS pin; HTTP downloads warn when run on the GUI task and yield to avoid blocking. * **Bug Fixes / Reliability** * Many hard-crash paths converted to guarded checks to reduce abrupt termination and improve stability. * **Tests** * Unit tests added to validate time and delay accuracy. * **Chores** * License header and build/macro updates.
This commit is contained in:
committed by
GitHub
parent
619b5aa53b
commit
e6abd496f9
@@ -52,7 +52,7 @@ static void lvgl_unlock() {
|
||||
}
|
||||
|
||||
void lvgl_task_interrupt() {
|
||||
tt_check(task_lock(portMAX_DELAY));
|
||||
check(task_lock(portMAX_DELAY));
|
||||
task_set_running(false); // interrupt task with boolean as flag
|
||||
task_unlock();
|
||||
}
|
||||
@@ -75,7 +75,7 @@ void lvgl_task_start() {
|
||||
assert(task_result == pdTRUE);
|
||||
}
|
||||
|
||||
static void lvgl_task(TT_UNUSED void* arg) {
|
||||
static void lvgl_task(void* arg) {
|
||||
LOGGER.info("LVGL task started");
|
||||
|
||||
/** Ideally. the display handle would be created during Simulator.start(),
|
||||
|
||||
@@ -15,7 +15,7 @@ void setMain(MainFunction newMainFunction) {
|
||||
mainFunction = newMainFunction;
|
||||
}
|
||||
|
||||
static void freertosMainTask(TT_UNUSED void* parameter) {
|
||||
static void freertosMainTask(void* parameter) {
|
||||
LOGGER.info("starting app_main()");
|
||||
assert(simulator::mainFunction);
|
||||
mainFunction();
|
||||
|
||||
@@ -17,7 +17,7 @@ static bool initBoot() {
|
||||
return true;
|
||||
}
|
||||
|
||||
TT_UNUSED static void deinitPower() {
|
||||
static void deinitPower() {
|
||||
lvgl_task_interrupt();
|
||||
while (lvgl_task_is_running()) {
|
||||
tt::kernel::delayMillis(10);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "SdlTouch.h"
|
||||
#include <Tactility/Check.h>
|
||||
#include <Tactility/hal/display/DisplayDevice.h>
|
||||
|
||||
/** Hack: variable comes from LvglTask.cpp */
|
||||
@@ -14,11 +15,11 @@ public:
|
||||
std::string getDescription() const override { return ""; }
|
||||
|
||||
bool start() override { return true; }
|
||||
bool stop() override { tt_crash("Not supported"); }
|
||||
bool stop() override { check(false, "Not supported"); }
|
||||
|
||||
bool supportsLvgl() const override { return true; }
|
||||
bool startLvgl() override { return displayHandle != nullptr; }
|
||||
bool stopLvgl() override { tt_crash("Not supported"); }
|
||||
bool stopLvgl() override { check(false, "Not supported"); }
|
||||
lv_display_t* _Nullable getLvglDisplay() const override { return displayHandle; }
|
||||
|
||||
std::shared_ptr<tt::hal::touch::TouchDevice> _Nullable getTouchDevice() override { return std::make_shared<SdlTouch>(); }
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <Tactility/hal/keyboard/KeyboardDevice.h>
|
||||
#include <Tactility/Check.h>
|
||||
#include <Tactility/TactilityCore.h>
|
||||
|
||||
class SdlKeyboard final : public tt::hal::keyboard::KeyboardDevice {
|
||||
@@ -17,7 +18,7 @@ public:
|
||||
return handle != nullptr;
|
||||
}
|
||||
|
||||
bool stopLvgl() override { tt_crash("Not supported"); }
|
||||
bool stopLvgl() override { check(false, "Not supported"); }
|
||||
|
||||
bool isAttached() const override { return true; }
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "Tactility/hal/touch/TouchDevice.h"
|
||||
#include <Tactility/Check.h>
|
||||
#include <Tactility/TactilityCore.h>
|
||||
|
||||
class SdlTouch final : public tt::hal::touch::TouchDevice {
|
||||
@@ -15,7 +16,7 @@ public:
|
||||
|
||||
bool start() override { return true; }
|
||||
|
||||
bool stop() override { tt_crash("Not supported"); }
|
||||
bool stop() override { check(false, "Not supported"); }
|
||||
|
||||
bool supportsLvgl() const override { return true; }
|
||||
|
||||
@@ -24,7 +25,7 @@ public:
|
||||
return handle != nullptr;
|
||||
}
|
||||
|
||||
bool stopLvgl() override { tt_crash("Not supported"); }
|
||||
bool stopLvgl() override { check(false, "Not supported"); }
|
||||
|
||||
lv_indev_t* _Nullable getLvglIndev() override { return handle; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user