Initial commit: CCU621_M firmware project with BLE debug link support.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-08 17:28:36 +08:00
commit 9ceb218f80
1597 changed files with 724159 additions and 0 deletions
+99
View File
@@ -0,0 +1,99 @@
#ifndef EC200A_4G_H
#define EC200A_4G_H
#ifdef __cplusplus /*C++编译环境下兼容C语言*/
extern "C" {
#endif
/*------ Exported includes(头文件) ----------------------*/
#include "main.h"
#include "plat_comm/4g_module/ec200a_4g_cfg.h"
/*------ Exported struct(结构体定义) --------------------*/
typedef enum
{
STEP_SWCHTO_CMD_MODE = 0, //切换到指令模式
STEP_QUERY_SIM_STATE, //查询SIM卡状态
STEP_QUERY_CCID, //查询sim卡号
STEP_SET_CFUN, //设置功能模式
STEP_SET_CGREG, //设置PS域 网络注册状态
STEP_QUERY_CGREG, //查询PS域 网络注册状态
STEP_SET_QICSGP_APN, //设置TCP场景参数 设置APN
STEP_SET_CGQMIN, //设置服务质量参数(最低可接受的)
STEP_SET_CGQREQ, //设置服务质量参数(请求的)
STEP_QUERY_CSQ, //查询信号强度
STEP_SET_QIACT, //激活PDP场景
STEP_SET_SSL_CFG, //TLS 配置(QSSLCFG 等,仅在需要 TLS 时执行)
STEP_SET_SOCKET_AND_OPEN, //设置socket 参数并打开(TCP 或 TLS
STEP_SAVE, //保存当前设置并重启
STEP_INIT_OK, //设置完成
STEP_INIT_DEBUG, // 调试
}E_EC200A_4G_INIT_STEP;
typedef struct
{
U8_T u8_Sim_Type; //APN类型(0:移动,1:联通,2:电信)
U8_T u8_socketB_en; //socketB使能 默认套接字分发功能使能 - 使能分发时,组帧解帧需要添加帧头;不使能直接透传模式,将数据上送平台,但无法区分多平台
U8_T *socketA_IP; //域名或者IP+端口号 例如 www.baidu.com:1234
U8_T *socketB_IP; //is NULL 则不存在socket
U8_T *apn_str;
U16_T socketA_port; //端口号
U16_T socketB_port;
U8_T use_tls; //是否启用模块内置 TLS0=TCP1=TLSwss
}S_4G_CONFIG_PARA;
typedef struct
{
U8_T u8_out_cnt; //超时计数
U8_T u8_csq; //信号强度
E_EC200A_4G_INIT_STEP e_4g_init_step; //无线通信模块初始化步骤标志
U8_T u8_Sim_Card[NUM_20]; //SIM卡号
U8_T u8_4g_Version[NUM_20]; //4g版本
U32_T u32_outtime; //超时计数 单位秒
U8_T u8_tcp_socket_id; // 非透传:QISEND/QIRD 使用的 connectID(明文 TCP=0TLS 与 QSSLOPEN 的 clientID 一致)
S_4G_CONFIG_PARA s_4g_para;
}S_4G_CTRL_DATA;
/*------ Exported variables(变量定义) -------------------*/
/*------ Exported function prototypes (函数声明) -------*/
S8_T s8_ec200a_4g_init(void);
void v_4g_data_init(S_4G_CONFIG_PARA *s_4g_para);
void v_4g_send_data(U8_T u8_id, U8_T *u8_sendBuf , U16_T u16_len);
U16_T u16_4g_recv_data(U8_T *u8_recvBuf ,U16_T u16_len);
/** 排空模组 RX FIFO(丢弃);FTP / QISEND 等共用 UART 去粘连 */
void v_4g_uart_rx_discard_fifo(void);
#if !EC200A_TCP_USE_TRANSPARENT_MODE
/** 非透传:经 AT+QISEND 发送 TCP/TLS 负载(按 EC200A_TCP_APP_RW_MAX 分包;详见 ec200a_4g.c */
void v_ec200a_tcp_app_send(U8_T u8_id, U8_T *u8_sendBuf, U16_T u16_len);
/** 非透传:AT+QIRD 读模组 Socket 缓冲(单次至多 EC200A_TCP_APP_RW_MAX;大帧需上层循环) */
U16_T u16_ec200a_tcp_app_recv(U8_T *u8_recvBuf, U16_T u16_len);
/** 模组已在 STEP_INIT_OK 且 PDP 正常时,仅 AT+QICLOSE/QSSLCLOSE + QIOPEN/QSSLOPEN 重建业务 Socket(不拆 PDP */
S8_T s8_ec200a_tcp_socket_close(void);
S8_T s8_ec200a_tcp_socket_soft_reopen(void);
#endif
U8_T u8_ec200a_modem_tcp_stack_ok(void);
U8_T u8_get_sim_card(U8_T *u8_data ,U8_T buf_len);
U8_T u8_UAT_check_signal_quality(void);
void v_4g_log_data_send_data(U8_T *u8_sendBuf , U16_T u16_len);
S8_T s8_ec200a_qiact(void);
/** 按 context_id 配置/激活/去激活 PDP,供 FTP 与业务 TCP 分场景(见 ec200a_4g_cfg.h */
S8_T s8_ec200a_qicsgp_ctx(U8_T context_id);
S8_T s8_ec200a_qiact_ctx(U8_T context_id);
S8_T s8_ec200a_qideact_ctx(U8_T context_id);
#ifdef __cplusplus
}
#endif
#endif /* EC200A_4G_H */