/* * state_manager.h * * Created on: 2026-03-04 * Author: RT-Thread * * 功能: 状态管理模块头文件 * 依赖: RT-Thread Nano, osal * 跨平台适配: 基于RT-Thread Nano,使用标准API */ #ifndef STATE_MANAGER_H #define STATE_MANAGER_H #include #include "osal.h" /* 网络状态定义 */ typedef enum { NETWORK_STATE_DISCONNECTED = 0, NETWORK_STATE_CONNECTING, NETWORK_STATE_CONNECTED, NETWORK_STATE_ERROR } network_state_t; /* 传感器状态定义 */ typedef enum { SENSOR_STATE_IDLE = 0, SENSOR_STATE_READING, SENSOR_STATE_READY, SENSOR_STATE_ERROR } sensor_state_t; /* TCP状态定义 */ typedef enum { TCP_STATE_CLOSED = 0, TCP_STATE_LISTENING, TCP_STATE_CONNECTED, TCP_STATE_ERROR } tcp_state_t; /* 错误代码定义 */ typedef enum { ERROR_NONE = 0, ERROR_NETWORK, ERROR_SENSOR, ERROR_TCP, ERROR_UNKNOWN } error_code_t; /* 系统状态结构体 */ typedef struct { network_state_t network_state; /* 网络状态 */ sensor_state_t sensor_state; /* 传感器状态 */ tcp_state_t tcp_state; /* TCP状态 */ error_code_t error_code; /* 错误代码 */ } system_state_t; /* 状态快照结构体 */ typedef struct { system_state_t system_state; /* 系统状态 */ rt_tick_t timestamp; /* 时间戳 */ } state_snapshot_t; /** * @brief 初始化状态管理 * @return 0 成功,非0 失败 */ int state_manager_init(void); /** * @brief 获取系统状态 * @param state 系统状态指针 * @return 0 成功,非0 失败 */ int state_manager_get_system_state(system_state_t *state); /** * @brief 设置网络状态 * @param state 网络状态 * @return 0 成功,非0 失败 */ int state_manager_set_network_state(network_state_t state); /** * @brief 设置传感器状态 * @param state 传感器状态 * @return 0 成功,非0 失败 */ int state_manager_set_sensor_state(sensor_state_t state); /** * @brief 设置TCP状态 * @param state TCP状态 * @return 0 成功,非0 失败 */ int state_manager_set_tcp_state(tcp_state_t state); /** * @brief 设置错误代码 * @param error 错误代码 * @return 0 成功,非0 失败 */ int state_manager_set_error_code(error_code_t error); /** * @brief 创建状态快照 * @param snapshot 状态快照指针 * @return 0 成功,非0 失败 */ int state_manager_create_snapshot(state_snapshot_t *snapshot); /** * @brief 恢复状态快照 * @param snapshot 状态快照指针 * @return 0 成功,非0 失败 */ int state_manager_restore_snapshot(state_snapshot_t *snapshot); #endif /* STATE_MANAGER_H */