#ifndef _GPRS_MODULE_API_H_ #define _GPRS_MODULE_API_H_ #include "define_all.h" #include "main.h" #include "string.h" // #include "gprs.h" #if GPRS_PROTOCOL_SELECT #include "gprs_protocol_ideacreated_gasmeter_api.h" #else #include "gprs_protocol_api.h" #endif #define GPRS_RECV_LEN_MAX 1024 // GPRS½ÓÊÕ×î´ó³¤¶È #define AT_CMEE "AT+CMEE=1" // ±¨¸æÒƶ¯ÖÕ¶Ë´íÎó // 4GÄ£¿éÃüÁî #define AT_ZIPOPEN "AT+ZIPOPEN=1,0" // ½¨Á¢TCPÁ¬½Ó #define AT_ZIPCLOSE "AT+ZIPCLOSE=1" // ¹Ø±ÕTCPÁ¬½Ó #define AT_ZIPSENDRAW "AT+ZIPSENDRAW=1" // ·¢ËÍÊý¾Ý #define AT_ZIPCALL "AT+ZIPCALL=1" // ½¨Á¢Á¬½Óǰ½øÐÐÊý¾Ý²¦ºÅ #define AT_CCID "AT+ZGETICCID" // ²éѯiccid #define AT_GSN "AT+CGSN" // ²éѯIMEI #define AT_CSQ "AT+CSQ" // ²éѯÐźÅÇ¿¶È #define AT_ZIPCFG_CX "AT+ZIPCFG?" // ²éѯAPN #define AT_ZIPCFG "AT+ZIPCFG=" // ÉèÖÃAPN #define AT_ZRST "AT+ZRST" #define AT_ZIPRECV "+ZIPRECV:" // ½ÓÊչؼü×Ö #define CRLF "\r\n" // »Ø³µ»»ÐÐ // NBÄ£¿éÃüÁî #define AT_CMEE_NB AT_CMEE #define AT_NCCID_NB "AT+NCCID" // ²éѯiccid #define AT_CGSN_NB "AT+CGSN=1" // ²éѯimei #define AT_CSQ_NB "AT+CSQ" // ²éѯÐźÅÇ¿¶È #define AT_SOPEN_NB "AT+SOPEN=0" // ½¨Á¢TCPÁ¬½Ó #define AT_DTMODE_NB "AT+DTMODE=2" // ·¢ËÍÊý¾ÝΪhex¸ñʽ #define AT_SSEND_NB "AT+SSEND=0" // ·¢ËÍÊý¾Ý #define AT_ZRST_NB AT_ZRST // É豸ÈíÖØÆô #define __GPRS_MODULE_SEND_LENGTH__(__LEN__) \ do \ { \ uint8_t temp_buffer[25]; \ sprintf((char *)temp_buffer, "%s,%d", AT_ZIPSENDRAW, __LEN__); \ Gprs_Send_ATcmd((char *)temp_buffer); \ } while (0) #define __GPRS_MODULE_SEND_LENGTH_NB__(__LEN__) \ do \ { \ uint8_t temp_buffer[25]; \ sprintf((char *)temp_buffer, "%s,%d,", AT_SSEND_NB, __LEN__); \ HAL_UART_Transmit(&huart3, temp_buffer, strlen((char *)temp_buffer), 1000); \ } while (0) typedef enum { SEND_CMD_ZIPSENDRAW = 0U, // ·¢ËÍÃüÁî #if NB_OR_4G_FLAG LOGIN_CMD_CMEE_NB, // µÇ¼ÃüÁî LOGIN_CMD_ICCID_NB, LOGIN_CMD_IMEI_NB, LOGIN_CMD_CSQ_NB, LOGIN_CMD_SOPEN_NB, LOGIN_CMD_DTMODE_NB, LOGIN_CMD_ZRST_NB #else LOGIN_CMD_CMEE, // µÇ¼ÃüÁî LOGIN_CMD_ICCID, LOGIN_CMD_IMEI, #if APN_SET_FLAG LOGIN_CMD_ZIPCFG, #endif LOGIN_CMD_CSQ, LOGIN_CMD_ZIPCALL, LOGIN_CMD_ZIPOPEN, LOGIN_CMD_ZRST #endif } GPRS_AT_CMD; typedef enum { GMS_WORST = 3U, GMS_POOR = 10U, GMS_GENERAL = 15U, GMS_BEST = 25U, } GPRS_MODULE_SIG; #pragma pack(1) typedef struct { /*ÕâÑùÅÅÐòÊÇΪÁË×Ö½Ú¶ÔÆë£¬buffÊý¾ÝÒª4µÄ±¶ÊýÅäºÏ__attribute__ ((aligned (4)))ʹÓÃ*/ uint8_t gprs_recv_buf[GPRS_RECV_LEN_MAX]; uint16_t gprs_recv_length; FlagStatus gprs_recv_flag; __IO GPRS_AT_CMD gprs_module_state; } GPRS_MODULE_PARA_T; #pragma pack() extern uint8_t gprs_resend_data_flag_g; extern char sim_imei_g[15]; extern GPRS_MODULE_PARA_T gprs_module_para_g; ErrorStatus_STM32 Gprs_Uart1_Rx_DMA_CH5_Check(void); void Gprs_Send_ATcmd(char *pAT_cmd); void Gprs_Module_SendLogin(GPRS_AT_CMD module_state, uint8_t used_ip[4], uint16_t used_port); void Gprs_Module_RecvLogin(GPRS_MODULE_PARA_T *gprs_module_para_p, GPRS_PROTOCOL_NORMAL_DATA_HEAD_T *gprs_protocol_normal_data_head_p); uint8_t Gprs_Module_RecvDataProcess(uint16_t *recv_valid_length, uint8_t **pAddr, GPRS_MODULE_PARA_T *gprs_module_para_p); #endif