Files
433_STM32/Core/Inc/rf433_tx_app.h

116 lines
2.8 KiB
C
Raw Normal View History

/**
******************************************************************************
* @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 <stdint.h>
#include <stdbool.h>
/* ============================================================================
*
* ============================================================================ */
/**
* @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__ */