Files
ESPC3-wireless/app/drivers/sertrf/sertrf.h

124 lines
2.3 KiB
C
Raw Normal View History

2025-08-20 11:28:11 +08:00
#pragma once
#include "device.h"
2025-08-20 11:31:55 +08:00
#include "../led_strip/led_strip.h"
#include "key.h"
#include "protocol/p_protocol.h"
2025-09-09 18:16:48 +08:00
#include "protocol/resend_protl.h"
2025-10-07 17:49:20 +08:00
#include "protocol/stmisp.h"
2025-09-09 18:07:30 +08:00
#include "ota_u.h"
#include "tool.h"
#include "ring_buffer.h"
#include "../../config/app_config.h"
#define FC_ADDRESS "0x08000000"
#define DATA_HANDLE_BUFFER_SIZE 4096
typedef enum
{
DATA_HANDLE_IDLE = 0,
DATA_HANDLE_OTA_DATA,
DATA_HANDLE_OTA_DATA_END,
2025-10-23 18:40:19 +08:00
DATA_HANDLE_ISP_DATA,
DATA_HANDLE_ISP_DATA_END
}data_handle_e;
typedef struct
{
data_handle_e task_state;
}sertrf_mode_status_t;
2025-08-20 11:28:11 +08:00
typedef struct
{
device_t device;
// 任务
os_thread_t embedded_thread; //处理飞控接收
os_thread_t pc_thread; //处理app接收
os_thread_t task_thread; //处理其他任务
os_thread_t app_thread; //处理app任务
os_thread_t data_handle_thread; //数据处理任务
sertrf_mode_status_t mode_status;
// ota
2025-09-09 18:07:30 +08:00
ota_u_t otau;
2025-10-07 17:49:20 +08:00
//自定义协议
2025-09-09 18:16:48 +08:00
resend_device_t resend_device;
SemaphoreHandle_t resend_read_mutex;
2025-10-07 17:49:20 +08:00
//STMISP协议
stmisp_device_t stmisp_device;
// 环形buff
RingBuffer data_handle_buffer;
uint32_t fc_address;
2025-10-23 18:39:07 +08:00
// efuse MAC 地址
uint8_t efuse_mac[6];
uint8_t efuse_mac_encrypt[6];
2025-08-20 11:28:11 +08:00
}sertrf_t;
2025-10-23 18:39:07 +08:00
typedef struct __attribute__((packed))
{
char ble_name[32];
char wifi_ap_ssid[32];
char wifi_ap_password[32];
char wifi_sta_ssid[32];
char wifi_sta_password[32];
2025-10-23 18:39:07 +08:00
uint8_t efuse_mac_encrypt[6];
}sertrf_stauct_t;
2025-08-20 11:28:11 +08:00
/**
* @brief
*/
void sertrf_init(void);
/**
* @brief
*/
void sertrf_start(void);
/**
* @brief
*/
void sertrf_stop(void);
/**
* @brief
*/
void sertrf_rf_switch(uint8_t on);
2025-08-20 11:28:11 +08:00
/**
* @brief
*/
void sertrf_status(void);
/**
* @brief embedded thread
*/
void embedded_thread(void* arg);
2025-09-09 18:07:30 +08:00
/**
* @brief pc thread
*/
void pc_thread(void* arg);
/**
* @brief app thread
*/
void app_thread(void* arg);
/**
* @brief task thread
*/
void task_thread(void* arg);
/**
* @brief data handle thread
*/
void data_handle_thread(void* arg);
/**
* @brief
*
* @param connect
*/
void pc_link_rgb_color(device_t* device);
2025-08-20 11:28:11 +08:00