26
26
27
27
// ESP8266Interface implementation
28
28
ESP8266Interface::ESP8266Interface (PinName tx, PinName rx, bool debug)
29
- : _esp(tx, rx, debug), _stack(_esp)
29
+ : _esp(tx, rx, debug)
30
30
{
31
- // Do nothing
31
+ memset (_ids, 0 , sizeof (_ids));
32
+ memset (_cbs, 0 , sizeof (_cbs));
33
+
34
+ _esp.attach (this , &ESP8266Interface::event);
32
35
}
33
36
34
37
int ESP8266Interface::connect (
@@ -78,31 +81,13 @@ const char* ESP8266Interface::get_mac_address()
78
81
return _esp.getMACAddress ();
79
82
}
80
83
81
- NetworkStack* ESP8266Interface::get_stack (void )
82
- {
83
- return &_stack;
84
- }
85
-
86
84
struct esp8266_socket {
87
85
int id;
88
86
nsapi_protocol_t proto;
89
87
bool connected;
90
88
};
91
89
92
- ESP8266Stack::ESP8266Stack (ESP8266 &esp): _esp(esp)
93
- {
94
- memset (_ids, 0 , sizeof (_ids));
95
- memset (_cbs, 0 , sizeof (_cbs));
96
-
97
- _esp.attach (this , &ESP8266Stack::event);
98
- };
99
-
100
- const char *ESP8266Stack::get_ip_address ()
101
- {
102
- return _esp.getIPAddress ();
103
- }
104
-
105
- int ESP8266Stack::socket_open (void **handle, nsapi_protocol_t proto)
90
+ int ESP8266Interface::socket_open (void **handle, nsapi_protocol_t proto)
106
91
{
107
92
// Look for an unused socket
108
93
int id = -1 ;
@@ -131,7 +116,7 @@ int ESP8266Stack::socket_open(void **handle, nsapi_protocol_t proto)
131
116
return 0 ;
132
117
}
133
118
134
- int ESP8266Stack ::socket_close (void *handle)
119
+ int ESP8266Interface ::socket_close (void *handle)
135
120
{
136
121
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
137
122
int err = 0 ;
@@ -146,17 +131,17 @@ int ESP8266Stack::socket_close(void *handle)
146
131
return err;
147
132
}
148
133
149
- int ESP8266Stack ::socket_bind (void *handle, const SocketAddress &address)
134
+ int ESP8266Interface ::socket_bind (void *handle, const SocketAddress &address)
150
135
{
151
136
return NSAPI_ERROR_UNSUPPORTED;
152
137
}
153
138
154
- int ESP8266Stack ::socket_listen (void *handle, int backlog)
139
+ int ESP8266Interface ::socket_listen (void *handle, int backlog)
155
140
{
156
141
return NSAPI_ERROR_UNSUPPORTED;
157
142
}
158
143
159
- int ESP8266Stack ::socket_connect (void *handle, const SocketAddress &addr)
144
+ int ESP8266Interface ::socket_connect (void *handle, const SocketAddress &addr)
160
145
{
161
146
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
162
147
_esp.setTimeout (ESP8266_MISC_TIMEOUT);
@@ -170,12 +155,12 @@ int ESP8266Stack::socket_connect(void *handle, const SocketAddress &addr)
170
155
return 0 ;
171
156
}
172
157
173
- int ESP8266Stack ::socket_accept (void **handle, void *server)
158
+ int ESP8266Interface ::socket_accept (void **handle, void *server)
174
159
{
175
160
return NSAPI_ERROR_UNSUPPORTED;
176
161
}
177
162
178
- int ESP8266Stack ::socket_send (void *handle, const void *data, unsigned size)
163
+ int ESP8266Interface ::socket_send (void *handle, const void *data, unsigned size)
179
164
{
180
165
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
181
166
_esp.setTimeout (ESP8266_SEND_TIMEOUT);
@@ -187,7 +172,7 @@ int ESP8266Stack::socket_send(void *handle, const void *data, unsigned size)
187
172
return size;
188
173
}
189
174
190
- int ESP8266Stack ::socket_recv (void *handle, void *data, unsigned size)
175
+ int ESP8266Interface ::socket_recv (void *handle, void *data, unsigned size)
191
176
{
192
177
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
193
178
_esp.setTimeout (ESP8266_RECV_TIMEOUT);
@@ -200,7 +185,7 @@ int ESP8266Stack::socket_recv(void *handle, void *data, unsigned size)
200
185
return recv;
201
186
}
202
187
203
- int ESP8266Stack ::socket_sendto (void *handle, const SocketAddress &addr, const void *data, unsigned size)
188
+ int ESP8266Interface ::socket_sendto (void *handle, const SocketAddress &addr, const void *data, unsigned size)
204
189
{
205
190
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
206
191
if (!socket->connected ) {
@@ -213,20 +198,20 @@ int ESP8266Stack::socket_sendto(void *handle, const SocketAddress &addr, const v
213
198
return socket_send (socket, data, size);
214
199
}
215
200
216
- int ESP8266Stack ::socket_recvfrom (void *handle, SocketAddress *addr, void *data, unsigned size)
201
+ int ESP8266Interface ::socket_recvfrom (void *handle, SocketAddress *addr, void *data, unsigned size)
217
202
{
218
203
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
219
204
return socket_recv (socket, data, size);
220
205
}
221
206
222
- void ESP8266Stack ::socket_attach (void *handle, void (*callback)(void *), void *data)
207
+ void ESP8266Interface ::socket_attach (void *handle, void (*callback)(void *), void *data)
223
208
{
224
209
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
225
210
_cbs[socket->id ].callback = callback;
226
211
_cbs[socket->id ].data = data;
227
212
}
228
213
229
- void ESP8266Stack ::event () {
214
+ void ESP8266Interface ::event () {
230
215
for (int i = 0 ; i < ESP8266_SOCKET_COUNT; i++) {
231
216
if (_cbs[i].callback ) {
232
217
_cbs[i].callback (_cbs[i].data );
0 commit comments