IoT_SCV_CH584M/bsp/inc/bsp_ml307r.h

127 lines
4.1 KiB
C
Raw Normal View History

2024-12-11 16:21:57 +08:00
#ifndef __BSP_ML307R_H__
#define __BSP_ML307R_H__
#include "CH58x_common.h"
/*4G ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define ENABLE_3_8_V GPIO_Pin_3 //PB3
#define USIM_DECT_PIN GPIO_Pin_5 //PB5
#define ML307_PWR_PIN GPIO_Pin_6 //PB6
#define ML307_RST_PIN GPIO_Pin_7 //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; //ģ<><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
uint8_t module_Sleep_flag : 1; //ģ<><C4A3>˯<EFBFBD><CBAF>
uint8_t Low_Voltage_flag : 1; //<2F>͵<EFBFBD>ѹ
uint8_t Regular_report_flag : 1; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
uint8_t PowerOn_success_flag : 1; //ģ<><EFBFBD><E9BFAA><EFBFBD>ɹ<EFBFBD>
uint8_t PowerOn_error_flag : 1; //ģ<><EFBFBD><E9BFAA>ʧ<EFBFBD><CAA7>
uint8_t PowerOff_success_flag : 1;//ģ<><C4A3><EFBFBD>ػ<EFBFBD><D8BB>ɹ<EFBFBD>
uint8_t PowerOff_error_flag : 1; //ģ<><C4A3><EFBFBD>ػ<EFBFBD>ʧ<EFBFBD><CAA7>
uint8_t restart_success_flag : 1; //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ɹ<EFBFBD>
uint8_t restart_error_flag : 1; //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ʧ<EFBFBD><CAA7>
uint8_t sim_success_flag : 1; //sim<69>ɹ<EFBFBD>
uint8_t sim_error_flag : 1; //simʧ<6D><CAA7>
uint8_t Get_ModInfo_flag : 1; //<2F><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD>Ϣ
uint8_t ModInfo_update_flag : 1; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
uint8_t ModInfo_success_flag : 1; //<2F><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD>Ϣ<EFBFBD>ɹ<EFBFBD>
uint8_t ModInfo_error_flag : 1; //<2F><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD>Ϣʧ<CFA2><CAA7>
uint8_t Connect_success_flag : 1; //<2F><><EFBFBD><EFBFBD>ƽ̨<C6BD>ɹ<EFBFBD>
uint8_t Connect_error_flag : 1; //<2F><><EFBFBD><EFBFBD>ƽ̨ʧ<CCA8><CAA7>
uint8_t Valve_Open_flag : 1; //<2F><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
uint8_t Valve_Close_flag : 1; //<2F><><EFBFBD>Źر<C5B9>
uint8_t send_complete_flag : 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
uint8_t send_error_flag : 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>־
uint8_t update_time_flag : 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>־λ
uint8_t login_status_flag : 1; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB>
uint8_t Loop_count_flag : 3; //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
uint8_t Iot_Retry_flag : 1; //<2F><><EFBFBD>Ա<EFBFBD>־λ<D6BE><CEBB>
}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];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0~100
char manufacturer_name_len[5];
char manufacturer_name[40];//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char terminal_type_len[5];
char terminal_type[25];//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
char hardware_version_len[5];
char hardware_version[11];//Ӳ<><D3B2><EFBFBD>
char software_version_len[5];
char software_version[11];//<2F><><EFBFBD><EFBFBD><EFBFBD>
char battery_value[9];//<2F><><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0~5
char battery_voltage[9];//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD> <20><><EFBFBD><EFBFBD> 1-100
} TsModule_Info_t;
// Network service information
typedef struct
{
char cmdtype[3];
char servic_id[5];
char payload_length[5];
char rat[16];//<2F><><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD>ģʽ
char rsrp[16];//<2F><><EFBFBD>ͣ<EFBFBD><CDA3>ο<EFBFBD><CEBF>źŽ<C5BA><C5BD>չ<EFBFBD><D5B9>ʣ<EFBFBD>-1400~-440<34><30><EFBFBD><EFBFBD>Чֵλ-32768
char rssi[16];//<2F><><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>ź<EFBFBD>ǿ<EFBFBD><C7BF>ָʾ -1330~-250<35><30><EFBFBD><EFBFBD>Чֵ-32768
char tx_power[32];//<2F><><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>εķ<CEB5><C4B7>͹<EFBFBD><CDB9>ʣ<EFBFBD>-400~230<33><30><EFBFBD><EFBFBD>Чֵ-32768
char tx_time[16];//<2F><><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼƵķ<C6B5><C4B7><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λms<6D><73><EFBFBD><EFBFBD>ЧֵΪ0
char rx_time[16];//<2F><><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼƵĽ<C6B5><C4BD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λms<6D><73><EFBFBD><EFBFBD>Чֵ0
char last_cellid[16];//ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>SIB1С<31><D0A1><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>28BIT<49><54>cellid,<2C><>ЧֵΪ0~0xFFFFFFE,<2C><>ЧֵΪ0xFFFFFFFF
char last_ecl[16];//<2F><><EFBFBD>͡<EFBFBD><CDA1><EFBFBD>һ<EFBFBD>ε<EFBFBD>ECLֵ<4C><D6B5><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>Чֵȡ0<C8A1><30>1<EFBFBD><31>2<EFBFBD><32>
char last_sinr[16];//<2F><><EFBFBD>Ρ<EFBFBD><CEA1><EFBFBD>һ<EFBFBD>ε<EFBFBD>SINRֵ<52><D6B5><EFBFBD><EFBFBD>ЧֵΪ-180~-300<30><30><EFBFBD><EFBFBD>ЧֵΪ-32768
char last_earfcn[16];//<2F><><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>һ<EFBFBD>ε<EFBFBD>EARFCNֵ<4E><D6B5><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>ЧֵΪ0~68535<33><35><EFBFBD><EFBFBD>ЧֵΪ-1
char last_pci[16];//<2F><><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>һ<EFBFBD>ε<EFBFBD>PICֵ<43><D6B5><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ǰС<C7B0><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44><EFBFBD><EFBFBD>ЧֵΪ0-503<30><33><EFBFBD><EFBFBD>ЧֵΪ65535
char rsrq[16];//<2F><><EFBFBD>ͣ<EFBFBD><CDA3>ο<EFBFBD><CEBF>źŽ<C5BA><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-195~-30<33><30><EFBFBD><EFBFBD>Чֵ-32768
}Ts_Network_Service_Info_t;
extern IotFlagStruct IotFlag_t;
extern struct tm Network_Time_t;
static void BSP_Ml307_Power_Off(void);
2024-12-11 16:21:57 +08:00
void BSP_Ml307r_Init(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);
2024-12-11 16:21:57 +08:00
#endif //!@__BSP_ML307R_H__