fixes that made it work

This commit is contained in:
Mikkeli Matlock
2026-02-15 04:15:30 +09:00
parent 19db125619
commit 610f776ecf
33 changed files with 1271 additions and 516 deletions

View File

@@ -0,0 +1,56 @@
#ifndef WS_CLIENT_H
#define WS_CLIENT_H
#include <stdbool.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#define WS_MAX_SERVICES 8
#define WS_SERVICE_NAME_LEN 16
typedef enum {
WS_STATE_DISCONNECTED = 0,
WS_STATE_CONNECTING,
WS_STATE_CONNECTED,
WS_STATE_ERROR,
} ws_state_t;
typedef struct {
char name[WS_SERVICE_NAME_LEN];
bool running;
} ws_service_t;
typedef struct {
float cpu_pct;
float mem_pct;
uint32_t mem_used_mb;
float disk_pct;
float cpu_temp;
float uptime_hrs;
float net_rx_kbps;
float net_tx_kbps;
ws_service_t services[WS_MAX_SERVICES];
uint8_t service_count;
uint32_t last_update; // timestamp from server
bool valid; // set true after first successful parse
} pi_stats_t;
typedef void (*ws_data_callback_t)(const pi_stats_t *stats);
typedef void (*ws_state_callback_t)(ws_state_t state);
void ws_client_init(const char *uri);
void ws_client_start(void);
void ws_client_stop(void);
ws_state_t ws_client_get_state(void);
void ws_client_get_stats(pi_stats_t *out);
void ws_client_set_data_callback(ws_data_callback_t cb);
void ws_client_set_state_callback(ws_state_callback_t cb);
#ifdef __cplusplus
}
#endif
#endif