#ifndef _GPRS_H_
|
#define _GPRS_H_
|
|
#include "define_all.h"
|
#include "gprs_module_api.h"
|
|
// Ô¶´«µçÔ´
|
#define GPRS_PWR_PORT GPIOA
|
#define GPRS_PWR_PIN GPIO_Pin_7
|
|
// Ô¶´«¿ª¹Ø
|
#define GPRS_SWITCH_PORT GPIOA
|
#define GPRS_SWITCH_PIN GPIO_Pin_6
|
|
// Ô¶´«¸´Î»
|
#define GPRS_RE_PORT GPIOA
|
#define GPRS_RE_PIN GPIO_Pin_5
|
|
#define GPRS_PWR_ON GPIO_SetBits(GPRS_PWR_PORT, GPRS_PWR_PIN)
|
#define GPRS_PWR_OFF GPIO_ResetBits(GPRS_PWR_PORT, GPRS_PWR_PIN)
|
|
#define GPRS_RESTART_EN GPIO_SetBits(GPRS_RE_PORT, GPRS_RE_PIN)
|
#define GPRS_RESTART_DIS GPIO_ResetBits(GPRS_RE_PORT, GPRS_RE_PIN)
|
|
#define GPRS_SWITCH_H GPIO_ResetBits(GPRS_SWITCH_PORT, GPRS_SWITCH_PIN)
|
#define GPRS_SWITCH_L GPIO_SetBits(GPRS_SWITCH_PORT, GPRS_SWITCH_PIN)
|
|
#define GPRS_SEND_NORMAL(__DATA__, __SIZE__) UARTx_SendData_Normal(UART1, __DATA__, __SIZE__)
|
|
#define GPRS_FUNC_TABLE_NUM (sizeof(gprs_tab_func) / sizeof(GPRS_FUNC_TABLE_DRV_T))
|
|
#define GPRS_BOOT_INIT_TIME 10
|
typedef enum
|
{
|
GPRS_IDLE = 0U, // ¿ÕÏÐ
|
GPRS_OPEN_PWR, // ¿ªÆôµçÔ´
|
GPRS_OPEN_MODULE, // ¿ªÆôÄ£¿é
|
GPRS_CLOSE_PWR, // ¹Ø±ÕµçÔ´
|
GPRS_CLOSE_MODULE, // ¹Ø±ÕÄ£¿é
|
GPRS_LOGIN, // 怬
|
GPRS_SEND_DATA, // ·¢ËÍÊý¾Ý
|
GPRS_RECV_DATA, // ½ÓÊÕÊý¾Ý
|
GPRS_SEND_ALARM, // ·¢Ëͱ¨¾¯Êý¾Ý
|
GPRS_RESTART // ¸´Î»
|
} GPRS_STATUS; // Ô¶´«×´Ì¬
|
|
typedef enum
|
{
|
GPRS_MEANS_NONE = 0U, // ĬÈÏÖµ
|
GPRS_MEANS_RTC_TIMED, // ¶¨Ê±Æô¶¯
|
GPRS_MEANS_KEY, // °´¼ü
|
GPRS_MEANS_ALARM, // ±¨¾¯
|
GPRS_MEANS_POWER, // ¿ª»ú/¸´Î»
|
GPRS_MEANS_RTC_PERIOD, // ÖÜÆÚ
|
GPRS_MEANS_AGAIN, // ÔÙ´Î
|
} GPRS_SEND_MEANS; // GPRSµÄÆô¶¯·½Ê½
|
|
typedef enum
|
{
|
GLT_TCP = 0U, // TCPÖ±Á¬
|
GLT_TELECOM, // µçÐÅÆ½Ì¨
|
GLT_MOBILE, // ÒÆ¶¯Æ½Ì¨
|
} GPRS_LINK_TYPE;
|
|
typedef enum
|
{
|
GIM_NONE = 0U, // ÎÞ·¨ËÍ
|
GIM_PERIOD, // ÖÜÆÚ¼ä¸ô
|
GIM_TIMED, // ¶¨Ê±¼ä¸ô
|
GIM_PERIOD_TIMED, // ÖÜÆÚ + ¶¨Ê±
|
} GPRS_INTERVAL_MEANS; // GPRSµÄ¼ä¸ô·½Ê½
|
|
#pragma pack(1)
|
|
#define SYS_GPRS_NETWORK_CFG_FORMAT_SIZE sizeof(GPRS_NETWORK_CFG_PARA_T)
|
typedef struct
|
{
|
uint8_t gprs_ip_1[4];
|
uint16_t gprs_port_1;
|
GPRS_LINK_TYPE gprs_link_type_1;
|
uint8_t gprs_ip_2[4];
|
uint16_t gprs_port_2;
|
GPRS_LINK_TYPE gprs_link_type_2;
|
uint16_t save_data_period_min_time; // ²É¼¯Êý¾ÝµÄ¼ä¸ô·ÖÖÓʱ¼ä
|
GPRS_INTERVAL_MEANS gprs_interval_type;
|
uint16_t gprs_send_period_min_time; // gprs·¢Ë͵ļä¸ô·ÖÖÓʱ¼ä
|
uint8_t gprs_reference_time_bcd[2]; // »ù׼ʱ¼ä BCD£¨[0] = Сʱ [1] = ·ÖÖÓ£©
|
uint8_t gprs_timed_number; // ¶¨Ê±´ÎÊý
|
uint8_t gprs_timing_time_bcd[12][2]; // ¶¨Ê±Ê±¼ä
|
uint16_t gprs_restart_send_interval_min_time; // gprsÖØÐ·¢Ë͵ļä¸ô·ÖÖÓʱ¼ä
|
uint8_t gprs_restart_number; // gprsÖØÐ·¢Éú´ÎÊý
|
uint16_t gprs_timeout;
|
uint8_t aes128_secret_key[9][16];
|
uint8_t reserve[18];
|
} GPRS_NETWORK_CFG_PARA_T; // GPRSÍøÂç²ÎÊý
|
|
typedef GPRS_STATUS (*pGprs_FuncHandler)(void);
|
|
typedef struct
|
{
|
const uint8_t gprs_func_table;
|
pGprs_FuncHandler GprsFuncHandler;
|
} GPRS_FUNC_TABLE_DRV_T;
|
|
typedef struct
|
{
|
__IO GPRS_STATUS gprs_state;
|
GPRS_SEND_MEANS gprs_send_type_flag;
|
} GPRS_SOFT_PARA_T;
|
|
#pragma pack()
|
|
extern GPRS_SOFT_PARA_T gprs_soft_para_g;
|
extern GPRS_NETWORK_CFG_PARA_T gprs_network_cfg_para_g;
|
extern GPRS_SAVE_SEND_PARA_T gprs_save_send_para_g;
|
|
void Gprs_IO_Init(void);
|
|
GPRS_STATUS Gprs_IDLE_Process(void);
|
GPRS_STATUS Gprs_Open_PWR_Process(void);
|
GPRS_STATUS Gprs_Open_Module_Process(void);
|
GPRS_STATUS Gprs_LoginProcess(void);
|
GPRS_STATUS Gprs_SendDataProcess(void);
|
GPRS_STATUS Gprs_RecvDataProcess(void);
|
GPRS_STATUS Gprs_SendAlarmProcess(void);
|
GPRS_STATUS Gprs_Close_Module_Process(void);
|
GPRS_STATUS Gprs_Close_PWR_Process(void);
|
GPRS_STATUS Gprs_RestartProcess(void);
|
|
void Gprs_Process(GPRS_SOFT_PARA_T *gprs_soft_para_p);
|
/*ÓÉÓÚÄ£¿é»¯±à³Ì£¬ÎÒÃÇÏÞ¶¨APIÍ·ÎļþÖ»Äܱ»Ö÷Îļþinclude£¨°üº¬£©£¬
|
ËùÒÔµ±APIÎļþºÍÖ÷ÎļþÓÐÄÚÈÝÐèÒª»¥Ïàµ÷ÓÃʱ£¬Ðè°ÑAPIµÄÍ·Îļþ·ÅÔÚ×îºó£¬ÒÔÃâ³ö´í*/
|
// #include "gprs_module_api.h"
|
|
#endif
|