forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

wujiazhi
2024-06-11 65062d0d5b21f838aa0043a15ce54cfab8d72c43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#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