24
24
// Firmware version
25
25
#define ESP8266_VERSION 2
26
26
27
+ ESP8266Interface::ESP8266Interface ()
28
+ : _esp(MBED_CONF_ESP8266_TX, MBED_CONF_ESP8266_RX, MBED_CONF_ESP8266_DEBUG),
29
+ _initialized(false ),
30
+ _started(false )
31
+ {
32
+ memset (_ids, 0 , sizeof (_ids));
33
+ memset (_cbs, 0 , sizeof (_cbs));
34
+ memset (ap_ssid, 0 , sizeof (ap_ssid));
35
+ memset (ap_pass, 0 , sizeof (ap_pass));
36
+ memset (_local_ports, 0 , sizeof (_local_ports));
37
+ ap_sec = NSAPI_SECURITY_UNKNOWN;
38
+
39
+ _esp.sigio (this , &ESP8266Interface::event);
40
+ _esp.setTimeout ();
41
+ }
42
+
27
43
// ESP8266Interface implementation
28
44
ESP8266Interface::ESP8266Interface (PinName tx, PinName rx, bool debug)
29
45
: _esp(tx, rx, debug),
@@ -271,24 +287,24 @@ int ESP8266Interface::socket_open(void **handle, nsapi_protocol_t proto)
271
287
{
272
288
// Look for an unused socket
273
289
int id = -1 ;
274
-
290
+
275
291
for (int i = 0 ; i < ESP8266_SOCKET_COUNT; i++) {
276
292
if (!_ids[i]) {
277
293
id = i;
278
294
_ids[i] = true ;
279
295
break ;
280
296
}
281
297
}
282
-
298
+
283
299
if (id == -1 ) {
284
300
return NSAPI_ERROR_NO_SOCKET;
285
301
}
286
-
302
+
287
303
struct esp8266_socket *socket = new struct esp8266_socket ;
288
304
if (!socket) {
289
305
return NSAPI_ERROR_NO_SOCKET;
290
306
}
291
-
307
+
292
308
socket->id = id;
293
309
socket->proto = proto;
294
310
socket->connected = false ;
@@ -305,7 +321,7 @@ int ESP8266Interface::socket_close(void *handle)
305
321
if (!socket) {
306
322
return NSAPI_ERROR_NO_SOCKET;
307
323
}
308
-
324
+
309
325
if (socket->connected && !_esp.close (socket->id )) {
310
326
err = NSAPI_ERROR_DEVICE_ERROR;
311
327
}
@@ -372,7 +388,7 @@ int ESP8266Interface::socket_connect(void *handle, const SocketAddress &addr)
372
388
socket->connected = true ;
373
389
return 0 ;
374
390
}
375
-
391
+
376
392
int ESP8266Interface::socket_accept (void *server, void **socket, SocketAddress *addr)
377
393
{
378
394
return NSAPI_ERROR_UNSUPPORTED;
@@ -386,7 +402,7 @@ int ESP8266Interface::socket_send(void *handle, const void *data, unsigned size)
386
402
if (!socket) {
387
403
return NSAPI_ERROR_NO_SOCKET;
388
404
}
389
-
405
+
390
406
status = _esp.send (socket->id , data, size);
391
407
392
408
return status != NSAPI_ERROR_OK ? status : size;
@@ -395,7 +411,7 @@ int ESP8266Interface::socket_send(void *handle, const void *data, unsigned size)
395
411
int ESP8266Interface::socket_recv (void *handle, void *data, unsigned size)
396
412
{
397
413
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
398
-
414
+
399
415
if (!socket) {
400
416
return NSAPI_ERROR_NO_SOCKET;
401
417
}
@@ -409,7 +425,7 @@ int ESP8266Interface::socket_recv(void *handle, void *data, unsigned size)
409
425
} else {
410
426
recv = _esp.recv_udp (socket->id , data, size);
411
427
}
412
-
428
+
413
429
return recv;
414
430
}
415
431
@@ -439,7 +455,7 @@ int ESP8266Interface::socket_sendto(void *handle, const SocketAddress &addr, con
439
455
}
440
456
socket->addr = addr;
441
457
}
442
-
458
+
443
459
return socket_send (socket, data, size);
444
460
}
445
461
0 commit comments