IoT_SCV_CH584M/bsp/inc/bsp_ml307r.h

128 lines
4.1 KiB
C
Raw 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.

#ifndef __BSP_ML307R_H__
#define __BSP_ML307R_H__
#include "CH58x_common.h"
/*4G 模块控制引脚*/
#define ENABLE_3_8_V GPIO_Pin_3 //PB3
#define USIM_DECT_PIN GPIO_Pin_5 //PB5
#define ML307_PWR_PIN GPIO_Pin_7 //PB6
#define ML307_RST_PIN GPIO_Pin_6 //PB7
#define ML307_UART_TX_PIN GPIO_Pin_13 //PB13
#define ML307_UART_RX_PIN GPIO_Pin_12 //PB12
typedef struct __attribute__((packed))
{
uint8_t module_init_flag : 1; //模块初始化
uint8_t Date_Sending_flag : 1; //数据发送中
uint8_t Low_Voltage_flag : 1; //低电压
uint8_t Key_Finish_flag : 1; //按键完成
uint8_t PowerOn_success_flag : 1; //模块开机成功
uint8_t PowerOn_error_flag : 1; //模块开机失败
uint8_t PowerOff_success_flag : 1;//模块关机成功
uint8_t PowerOff_error_flag : 1; //模块关机失败
uint8_t restart_success_flag : 1; //重启模块成功
uint8_t restart_error_flag : 1; //重启模块失败
uint8_t sim_success_flag : 1; //sim成功
uint8_t sim_error_flag : 1; //sim失败
uint8_t Get_ModInfo_flag : 1; //获取模组信息
uint8_t ModInfo_update_flag : 1; //信息更新
uint8_t ModInfo_success_flag : 1; //获取模组信息成功
uint8_t ModInfo_error_flag : 1; //获取模组信息失败
uint8_t Connect_success_flag : 1; //连接平台成功
uint8_t Connect_error_flag : 1; //连接平台失败
uint8_t Valve_Open_flag : 1; //阀门打开
uint8_t Valve_Close_flag : 1; //阀门关闭
uint8_t send_complete_flag : 1; //发送数据完成标志
uint8_t send_error_flag : 1; //发送数据错误标志
uint8_t update_time_flag : 1; //更新网络时间标志位
uint8_t login_status_flag : 1; //登录到服务器标志位;
uint8_t Loop_count_flag : 3; //循环次数标志位
uint8_t Iot_Retry_flag : 1; //重试标志位;
}IotFlagStruct;
// Module parameters
typedef struct __attribute__((packed))
{
char cmdtype[3];
char servic_id[5];
char payload_len[5];
char imei_len[5];
char imei[60];
char imsi_len[5];
char imsi[60];
char iccid_len[5];
char iccid[60];
char heartbeat_time_len[5];
char heartbeat_time[9];//心跳周期 0~100
char manufacturer_name_len[5];
char manufacturer_name[40];//厂家 名称
char terminal_type_len[5];
char terminal_type[25];//终端类型
char hardware_version_len[5];
char hardware_version[11];//硬件版本
char software_version_len[5];
char software_version[11];//软件版本
char battery_value[9];//电池电压浮点型0~5
char battery_voltage[9];//电池电量 整形 1-100
} TsModule_Info_t;
// Network service information
typedef struct
{
char cmdtype[3];
char servic_id[5];
char payload_length[5];
char rat[16];//整型。无线接入模式
char rsrp[16];//整型,参考信号接收功率,-1400~-440无效值位-32768
char rssi[16];//整形,接收的信号强度指示 -1330~-250无效值-32768
char tx_power[32];//整形,最近一次的发送功率,-400~230无效值-32768
char tx_time[16];//整型上行累计的发送时长单位ms无效值为0
char rx_time[16];//整型下行累计的接收时长单位ms无效值0
char last_cellid[16];//十六进制字符串上一次SIB1小区信息十六进制28BIT的cellid,有效值为0~0xFFFFFFE,无效值为0xFFFFFFFF
char last_ecl[16];//整型。上一次的ECL值普通覆盖还是增强覆盖有效值取012
char last_sinr[16];//整形。上一次的SINR值有效值为-180~-300无效值为-32768
char last_earfcn[16];//整形上一次的EARFCN值对应当前服务小区的下行频点号有效值为0~68535无效值为-1
char last_pci[16];//整形上一次的PIC值对应当前小区的物理ID有效值为0-503无效值为65535
char rsrq[16];//整型,参考信号接收质量,-195~-30无效值-32768
}Ts_Network_Service_Info_t;
extern IotFlagStruct IotFlag_t;
extern struct tm Network_Time_t;
static void BSP_Ml307_Power_Off(void);
void BSP_Ml307r_Init(void);
void Iot_Send_Data(void);
void Ml307r_Loop(void);
void BSP_Module_Emergency_Send(uint8_t* data, uint8_t len);
void BSP_ML307_StartTimeoutTimer(void);
void BSP_ML307_SetActive(void);
void BSP_ML307_SendMessage(void);
static void BSP_Read_Module(void);
static void BSP_simcom_init(void);
static void BSP_Get_Module_Info(void);
static void BSP_Module_Connect_CtWing(void);
#endif //!@__BSP_ML307R_H__