-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathwifi_module.h
220 lines (180 loc) · 5.44 KB
/
wifi_module.h
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
#ifndef _WIFI_MODULE_H_
#define _WIFI_MODULE_H_
#undef ESP_MODEL
#define UART_RX_BUFFER_SIZE 1024
#define UART_FIFO_BUFFER_SIZE 1024
#define HLK_WIFI 0x01
#define ESP_WIFI 0x02
#define WIFI_DECODE_TYPE 1 //AUTO
#define IP_DHCP_FLAG 1
#define WIFI_AP_NAME "TP-LINK_MKS"
#define WIFI_KEY_CODE "makerbase"
//Client模式下的IP配置
#define IP_ADDR "192.168.3.100"
#define IP_MASK "255.255.255.0"
#define IP_GATE "192.168.3.1"
#define IP_DNS "192.168.3.1"
//AP模式下的IP配置
#define AP_IP_DHCP_FLAG 1
#define AP_IP_ADDR "192.168.3.100"
#define AP_IP_MASK "255.255.255.0"
#define AP_IP_GATE "192.168.3.1"
#define AP_IP_DNS "192.168.3.1"
#define IP_START_IP "192.168.3.1"
#define IP_END_IP "192.168.3.255"
//-------tan 20171008 modify begin------
#if 0
#define WIFI_SET() GPIO_SetBits(GPIOA, GPIO_Pin_8)
#define WIFI_RESET() GPIO_ResetBits(GPIOA, GPIO_Pin_8);
#define WIFI_IO1_SET() GPIO_SetBits(GPIOD, GPIO_Pin_8)
#define WIFI_IO1_RESET() GPIO_ResetBits(GPIOD, GPIO_Pin_8)
#endif
#if 0
#define WIFI_SET() HAL_GPIO_WritePin(GPIOA, GPIO_Pin_5, GPIO_PIN_SET)
#define WIFI_RESET() HAL_GPIO_WritePin(GPIOA, GPIO_Pin_5, GPIO_PIN_RESET)
//#define WIFI_IO1_SET() HAL_GPIO_WritePin(GPIOC, GPIO_Pin_6, GPIO_PIN_SET)
//#define WIFI_IO1_RESET() HAL_GPIO_WritePin(GPIOC, GPIO_Pin_6, GPIO_PIN_RESET);
#define WIFI_IO1_SET() GPIO_SetBits(GPIOC, GPIO_Pin_7)
#define WIFI_IO1_RESET() GPIO_ResetBits(GPIOC, GPIO_Pin_7)
#endif
#if defined(MKS_ROBIN)
#define WIFI_SET() GPIO_SetBits(GPIOG, GPIO_Pin_1)
#define WIFI_RESET() GPIO_ResetBits(GPIOG, GPIO_Pin_1)
#define WIFI_IO1_SET() GPIO_SetBits(GPIOF, GPIO_Pin_1)
#define WIFI_IO1_RESET() GPIO_ResetBits(GPIOF, GPIO_Pin_1)
#elif defined(MKS_ROBIN_MINI)||defined(MKS_ROBIN_NANO)
#define WIFI_SET() GPIO_SetBits(GPIOA, GPIO_Pin_5)
#define WIFI_RESET() GPIO_ResetBits(GPIOA, GPIO_Pin_5)
#define WIFI_IO1_SET() GPIO_SetBits(GPIOC, GPIO_Pin_7)
#define WIFI_IO1_RESET() GPIO_ResetBits(GPIOC, GPIO_Pin_7)
#endif
#define UDISKBUFLEN 1024
typedef enum
{
udisk_buf_empty = 0,
udisk_buf_full,
} UDISK_DATA_BUFFER_STATE;
#define TRANS_RCV_FIFO_BLOCK_NUM 8
#define USART1_DR_Addr ((u32)0x40011004)
typedef struct
{
unsigned char *bufferAddr[TRANS_RCV_FIFO_BLOCK_NUM]; //用于指向存储块的其实地址,目前共用16K的图片缓存buf
unsigned char *p;
UDISK_DATA_BUFFER_STATE state[TRANS_RCV_FIFO_BLOCK_NUM];
unsigned char read_cur; //当前读块索引
unsigned char write_cur; //当前写块索引
}WIFI_DMA_RCV_FIFO; //
typedef struct
{
uint8_t flag; // 0x0: no error; 0x01: error
uint32_t start_tick; //错误开始时刻
uint32_t now_tick;
} WIFI_TRANS_ERROR;
//-------tan 20171008 modify endif------
typedef struct
{
char ap_name[32]; //wifi网络名称字符串
char keyCode[64]; //wifi密码字符串
int decodeType; //加密类型(1:auto,2:aes)
int baud;
int mode;
} WIFI_PARA;
typedef struct
{
char state; //云连接状态:0x12:云连接使能,并连接上,已绑定;0x11:云连接使能,并连接上,未绑定;0x10:云连接使能,但未连接;0x00:云连接禁用
char hostUrlLen; //云连接地址长度(最大值为96)
char hostUrl[96]; //云连接地址
int port; //云连接端口
char id[21];
} CLOUD_PARA;
typedef struct
{
char dhcp_flag; //动态获取IP标志位,若为1则不需要静态设置,//为0,则采用静态设置
char ip_addr[16]; //静态ip地址数组,如192,168,0,23
char mask[16]; //静态子网掩码,如255,255,255,0
char gate[16]; //静态网关,如192,168,0,1
char dns[16]; //dns
char dhcpd_flag; //ap模式下,DHCP服务器配置
char dhcpd_ip[16];//DHCP服务器IP地址
char dhcpd_mask[16];//DHCP服务器掩码
char dhcpd_gate[16];//DHCP服务器网关
char dhcpd_dns[16];//DHCP服务器DNS地址
char start_ip_addr[16];//起始地址
char end_ip_addr[16];//结束地址
} IP_PARA;
typedef enum
{
WIFI_NOT_CONFIG,
WIFI_CONFIG_MODE,
WIFI_CONFIG_DHCP,
WIFI_CONFIG_AP,
WIFI_CONFIG_IP_INF,
WIFI_CONFIG_DNS,
WIFI_CONFIG_TCP,
WIFI_CONFIG_SERVER,
WIFI_CONFIG_REMOTE_PORT,
WIFI_CONFIG_BAUD,
WIFI_CONFIG_COMMINT,
WIFI_CONFIG_OK,
WIFI_GET_IP_OK,
WIFI_RECONN,
WIFI_CONNECTED,
WIFI_WAIT_TRANS_START,
WIFI_TRANS_FILE,
WIFI_CONFIG_DHCPD,
WIFI_COFIG_DHCPD_IP,
WIFI_COFIG_DHCPD_DNS,
WIFI_EXCEPTION,
} WIFI_STATE;
typedef enum
{
TRANSFER_IDLE,
TRANSFERING,
TRANSFER_STORE,
} TRANSFER_STATE;
typedef struct
{
char buf[20][80];
int rd_index;
int wt_index;
} QUEUE;
typedef enum
{
WIFI_PARA_SET, //0x0:设置网络参数
WIFI_PRINT_INF, //0x1:打印机信息
WIFI_TRANS_INF, //0x2:透传信息
WIFI_EXCEP_INF, //0x3:异常信息
WIFI_CLOUD_CFG, //0x4:云端配置
WIFI_CLOUD_UNBIND, //0x5:解绑ID
} WIFI_RET_TYPE;
typedef struct
{
uint32_t uart_read_point;
uint32_t uart_write_point;
uint8_t uartTxBuffer[UART_FIFO_BUFFER_SIZE];
} SZ_USART_FIFO;
#define WIFI_GCODE_BUFFER_LEAST_SIZE 96
#define WIFI_GCODE_BUFFER_SIZE (WIFI_GCODE_BUFFER_LEAST_SIZE * 3)
typedef struct
{
uint8_t Buffer[WIFI_GCODE_BUFFER_SIZE];
uint32_t r;
uint32_t w;
} WIFI_GCODE_BUFFER;
extern volatile WIFI_STATE wifi_link_state;
extern WIFI_PARA wifiPara;
extern IP_PARA ipPara;
extern CLOUD_PARA cloud_para;
extern WIFI_GCODE_BUFFER espGcodeFifo;
extern uint32_t getWifiTick();
extern uint32_t getWifiTickDiff(int32_t lastTick, int32_t curTick);
void wifi_init();
extern char wifi_loop_time;
extern int cfg_wifi_flag;
extern int cfg_cloud_flag;
extern int send_to_wifi(char *buf, int len);
extern void wifi_looping();
extern int raw_send_to_wifi(char *buf, int len);
extern int package_to_wifi(WIFI_RET_TYPE type, char *buf, int len);
extern void get_wifi_list_command_send();
#endif