Module improvements: lvgl, gps, crypt (#585)

This commit is contained in:
Ken Van Hoeylandt 2026-07-25 23:04:39 +02:00 committed by GitHub
parent ca5b071859
commit db7468d0c8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
92 changed files with 261 additions and 271 deletions

View File

@ -1,7 +1,7 @@
#include <tactility/delay.h>
#include <tactility/error.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <tactility/module.h>
#include <Tactility/SystemEvents.h>

View File

@ -2,7 +2,7 @@
#include <tactility/error.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <Tactility/SystemEvents.h>
#include <Tactility/LogMessages.h>

View File

@ -1,4 +1,4 @@
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <tactility/module.h>
#include <Tactility/SystemEvents.h>

View File

@ -9,7 +9,7 @@
#include <tactility/drivers/i2c_controller.h>
#include <tactility/drivers/keyboard.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <tactility/module.h>
#include <driver/gpio.h>

View File

@ -13,6 +13,7 @@
## Higher Priority
- Improve kernel_init.cpp (and other modules): create driver_ensure_added() and driver_ensure_destructed()
- Remove and migrate `Include/Tactility/kernel/Kernel.h` into `tactility/delay.h`
- Drivers/audio-codec-module is not a module. Move it somewhere else. Or make it an actual module.
- LilyGO T-Dongle S3: 1 button control, stop auto-launching web server

View File

@ -1,6 +1,8 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <tactility/module.h>
#ifdef __cplusplus
extern "C" {
#endif

View File

@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/crypt.h>
#include <crypt/crypt.h>
#include <tactility/check.h>
#include <tactility/log.h>

View File

@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/hash.h>
#include <crypt/hash.h>
uint32_t djb2_str(const char* str) {
uint32_t hash = 5381;

View File

@ -1,7 +1,7 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/crypt.h>
#include <tactility/hash.h>
#include <tactility/module.h>
#include <crypt/crypt.h>
#include <crypt/hash.h>
#include <crypt/module.h>
extern "C" {

View File

@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
#include <gps/gps_module.h>
#include <gps/module.h>
#include <gps/private/gps_ledger.h>
#include <tactility/error.h>

View File

@ -1,21 +1,13 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
/**
* @file lvgl_module.h
* @brief LVGL module for Tactility.
*
* This module manages the lifecycle of the LVGL library, including initialization,
* task management, and thread-safety.
*/
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stdbool.h>
/** Affects LVGL widget style */
enum UiDensity {
/** Ideal for very small non-touch screen devices (e.g. Waveshare S3 LCD 1.3") */
@ -24,47 +16,6 @@ enum UiDensity {
LVGL_UI_DENSITY_DEFAULT
};
/**
* @brief The LVGL module instance.
*/
extern struct Module lvgl_module;
/**
* @brief Configuration for the LVGL module.
*/
struct LvglModuleConfig {
/**
* @brief Callback invoked when the LVGL task starts.
* Use this to add devices (e.g. displays, pointers), start services, create widgets, etc.
*/
void (*on_start)(void);
/**
* @brief Callback invoked when the LVGL task stops.
* Use this to remove devices, stop services, etc.
*/
void (*on_stop)(void);
/** @brief Priority of the LVGL task. */
int task_priority;
/** @brief Stack size of the LVGL task in bytes. */
int task_stack_size;
#ifdef ESP_PLATFORM
/** @brief CPU affinity of the LVGL task (ESP32 specific). */
int task_affinity;
#endif
};
/**
* @brief Configures the LVGL module.
*
* @warning This must be called before starting the module.
* @param config The configuration to apply.
*/
void lvgl_module_configure(struct LvglModuleConfig config);
/**
* @brief Locks the LVGL mutex.
*

View File

@ -1,10 +1,6 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stdbool.h>
@ -13,6 +9,10 @@ extern "C" {
#include <tactility/device.h>
#include <tactility/error.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Configuration for binding a kernel DisplayApi device to an lv_display_t.
*/

View File

@ -14,17 +14,17 @@ enum LvglFontSize {
FONT_SIZE_LARGE,
};
const lv_font_t* lvgl_get_shared_icon_font();
uint32_t lvgl_get_shared_icon_font_height();
const lv_font_t* lvgl_get_shared_icon_font(void);
uint32_t lvgl_get_shared_icon_font_height(void);
const lv_font_t* lvgl_get_text_font(enum LvglFontSize font_size);
uint32_t lvgl_get_text_font_height(enum LvglFontSize font_size);
const lv_font_t* lvgl_get_launcher_icon_font();
uint32_t lvgl_get_launcher_icon_font_height();
const lv_font_t* lvgl_get_launcher_icon_font(void);
uint32_t lvgl_get_launcher_icon_font_height(void);
const lv_font_t* lvgl_get_statusbar_icon_font();
uint32_t lvgl_get_statusbar_icon_font_height();
const lv_font_t* lvgl_get_statusbar_icon_font(void);
uint32_t lvgl_get_statusbar_icon_font_height(void);
#ifdef __cplusplus
}

View File

@ -1,15 +1,15 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <lvgl.h>
#include <tactility/device.h>
#include <tactility/error.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Creates an lv_indev_t bound to the given KEYBOARD_TYPE device and registers a read callback
* that polls the device through its KeyboardApi.

View File

@ -1,15 +1,18 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <lvgl.h>
#include <tactility/device.h>
#include <tactility/error.h>
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Linear per-axis calibration range for raw pointer coordinates.
*

View File

@ -0,0 +1,51 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief The LVGL module instance.
*/
extern struct Module lvgl_module;
/**
* @brief Configuration for the LVGL module.
*/
struct LvglModuleConfig {
/**
* @brief Callback invoked when the LVGL task starts.
* Use this to add devices (e.g. displays, pointers), start services, create widgets, etc.
*/
void (*on_start)(void);
/**
* @brief Callback invoked when the LVGL task stops.
* Use this to remove devices, stop services, etc.
*/
void (*on_stop)(void);
/** @brief Priority of the LVGL task. */
int task_priority;
/** @brief Stack size of the LVGL task in bytes. */
int task_stack_size;
#ifdef ESP_PLATFORM
/** @brief CPU affinity of the LVGL task (ESP32 specific). */
int task_affinity;
#endif
};
/**
* @brief Configures the LVGL module.
*
* @warning This must be called before starting the module.
* @param config The configuration to apply.
*/
void lvgl_module_configure(struct LvglModuleConfig config);
#ifdef __cplusplus
}
#endif

View File

@ -3,9 +3,10 @@
#include <esp_lvgl_port.h>
#include <tactility/time.h>
#include <lvgl/lvgl.h>
#include <lvgl/module.h>
#include <tactility/error.h>
#include <tactility/lvgl_module.h>
#include <tactility/time.h>
extern struct LvglModuleConfig lvgl_module_config;
extern void lvgl_devices_attach();

View File

@ -10,7 +10,8 @@
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <lvgl/module.h>
extern struct LvglModuleConfig lvgl_module_config;
extern void lvgl_devices_attach();

View File

@ -0,0 +1,6 @@
// SPDX-License-Identifier: Apache-2.0
#include <lvgl/lvgl.h>
enum UiDensity lvgl_get_ui_density(void) {
return TT_LVGL_UI_DENSITY;
}

View File

@ -3,10 +3,10 @@
#include <tactility/drivers/keyboard.h>
#include <tactility/drivers/pointer.h>
#include <tactility/log.h>
#include <tactility/lvgl_display.h>
#include <tactility/lvgl_keyboard.h>
#include <tactility/lvgl_module.h>
#include <tactility/lvgl_pointer.h>
#include <lvgl/lvgl_display.h>
#include <lvgl/lvgl_keyboard.h>
#include <lvgl/lvgl.h>
#include <lvgl/lvgl_pointer.h>
#include <lvgl.h>

View File

@ -1,7 +1,7 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/lvgl_display.h>
#include <lvgl/lvgl_display.h>
#include <tactility/lvgl_ppa.h>
#include <lvgl/lvgl_ppa.h>
#include <tactility/device.h>
#include <tactility/driver.h>

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: Apache-2.0
#include <lvgl.h>
#include <tactility/lvgl_fonts.h>
#include <lvgl/lvgl_fonts.h>
#include <tactility/check.h>
// The preprocessor definitions that are used below are defined in the CMakeLists.txt from this module.

View File

@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/lvgl_keyboard.h>
#include <lvgl/lvgl_keyboard.h>
#include <tactility/drivers/keyboard.h>

View File

@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/lvgl_pointer.h>
#include <lvgl/lvgl_pointer.h>
#include <tactility/drivers/pointer.h>

View File

@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/lvgl_ppa.h>
#include <lvgl/lvgl_ppa.h>
#include <tactility/log.h>

View File

@ -1,8 +1,8 @@
// SPDX-License-Identifier: Apache-2.0
#include <lvgl.h>
#include <lvgl/module.h>
#include <string.h>
#include <tactility/module.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
extern const struct ModuleSymbol lvgl_module_symbols[];
error_t lvgl_arch_start();
@ -60,10 +60,6 @@ bool lvgl_is_running() {
return is_running;
}
enum UiDensity lvgl_get_ui_density(void) {
return TT_LVGL_UI_DENSITY;
}
struct Module lvgl_module = {
.name = "lvgl",
.start = start,

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/lvgl_module.h>
#include <tactility/lvgl_fonts.h>
#include <lvgl/lvgl.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl.h>
#include <tactility/module.h>

View File

@ -20,11 +20,12 @@
#include <Tactility/service/audio/Audio.h>
#include <Tactility/settings/TimePrivate.h>
#include <gps/gps_module.h>
#include <gps/module.h>
#include <gps_generic/gps_generic_module.h>
#include <crypt/module.h>
#include <lvgl/module.h>
#include <tactility/concurrent/thread.h>
#include <tactility/crypt_module.h>
#include <tactility/drivers/audio_stream.h>
#include <tactility/drivers/display.h>
#include <tactility/drivers/grove.h>
@ -34,7 +35,6 @@
#include <tactility/filesystem/file_system.h>
#include <tactility/kernel_init.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#ifdef ESP_PLATFORM
#include <Tactility/InitEsp.h>

View File

@ -6,7 +6,7 @@
#include <tactility/drivers/uart_controller.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <gps/gps.h>
#include <gps/gps_settings.h>

View File

@ -12,7 +12,7 @@
#include <lvgl.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <algorithm>
#include <format>

View File

@ -5,8 +5,8 @@
#include <lvgl.h>
#include <algorithm>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::applist {

View File

@ -1,5 +1,5 @@
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl_icon_shared.h>
#include <Tactility/app/AppRegistration.h>
#include <Tactility/app/appdetails/AppDetails.h>

View File

@ -1,6 +1,6 @@
#include <Tactility/Tactility.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <Tactility/PubSub.h>
#include <Tactility/app/App.h>
@ -10,7 +10,7 @@
#include <Tactility/service/audio/Audio.h>
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
namespace tt::app::audiosettings {

View File

@ -8,7 +8,7 @@
#include <Tactility/lvgl/LvglSync.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::btmanage {

View File

@ -1,7 +1,7 @@
#include <format>
#include <string>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <Tactility/app/btmanage/View.h>
#include <Tactility/app/btmanage/BtManagePrivate.h>

View File

@ -14,7 +14,7 @@
#include <cctype>
#include <cstdlib>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <vector>
namespace tt::app::chat {

View File

@ -11,7 +11,7 @@
#include <Tactility/file/PropertiesFile.h>
#include <Tactility/Paths.h>
#include <tactility/crypt.h>
#include <crypt/crypt.h>
#include <esp_random.h>

View File

@ -12,8 +12,8 @@
#include <Tactility/service/wifi/Wifi.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl_icon_shared.h>
#include <lvgl/lvgl.h>
#include <cstring>
#include <lvgl.h>
@ -31,11 +31,10 @@ class DevelopmentApp final : public App {
std::shared_ptr<service::development::DevelopmentService> service;
Timer timer = Timer(Timer::Type::Periodic, pdMS_TO_TICKS(1000), [this] {
auto lockable = lvgl::getSyncLock();
auto lock = lockable->asScopedLock();
// TODO: There's a crash when this is called when the app is being destroyed
if (lock.lock(lvgl::defaultLockTime) && module_is_started(&lvgl_module)) {
if (lvgl_is_running()) {
lvgl_lock();
updateViewState();
lvgl_unlock();
}
});
@ -158,11 +157,10 @@ public:
}
void onHide(AppContext& appContext) override {
auto lockable = lvgl::getSyncLock();
auto lock = lockable->asScopedLock();
lvgl_lock();
// Ensure that the update isn't already happening
lock.lock();
timer.stop();
lvgl_unlock();
}
};

View File

@ -1,19 +1,13 @@
#include "tactility/lvgl_module.h"
#include <lvgl/lvgl.h>
#include <lvgl/lvgl_icon_shared.h>
#include <Tactility/Tactility.h>
#include <Tactility/Timer.h>
#include <Tactility/app/AppManifest.h>
#include <Tactility/app/alertdialog/AlertDialog.h>
#include <Tactility/lvgl/LvglSync.h>
#include <Tactility/lvgl/Toolbar.h>
#include <tactility/device.h>
#include <tactility/lvgl_icon_shared.h>
#include <atomic>
#include <cstring>
@ -181,38 +175,35 @@ class GpsSettingsApp final : public App {
}
void updateDeviceStates() {
auto lockable = lvgl::getSyncLock();
auto lock = lockable->asScopedLock();
if (lock.lock(100 / portTICK_PERIOD_MS)) {
for (auto& row : deviceRows) {
const char* text = "Start";
bool enabled = true;
lvgl_lock();
for (const auto& row : deviceRows) {
const char* text = "Start";
bool enabled = true;
if (device_is_ready(row.device)) {
switch (gps_get_state(row.device)) {
case GPS_STATE_PENDING_ON:
text = "Starting...";
enabled = false;
break;
case GPS_STATE_PENDING_OFF:
text = "Stopping...";
enabled = false;
break;
default:
text = "Stop";
enabled = true;
break;
}
}
lv_label_set_text(row.buttonLabel, text);
if (enabled) {
lv_obj_remove_state(row.button, LV_STATE_DISABLED);
} else {
lv_obj_add_state(row.button, LV_STATE_DISABLED);
if (device_is_ready(row.device)) {
switch (gps_get_state(row.device)) {
case GPS_STATE_PENDING_ON:
text = "Starting...";
enabled = false;
break;
case GPS_STATE_PENDING_OFF:
text = "Stopping...";
enabled = false;
break;
default:
text = "Stop";
enabled = true;
break;
}
}
lv_label_set_text(row.buttonLabel, text);
if (enabled) {
lv_obj_remove_state(row.button, LV_STATE_DISABLED);
} else {
lv_obj_add_state(row.button, LV_STATE_DISABLED);
}
}
lvgl_unlock();
}
public:

View File

@ -4,7 +4,7 @@
#include <tactility/device.h>
#include <tactility/drivers/grove.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <Tactility/Tactility.h>
#include <Tactility/lvgl/Toolbar.h>

View File

@ -14,7 +14,7 @@
#include <format>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::i2cscanner {

View File

@ -1,10 +1,10 @@
#include <tactility/drivers/display.h>
#include <tactility/error.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <tactility/device.h>
#include <tactility/drivers/backlight.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <Tactility/Tactility.h>
#ifdef ESP_PLATFORM

View File

@ -7,7 +7,7 @@
#include <tactility/device.h>
#include <tactility/drivers/backlight.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <lvgl.h>

View File

@ -13,9 +13,9 @@
#include <tactility/device.h>
#include <tactility/drivers/power_supply.h>
#include <tactility/log.h>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_icon_launcher.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl_icon_launcher.h>
#include <lvgl/lvgl.h>
namespace tt::app::launcher {

View File

@ -8,7 +8,7 @@
#include <Tactility/settings/Language.h>
#include <Tactility/settings/SystemSettings.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <lvgl.h>
#include <map>

View File

@ -9,7 +9,7 @@
#include <lvgl.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::notes {

View File

@ -8,7 +8,7 @@
#include <tactility/device.h>
#include <tactility/drivers/power_supply.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <lvgl.h>

View File

@ -9,8 +9,8 @@
#include <lvgl.h>
#include <tactility/device.h>
#include <tactility/drivers/power_supply.h>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::poweroff {

View File

@ -15,7 +15,7 @@
#include <Tactility/Timer.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::screenshot {

View File

@ -3,8 +3,8 @@
#include <Tactility/service/loader/Loader.h>
#include <tactility/check.h>
#include <tactility/lvgl_icon_shared.h>
#include <tactility/lvgl_fonts.h>
#include <lvgl/lvgl_icon_shared.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl.h>

View File

@ -1,5 +1,5 @@
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl.h>
#include <Tactility/app/App.h>
#include <Tactility/app/AppManifest.h>

View File

@ -11,9 +11,9 @@
#include <lvgl.h>
#include <utility>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_icon_shared.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl_icon_shared.h>
#include <lvgl/lvgl.h>
#ifdef ESP_PLATFORM
#include <esp_vfs_fat.h>

View File

@ -1,4 +1,4 @@
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <Tactility/RecursiveMutex.h>
@ -13,7 +13,7 @@
#include <lvgl.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::timedatesettings {

View File

@ -1,5 +1,5 @@
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl_icon_shared.h>
#include <Tactility/app/AppContext.h>
#include <Tactility/app/AppManifest.h>

View File

@ -6,8 +6,8 @@
#include <Tactility/settings/TouchCalibrationSettings.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#include <tactility/lvgl_pointer.h>
#include <lvgl/lvgl.h>
#include <lvgl/lvgl_pointer.h>
#include <algorithm>
#include <lvgl.h>

View File

@ -2,8 +2,8 @@
#include <lvgl.h>
#include <tactility/lvgl_icon_shared.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl_icon_shared.h>
#include <lvgl/lvgl.h>
#include <Tactility/Tactility.h>
#include <Tactility/settings/TrackballSettings.h>

View File

@ -5,7 +5,7 @@
#include <lvgl.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#define TAG "usb_settings"

View File

@ -12,7 +12,7 @@
#include <lvgl.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
#include <esp_netif.h>
#include <esp_wifi.h>

View File

@ -12,7 +12,7 @@
#include <Tactility/Tactility.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
namespace tt::app::wifimanage {

View File

@ -9,7 +9,7 @@
#include <Tactility/service/loader/Loader.h>
#include <tactility/log.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl/lvgl_icon_shared.h>
namespace tt::app::wifimanage {

View File

@ -3,7 +3,7 @@
#include <tactility/drivers/spi_controller.h>
#include <tactility/filesystem/file_mutex.h>
#include <tactility/filesystem/file_system.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
constexpr auto* TAG = "file_mutex_lvgl";

View File

@ -1,7 +1,7 @@
#include "Tactility/lvgl/LvglSync.h"
#include <Tactility/Mutex.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
namespace tt::lvgl {

View File

@ -2,7 +2,7 @@
#include <Tactility/lvgl/SliderBox.h>
#include <tactility/lvgl_fonts.h>
#include <lvgl/lvgl_fonts.h>
namespace tt::lvgl {

View File

@ -12,8 +12,8 @@
#include <tactility/check.h>
#include <tactility/log.h>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl.h>
#include <lvgl.h>
#include <memory>

View File

@ -9,8 +9,8 @@
#include <Tactility/service/loader/Loader.h>
#include <tactility/check.h>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl_fonts.h>
#include <lvgl/lvgl.h>
namespace tt::lvgl {

View File

@ -2,7 +2,7 @@
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
extern "C" {

View File

@ -2,7 +2,7 @@
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
extern "C" {

View File

@ -2,7 +2,7 @@
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
extern "C" {

View File

@ -2,7 +2,7 @@
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
extern "C" {

View File

@ -2,7 +2,7 @@
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
extern "C" {

View File

@ -2,7 +2,7 @@
#include <lvgl.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <Tactility/service/gui/GuiService.h>

View File

@ -16,7 +16,7 @@
#include <tactility/log.h>
#include <tactility/drivers/display.h>
#include <tactility/drivers/backlight.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
namespace tt::service::displayidle {

View File

@ -12,7 +12,7 @@
#include <Tactility/service/loader/Loader.h>
#include <tactility/log.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
namespace tt::service::gui {

View File

@ -12,7 +12,7 @@
#include <tactility/device.h>
#include <tactility/drivers/backlight.h>
#include <tactility/drivers/keyboard.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
namespace tt::service::keyboardidle {

View File

@ -3,7 +3,7 @@
#include <Tactility/service/ServiceManifest.h>
#include <Tactility/service/memorychecker/MemoryCheckerService.h>
#include <tactility/lvgl_icon_statusbar.h>
#include <lvgl/lvgl_icon_statusbar.h>
#include <tactility/log.h>
namespace tt::service::memorychecker {

View File

@ -22,8 +22,8 @@
#include <tactility/log.h>
#include <tactility/module.h>
#include <tactility/lvgl_module.h>
#include <tactility/lvgl_icon_statusbar.h>
#include <lvgl/lvgl.h>
#include <lvgl/lvgl_icon_statusbar.h>
#include <cstring>
@ -268,8 +268,8 @@ class StatusbarService final : public Service {
}
void update() {
if (module_is_started(&lvgl_module)) {
if (lvgl_try_lock(100)) {
if (lvgl_is_running()) {
if (lvgl_try_lock(200)) {
updateGpsIcon();
updateBluetoothIcon();
updateWifiIcon();

View File

@ -30,7 +30,7 @@
#include <lv_screenshot.h>
#endif
#include <tactility/lvgl_icon_statusbar.h>
#include <lvgl/lvgl_icon_statusbar.h>
#include <atomic>
#include <cctype>

View File

@ -4,7 +4,7 @@
#include <Tactility/file/File.h>
#include <tactility/crypt.h>
#include <crypt/crypt.h>
#include <Tactility/service/ServicePaths.h>

View File

@ -1,16 +0,0 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
struct DisplayPlaceholderConfig {
uint8_t _unused;
};
#ifdef __cplusplus
}
#endif

View File

@ -1,26 +0,0 @@
// SPDX-License-Identifier: Apache-2.0
#include <tactility/drivers/display_placeholder.h>
#include <tactility/device.h>
#include <tactility/driver.h>
#include <tactility/drivers/display.h>
#include <tactility/module.h>
extern "C" {
static error_t start(Device*) { return ERROR_NONE; }
static error_t stop(Device*) { return ERROR_NONE; }
extern Module root_module;
Driver display_placeholder_driver = {
.name = "display_placeholder",
.compatible = (const char*[]) { "display-placeholder", nullptr },
.start_device = start,
.stop_device = stop,
.api = nullptr,
.device_type = &DISPLAY_TYPE,
.owner = &root_module,
.internal = nullptr
};
}

View File

@ -14,8 +14,6 @@ extern const ModuleSymbol KERNEL_SYMBOLS[];
static error_t start() {
extern Driver root_driver;
if (driver_construct_add(&root_driver) != ERROR_NONE) return ERROR_RESOURCE;
extern Driver display_placeholder_driver;
if (driver_construct_add(&display_placeholder_driver) != ERROR_NONE) return ERROR_RESOURCE;
extern Driver battery_sense_driver;
if (driver_construct_add(&battery_sense_driver) != ERROR_NONE) return ERROR_RESOURCE;
extern Driver battery_sense_power_supply_driver;

View File

@ -13,26 +13,30 @@
#include <tactility/drivers/bluetooth_midi.h>
#include <tactility/drivers/bluetooth_hid_device.h>
#include <tactility/drivers/camera.h>
#include <tactility/drivers/usb_host_hid.h>
#include <tactility/drivers/usb_host_midi.h>
#include <tactility/drivers/usb_host_msc.h>
#include <tactility/drivers/display.h>
#include <tactility/drivers/gpio_controller.h>
#include <tactility/drivers/grove.h>
#include <tactility/drivers/haptic.h>
#include <tactility/drivers/i2c_controller.h>
#include <tactility/drivers/i2s_controller.h>
#include <tactility/drivers/i8080_controller.h>
#include <tactility/drivers/keyboard.h>
#include <tactility/drivers/pointer.h>
#include <tactility/drivers/power_supply.h>
#include <tactility/drivers/pwm.h>
#include <tactility/drivers/rgb_led.h>
#include <tactility/drivers/root.h>
#include <tactility/drivers/rtc.h>
#include <tactility/drivers/sdcard.h>
#include <tactility/drivers/spi_controller.h>
#include <tactility/drivers/uart_controller.h>
#include <tactility/drivers/usb_host_hid.h>
#include <tactility/drivers/usb_host_midi.h>
#include <tactility/drivers/usb_host_msc.h>
#include <tactility/drivers/wifi.h>
#include <tactility/error.h>
#include <tactility/filesystem/file_system.h>
#include <tactility/filesystem/file_mutex.h>
#include <tactility/module.h>
#include <tactility/wifi_auto_scan.h>
#include <tactility/service/service_instance.h>
@ -151,6 +155,17 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = {
DEFINE_MODULE_SYMBOL(display_get_frame_buffer_count),
DEFINE_MODULE_SYMBOL(display_get_backlight),
DEFINE_MODULE_SYMBOL(DISPLAY_TYPE),
// file_mutex
DEFINE_MODULE_SYMBOL(file_mutex_register),
DEFINE_MODULE_SYMBOL(file_mutex_get),
DEFINE_MODULE_SYMBOL(file_mutex_lock),
DEFINE_MODULE_SYMBOL(file_mutex_try_lock),
DEFINE_MODULE_SYMBOL(file_mutex_unlock),
// file system
DEFINE_MODULE_SYMBOL(file_system_mount),
DEFINE_MODULE_SYMBOL(file_system_unmount),
DEFINE_MODULE_SYMBOL(file_system_is_mounted),
DEFINE_MODULE_SYMBOL(file_system_get_path),
// drivers/gpio_controller
DEFINE_MODULE_SYMBOL(gpio_descriptor_acquire),
DEFINE_MODULE_SYMBOL(gpio_descriptor_release),
@ -174,6 +189,12 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = {
DEFINE_MODULE_SYMBOL(grove_set_mode),
DEFINE_MODULE_SYMBOL(grove_get_mode),
DEFINE_MODULE_SYMBOL(GROVE_TYPE),
// drivers/haptic
DEFINE_MODULE_SYMBOL(haptic_set_waveform),
DEFINE_MODULE_SYMBOL(haptic_select_library),
DEFINE_MODULE_SYMBOL(haptic_start_playback),
DEFINE_MODULE_SYMBOL(haptic_stop_playback),
DEFINE_MODULE_SYMBOL(HAPTIC_TYPE),
// drivers/i2c_controller
DEFINE_MODULE_SYMBOL(i2c_controller_read),
DEFINE_MODULE_SYMBOL(i2c_controller_write),
@ -230,6 +251,23 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = {
DEFINE_MODULE_SYMBOL(power_supply_supports_power_off),
DEFINE_MODULE_SYMBOL(power_supply_power_off),
DEFINE_MODULE_SYMBOL(POWER_SUPPLY_TYPE),
// drivers/pwm
DEFINE_MODULE_SYMBOL(pwm_set_period),
DEFINE_MODULE_SYMBOL(pwm_get_period),
DEFINE_MODULE_SYMBOL(pwm_set_duty),
DEFINE_MODULE_SYMBOL(pwm_get_duty),
DEFINE_MODULE_SYMBOL(pwm_set_inverted),
DEFINE_MODULE_SYMBOL(pwm_is_inverted),
DEFINE_MODULE_SYMBOL(pwm_enable),
DEFINE_MODULE_SYMBOL(pwm_disable),
DEFINE_MODULE_SYMBOL(pwm_is_enabled),
DEFINE_MODULE_SYMBOL(PWM_TYPE),
// drivers/rgb_led
DEFINE_MODULE_SYMBOL(rgb_led_set_color),
DEFINE_MODULE_SYMBOL(rgb_led_get_color),
DEFINE_MODULE_SYMBOL(rgb_led_enable),
DEFINE_MODULE_SYMBOL(rgb_led_disable),
DEFINE_MODULE_SYMBOL(RGB_LED_TYPE),
// drivers/root
DEFINE_MODULE_SYMBOL(root_is_model),
// drivers/rtc
@ -383,11 +421,6 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = {
DEFINE_MODULE_SYMBOL(timer_set_callback_priority),
// error
DEFINE_MODULE_SYMBOL(error_to_string),
// file system
DEFINE_MODULE_SYMBOL(file_system_mount),
DEFINE_MODULE_SYMBOL(file_system_unmount),
DEFINE_MODULE_SYMBOL(file_system_is_mounted),
DEFINE_MODULE_SYMBOL(file_system_get_path),
// log
#ifndef ESP_PLATFORM
DEFINE_MODULE_SYMBOL(log_generic),

View File

@ -22,7 +22,7 @@
#include <tactility/module.h>
#include <tactility/time.h>
#include <tactility/lvgl_module.h>
#include <lvgl/lvgl.h>
#include <drivers/bm8563.h>
#include <drivers/bmi270.h>

View File

@ -1,5 +1,5 @@
#include "doctest.h"
#include <tactility/crypt.h>
#include <crypt/crypt.h>
#include <cstring>
TEST_CASE("crypt_encrypt followed by crypt_decrypt returns the original data") {

View File

@ -1,5 +1,5 @@
#include "doctest.h"
#include <tactility/hash.h>
#include <crypt/hash.h>
#include <cstring>
TEST_CASE("djb2_str of an empty string returns the DJB2 seed value") {