RaspberrPi project source code
guowenxue
2024-04-11 69b42a43ca4b2d93be203c34f6b45f5de1e32a15
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
/*********************************************************************************
 *      Copyright:  (C) 2023 LingYun IoT System Studio.
 *                  All rights reserved.
 *
 *       Filename:  at-esp32.h
 *    Description:  This file is ESP32 AT command low level API functions
 *                 
 *        Version:  1.0.0(11/08/23)
 *         Author:  Guo Wenxue <guowenxue@gmail.com>
 *      ChangeLog:  1, Release initial version on "11/08/23 16:18:43"
 *                 
 ********************************************************************************/
 
#ifndef  _AT_ESP32_H_
#define  _AT_ESP32_H_
 
#include "atcmd.h"
 
enum
{
    DISABLE = 0,    /* common disable */
    ENABLE,         /* common enable  */
};
 
#define MAC_LEN     18 /* 11:22:33:44:55:66 */
#define IP_LEN      16 /* 255.255.255.255 */
 
/*+------------------------+
 *|    Baisc AT command    |
 *+------------------------+*/
 
/* AT command: AT+RST */
extern int esp32_reset(comport_t *comport);
 
/* AT command: AT+RESTORE */
extern int esp32_restore(comport_t *comport);
 
/* AT command: ATE1 or ATE0 */
extern int esp32_set_echo(comport_t *comport, int enable);
 
/* AT command: AT+GMR */
extern int esp32_get_firmware(comport_t *comport, char *version, int size);
 
/* AT command: AT+SYSSTORE */
extern int esp32_set_sysstore(comport_t *comport, int enable);
 
 
/*+------------------------+
 *|    WiFi AT command     |
 *+------------------------+*/
typedef enum
{
    MODE_DISABLE=0, /* Wi-Fi RF will be disabled */
    MODE_STATION,   /* Station mode */
    MODE_SOFTAP,    /* SoftAP mode */
    MODE_WDS,       /* Wireless Distribution System: Both Station & SoftAP mode */
} workmode_t;
 
/* AT command: AT+CWMODE */
extern int esp32_set_wmode(comport_t *comport, workmode_t mode, int autoconn);
 
/* AT command: AT+CWDHCP */
extern int esp32_set_dhcp(comport_t *comport, workmode_t mode, int enable);
 
/* AT command: AT+CWAUTOCONN */
extern int esp32_set_autoconn(comport_t *comport, int enable);
 
/* AT command: AT+CIPSTAMAC/CIPAPMAC */
extern int esp32_get_macaddr(comport_t *comport, workmode_t mode, char *mac);
 
/* AT command: AT+CIPSTA/CIPAP */
extern int esp32_get_ipaddr(comport_t *comport, workmode_t mode, char *ip, char *gateway);
 
/* AT command: AT+CIPSTA/AT+CIPAP  */
extern int esp32_set_ipaddr(comport_t *comport, workmode_t mode, char *ip, char *gateway);
 
/* AT command: AT+CWLAP */
extern int esp32_list_ap(comport_t *comport, char *buf, int size);
 
/* AT command: AT+CWJAP */
extern int esp32_connect_ap(comport_t *comport, char *ssid, char *pwd);
 
/* AT command: AT+CWQAP */
extern int esp32_disconn_ap(comport_t *comport);
 
/* AT command: AT+CWSTATE? , status value:
 * - 0: ESP32 station has not started any Wi-Fi connection.
 * - 1: ESP32 station has connected to an AP, but does not get an IPv4 address yet.
 * - 2: ESP32 station has connected to an AP, and got an IPv4 address.
 * - 3: ESP32 station is in Wi-Fi connecting or reconnecting state.
 * - 4: ESP32 station is in Wi-Fi disconnected state
 */
extern int esp32_join_status(comport_t *comport, int *status, char *ssid);
 
/* AT command:  AT+PING */
extern int esp32_ping(comport_t *comport, char *host, int timeout);
 
/* AT command:  AT+CWSAP */
typedef enum
{
    MODE_OPEN,
    /* WEP not support */
    MODE_WPAPSK = 2,
    MODE_WPA2PSK,
    MODE_WPA_WPA2PSK,
} encmode_t;
extern int esp32_set_softap(comport_t *comport, char *ssid, char *pwd, int channel, encmode_t encmode);
 
/* AT command:  AT+CWLIF */
extern int esp32_list_client(comport_t *comport, char *buf, int size);
 
 
/*+------------------------+
 *|   Socket AT command    |
 *+------------------------+*/
 
/* AT command: CIPMUX */
extern int esp32_set_socket_mux(comport_t *comport, int enable);
 
/* AT command: AT+CIPSERVERMAXCONN */
extern int esp32_set_socket_clients(comport_t *comport, int max);
 
/* AT command: AT+CIPSTO, timeout unit second */
extern int esp32_set_socket_timeout(comport_t *comport, int timeout);
 
/* AT command: AT+CIPSERVER */
extern int esp32_set_tcp_server(comport_t *comport, int port);
 
/* AT command: AT+CIPSERVER */
extern int esp32_del_tcp_server(comport_t *comport, int port);
 
/* AT command: AT+CIPSTART */
extern int esp32_set_tcp_client(comport_t *comport, int mux, char *host, int port);
 
/*+------------------------+
 *|     BLE AT command     |
 *+------------------------+*/
// RFU
 
#endif   /* ----- #ifndef _AT_ESP32_H_  ----- */