chore: save Tactility app experiments
This commit is contained in:
@@ -1,6 +1,23 @@
|
|||||||
#include <tt_app.h>
|
#include <tt_app.h>
|
||||||
#include <tt_lvgl_toolbar.h>
|
#include <tt_lvgl_toolbar.h>
|
||||||
|
|
||||||
|
#define TICK_MS 25
|
||||||
|
lv_timer_t* gameTimer;
|
||||||
|
|
||||||
|
static void onTick(lv_timer_t* timer) {
|
||||||
|
// 1. Retrieve the progress bar using the official getter function
|
||||||
|
lv_obj_t* bar_progress = (lv_obj_t*) lv_timer_get_user_data(timer);
|
||||||
|
int32_t current_val = lv_bar_get_value(bar_progress);
|
||||||
|
|
||||||
|
|
||||||
|
// 4. Stop and delete the timer when it reaches 100
|
||||||
|
if (current_val + 1 >= 100) {
|
||||||
|
lv_bar_set_value(bar_progress, 0, LV_ANIM_ON);
|
||||||
|
} else {
|
||||||
|
lv_bar_set_value(bar_progress, current_val + 1, LV_ANIM_OFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Note: LVGL and Tactility methods need to be exposed manually from TactilityC/Source/tt_init.cpp
|
* Note: LVGL and Tactility methods need to be exposed manually from TactilityC/Source/tt_init.cpp
|
||||||
* Only C is supported for now (C++ symbols fail to link)
|
* Only C is supported for now (C++ symbols fail to link)
|
||||||
@@ -10,13 +27,37 @@ static void onShowApp(AppHandle app, void* data, lv_obj_t* parent) {
|
|||||||
lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0);
|
lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0);
|
||||||
|
|
||||||
lv_obj_t* label = lv_label_create(parent);
|
lv_obj_t* label = lv_label_create(parent);
|
||||||
lv_label_set_text(label, "Hello, world!\n(Loaded via LAN!)");
|
lv_label_set_text(label, "Hello, world!\n(Adolfo Made It2!)");
|
||||||
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
|
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
|
||||||
|
|
||||||
|
lv_obj_t* label2 = lv_label_create(parent);
|
||||||
|
lv_label_set_text(label2, "Hello, There!");
|
||||||
|
lv_obj_align(label2, LV_ALIGN_BOTTOM_MID, 0, 0);
|
||||||
|
|
||||||
|
/* Progress bar */
|
||||||
|
lv_obj_t* bar_progress = lv_bar_create(parent);
|
||||||
|
lv_obj_set_size(bar_progress, lv_pct(80), 10);
|
||||||
|
lv_bar_set_range(bar_progress, 0, 100);
|
||||||
|
lv_bar_set_value(bar_progress, 50, LV_ANIM_ON);
|
||||||
|
lv_obj_align(bar_progress, LV_ALIGN_CENTER, 0, -30);
|
||||||
|
|
||||||
|
// Start game timer wiht the progress bar as user data
|
||||||
|
gameTimer = lv_timer_create(onTick, TICK_MS, bar_progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
//on hide
|
||||||
|
static void onHideApp(AppHandle app, void* data) {
|
||||||
|
if (gameTimer) {
|
||||||
|
lv_timer_delete(gameTimer);
|
||||||
|
gameTimer = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
tt_app_register((AppRegistration) {
|
tt_app_register((AppRegistration) {
|
||||||
.onShow = onShowApp
|
.onShow = onShowApp,
|
||||||
|
.onHide = onHideApp,
|
||||||
|
|
||||||
});
|
});
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
## 4. Workflow: Compiling & Installing Apps
|
||||||
|
|
||||||
|
### Step 1: Source Environment & Path
|
||||||
|
Ensure ESP-IDF environment is sourced and export local SDK path:
|
||||||
|
```bash
|
||||||
|
. /Users/adolforeyna/esp/esp-idf/export.sh
|
||||||
|
export TACTILITY_SDK_PATH=/Users/adolforeyna/.gemini/antigravity/scratch/tactility/release/TactilitySDK
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Compile the App
|
||||||
|
Run the Tactility build script, specifying the target platform:
|
||||||
|
```bash
|
||||||
|
# Compile and package HelloWorld
|
||||||
|
python3 tactility.py Apps/HelloWorld build esp32s3 --local-sdk
|
||||||
Reference in New Issue
Block a user