Initial Demo OS

This commit is contained in:
dark98
2026-09-03 00:46:04 +01:00
commit 1491821e96
45 changed files with 2908 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
#ifndef OS_EVENT_H
#define OS_EVENT_H
#include <stdint.h>
#include <stdbool.h>
#include "esp_err.h"
#ifdef __cplusplus
extern "C" {
#endif
/* System Event IDs */
typedef enum {
SYS_EVENT_INPUT_SHORT_PRESS = 1, /* Single click (e.g. Next / Increment) */
SYS_EVENT_INPUT_DOUBLE_CLICK, /* Double click (e.g. Back / Cancel) */
SYS_EVENT_INPUT_LONG_PRESS, /* Hold 400ms (e.g. Select / Confirm) */
SYS_EVENT_INPUT_EXTRA_LONG_PRESS, /* Hold 1500ms (e.g. Global Home / Launcher) */
SYS_EVENT_APP_SWITCH, /* Switched to a new app */
SYS_EVENT_TICK_1S, /* 1 Hz system heartbeat */
SYS_EVENT_WIFI_STATUS_CHANGED, /* WiFi connection state changed */
SYS_EVENT_BATTERY_STATUS_CHANGED, /* Battery level / charging changed */
SYS_EVENT_CUSTOM
} sys_event_id_t;
typedef struct {
sys_event_id_t id;
int32_t data;
void *ptr_data;
} sys_event_t;
typedef void (*sys_event_cb_t)(const sys_event_t *event, void *user_arg);
/**
* @brief Initialize the global system event bus.
*/
esp_err_t sys_event_init(void);
/**
* @brief Post an event to the global event bus.
*/
esp_err_t sys_event_post(sys_event_id_t id, int32_t data, void *ptr_data);
/**
* @brief Subscribe to system events.
*/
esp_err_t sys_event_subscribe(sys_event_cb_t callback, void *user_arg);
#ifdef __cplusplus
}
#endif
#endif // OS_EVENT_H
+51
View File
@@ -0,0 +1,51 @@
#ifndef OS_STATUS_H
#define OS_STATUS_H
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
WIFI_STATE_OFF = 0,
WIFI_STATE_CONNECTING,
WIFI_STATE_CONNECTED,
WIFI_STATE_AP_MODE,
} wifi_state_t;
typedef enum {
BLE_STATE_OFF = 0,
BLE_STATE_ADVERTISING,
BLE_STATE_CONNECTED,
} ble_state_t;
typedef struct {
uint32_t uptime_sec;
uint32_t free_heap;
uint32_t min_free_heap;
uint8_t cpu_usage_pct;
wifi_state_t wifi_state;
int8_t wifi_rssi;
ble_state_t ble_state;
bool is_charging;
uint8_t battery_pct;
bool status_bar_visible;
const char *active_app_name;
} sys_status_t;
void sys_status_init(void);
void sys_status_get(sys_status_t *out_status);
void sys_status_update(void);
void sys_status_set_wifi(wifi_state_t state, int8_t rssi);
void sys_status_set_ble(ble_state_t state);
void sys_status_set_status_bar_visible(bool visible);
bool sys_status_is_status_bar_visible(void);
void sys_status_set_active_app_name(const char *name);
#ifdef __cplusplus
}
#endif
#endif // OS_STATUS_H