Files
ETH_TCP_Demo/app/state_manager.h
2026-03-04 08:50:04 +08:00

121 lines
2.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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 <rtthread.h>
#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 */