/** * @file bs_wh_gm5.h * @brief WH-GM5 4G 模组 AT 驱动 * * 负责模组初始化、APN/Socket 配置、信号查询及串口通信。 * 通信串口:USART6(COM_PORT_BS)。 */ #ifndef _BS_WH_GM5_H_ #define _BS_WH_GM5_H_ #include "publicdata/type.h" #include "main.h" #include "publicdata/publicdata.h" #include "usart.h" #include "plat_comm/plat_comm_task.h" #define COM_PORT_BS E_USART_6 //4G 模组 WH-GM5 通信串口 typedef enum { STEP_SWCHTO_CMD_MODE = 0, //切换到指令模式 STEP_MODE_NET_ON, //设置工作模式为网络透传模式(默认net) STEP_UAT_ON, //使能串口AT指令(默认ON), STEP_UAT_SET_PACK_TIME, STEP_SET_PWD, //设置指令密码(默认usr.cn) STEP_SET_APN, //设置APN STEP_SET_SDPEN, //设置套接字分发 STEP_SCKA_ON, //设置socketA使能(默认ON) STEP_SET_SCKA_PARA, //设置socketA参数 STEP_SCKB_ON, //设置socketB使能(默认ON) STEP_SCKB_OFF, //设置socketB关闭(OFF) STEP_SET_SCKB_PARA, //设置socketB参数 STEP_HEART_OFF, //设置心跳包不使能 STEP_SAVE, //保存当前设置并重启 STEP_INIT_OK, //设置完成 }E_WH_GM5_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; //超时计数 E_WH_GM5_INIT_STEP e_wh_gm5_init_step; //无线通信模块初始化步骤标志 U8_T u8_Sim_Card[NUM_20]; //SIM卡号 U8_T u8_4g_Version[NUM_20]; //4g版本 S_4G_CONFIG_PARA s_4g_para; }S_4G_CTRL_DATA; //结构体1 -- 用于内部逻辑控制和数据存储 //结构体2 -- 用于联网参数存储-获取 S8_T s8_UAT_check_signal_quality(void); S8_T s8_check_number(U8_T *data); //查询SIM卡号 S8_T s8_check_socket_LinkState(U8_T u8_id); S8_T s8_WH_GM5_init(void); U8_T u8_UAT_CheckConnState(void); //通过串口AT指令(密码ieszt)查询模块网络连接状态 void v_wh_gm5_data_init(S_4G_CONFIG_PARA *s_4g_para); void v_4g_uart_cache_clear(void); U8_T v_GM5_get_sim(U8_T *data); /**< 获取 SIM 卡号,有数据返回 1 */ #endif