21
21
#include " nsapi_types.h"
22
22
23
23
24
+ #ifndef MBED_CONF_ESP8266_TX
25
+ #ifdef TARGET_FF_ARDUINO
26
+ #define MBED_CONF_ESP8266_TX D1
27
+ #else
28
+ #define MBED_CONF_ESP8266_TX NC
29
+ #endif
30
+ #endif
31
+
32
+ #ifndef MBED_CONF_ESP8266_RX
33
+ #ifdef TARGET_FF_ARDUINO
34
+ #define MBED_CONF_ESP8266_RX D0
35
+ #else
36
+ #define MBED_CONF_ESP8266_RX NC
37
+ #endif
38
+ #endif
39
+
24
40
// Firmware version
25
41
#define ESP8266_VERSION 2
26
42
43
+ ESP8266Interface::ESP8266Interface ()
44
+ : _esp(MBED_CONF_ESP8266_TX, MBED_CONF_ESP8266_RX, MBED_CONF_ESP8266_DEBUG),
45
+ _initialized(false ),
46
+ _started(false )
47
+ {
48
+ memset (_ids, 0 , sizeof (_ids));
49
+ memset (_cbs, 0 , sizeof (_cbs));
50
+ memset (ap_ssid, 0 , sizeof (ap_ssid));
51
+ memset (ap_pass, 0 , sizeof (ap_pass));
52
+ memset (_local_ports, 0 , sizeof (_local_ports));
53
+ ap_sec = NSAPI_SECURITY_UNKNOWN;
54
+
55
+ _esp.sigio (this , &ESP8266Interface::event);
56
+ _esp.setTimeout ();
57
+ }
58
+
27
59
// ESP8266Interface implementation
28
60
ESP8266Interface::ESP8266Interface (PinName tx, PinName rx, bool debug)
29
61
: _esp(tx, rx, debug),
@@ -271,24 +303,24 @@ int ESP8266Interface::socket_open(void **handle, nsapi_protocol_t proto)
271
303
{
272
304
// Look for an unused socket
273
305
int id = -1 ;
274
-
306
+
275
307
for (int i = 0 ; i < ESP8266_SOCKET_COUNT; i++) {
276
308
if (!_ids[i]) {
277
309
id = i;
278
310
_ids[i] = true ;
279
311
break ;
280
312
}
281
313
}
282
-
314
+
283
315
if (id == -1 ) {
284
316
return NSAPI_ERROR_NO_SOCKET;
285
317
}
286
-
318
+
287
319
struct esp8266_socket *socket = new struct esp8266_socket ;
288
320
if (!socket) {
289
321
return NSAPI_ERROR_NO_SOCKET;
290
322
}
291
-
323
+
292
324
socket->id = id;
293
325
socket->proto = proto;
294
326
socket->connected = false ;
@@ -305,7 +337,7 @@ int ESP8266Interface::socket_close(void *handle)
305
337
if (!socket) {
306
338
return NSAPI_ERROR_NO_SOCKET;
307
339
}
308
-
340
+
309
341
if (socket->connected && !_esp.close (socket->id )) {
310
342
err = NSAPI_ERROR_DEVICE_ERROR;
311
343
}
@@ -372,7 +404,7 @@ int ESP8266Interface::socket_connect(void *handle, const SocketAddress &addr)
372
404
socket->connected = true ;
373
405
return 0 ;
374
406
}
375
-
407
+
376
408
int ESP8266Interface::socket_accept (void *server, void **socket, SocketAddress *addr)
377
409
{
378
410
return NSAPI_ERROR_UNSUPPORTED;
@@ -386,7 +418,7 @@ int ESP8266Interface::socket_send(void *handle, const void *data, unsigned size)
386
418
if (!socket) {
387
419
return NSAPI_ERROR_NO_SOCKET;
388
420
}
389
-
421
+
390
422
status = _esp.send (socket->id , data, size);
391
423
392
424
return status != NSAPI_ERROR_OK ? status : size;
@@ -395,7 +427,7 @@ int ESP8266Interface::socket_send(void *handle, const void *data, unsigned size)
395
427
int ESP8266Interface::socket_recv (void *handle, void *data, unsigned size)
396
428
{
397
429
struct esp8266_socket *socket = (struct esp8266_socket *)handle;
398
-
430
+
399
431
if (!socket) {
400
432
return NSAPI_ERROR_NO_SOCKET;
401
433
}
@@ -409,7 +441,7 @@ int ESP8266Interface::socket_recv(void *handle, void *data, unsigned size)
409
441
} else {
410
442
recv = _esp.recv_udp (socket->id , data, size);
411
443
}
412
-
444
+
413
445
return recv;
414
446
}
415
447
@@ -439,7 +471,7 @@ int ESP8266Interface::socket_sendto(void *handle, const SocketAddress &addr, con
439
471
}
440
472
socket->addr = addr;
441
473
}
442
-
474
+
443
475
return socket_send (socket, data, size);
444
476
}
445
477
0 commit comments