#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