#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_CH3_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
|