Files

83 lines
2.5 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* @file bs_wh_gm5.h
* @brief WH-GM5 4G 模组 AT 驱动
*
* 负责模组初始化、APN/Socket 配置、信号查询及串口通信。
* 通信串口:USART6COM_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; //是否启用模块内置 TLS0=TCP1=TLSwss
}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