/** ****************************************************************************** * @file rf433_tx_app.h * @brief RF433 TX应用层接口 ****************************************************************************** */ #ifndef __RF433_TX_APP_H__ #define __RF433_TX_APP_H__ #ifdef __cplusplus extern "C" { #endif #include "rf433.h" #include #include /* ============================================================================ * 数据类型定义 * ============================================================================ */ /** * @brief TX状态机状态 */ typedef enum { TX_STATE_INIT = 0, /**< 初始化状态 */ TX_STATE_SENDING, /**< 发送中状态 */ TX_STATE_WAITING, /**< 等待状态 */ TX_STATE_IDLE, /**< 空闲状态 */ } tx_state_t; /** * @brief TX应用结构体 */ typedef struct { tx_state_t state; /**< 当前状态 */ uint32_t send_count; /**< 已发送次数 */ uint32_t total_count; /**< 总发送次数 */ uint32_t send_interval_ms; /**< 发送间隔(ms) */ uint32_t last_send_time; /**< 上次发送时间 */ rf433_register_t config; /**< RF433配置 */ bool is_running; /**< 是否正在运行 */ } rf433_tx_app_t; /* ============================================================================ * API函数声明 * ============================================================================ */ /** * @brief 初始化TX应用层 * @param config RF433配置参数 * @retval RF433_OK 成功 * @retval RF433_ERROR 参数错误 */ rf433_error_t rf433_tx_app_init(const rf433_register_t *config); /** * @brief 启动TX自动发送 * @param count 总发送次数 * @param interval_ms 发送间隔(ms) * @retval RF433_OK 成功 * @retval RF433_ERROR 参数错误 */ rf433_error_t rf433_tx_app_start(uint32_t count, uint32_t interval_ms); /** * @brief 停止TX自动发送 * @retval RF433_OK 成功 */ rf433_error_t rf433_tx_app_stop(void); /** * @brief 手动发送数据 * @param data 数据指针 * @param length 数据长度 * @retval RF433_OK 成功 * @retval RF433_ERROR 参数错误 * @retval RF433_ERROR_BUSY 模块忙 */ rf433_error_t rf433_tx_app_manual_send(uint8_t *data, uint16_t length); /** * @brief TX任务函数(在主循环中调用) */ void rf433_tx_app_task(void); /** * @brief 获取TX状态 * @return 当前TX状态 */ tx_state_t rf433_tx_app_get_state(void); /** * @brief 获取已发送次数 * @return 已发送次数 */ uint32_t rf433_tx_app_get_send_count(void); /** * @brief 获取总发送次数 * @return 总发送次数 */ uint32_t rf433_tx_app_get_total_count(void); /** * @brief 重置TX计数器 */ void rf433_tx_app_reset_count(void); #ifdef __cplusplus } #endif #endif /* __RF433_TX_APP_H__ */