Initial commit: CCU621_M firmware project with BLE debug link support.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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; //是否启用模块内置 TLS:0=TCP,1=TLS(wss)
|
||||
}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=0;TLS 与 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 */
|
||||
Reference in New Issue
Block a user