2626
2727// ESP8266Interface implementation
2828ESP8266Interface::ESP8266Interface (PinName tx, PinName rx, bool debug)
29- : _esp(tx, rx, debug), _stack(_esp)
29+ : _esp(tx, rx, debug)
3030{
31- // Do nothing
31+ memset (_ids, 0 , sizeof (_ids));
32+ memset (_cbs, 0 , sizeof (_cbs));
33+
34+ _esp.attach (this , &ESP8266Interface::event);
3235}
3336
3437int ESP8266Interface::connect (
@@ -78,31 +81,13 @@ const char* ESP8266Interface::get_mac_address()
7881 return _esp.getMACAddress ();
7982}
8083
81- NetworkStack* ESP8266Interface::get_stack (void )
82- {
83- return &_stack;
84- }
85-
8684struct esp8266_socket {
8785 int id;
8886 nsapi_protocol_t proto;
8987 bool connected;
9088};
9189
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)
10691{
10792 // Look for an unused socket
10893 int id = -1 ;
@@ -131,7 +116,7 @@ int ESP8266Stack::socket_open(void **handle, nsapi_protocol_t proto)
131116 return 0 ;
132117}
133118
134- int ESP8266Stack ::socket_close (void *handle)
119+ int ESP8266Interface ::socket_close (void *handle)
135120{
136121 struct esp8266_socket *socket = (struct esp8266_socket *)handle;
137122 int err = 0 ;
@@ -146,17 +131,17 @@ int ESP8266Stack::socket_close(void *handle)
146131 return err;
147132}
148133
149- int ESP8266Stack ::socket_bind (void *handle, const SocketAddress &address)
134+ int ESP8266Interface ::socket_bind (void *handle, const SocketAddress &address)
150135{
151136 return NSAPI_ERROR_UNSUPPORTED;
152137}
153138
154- int ESP8266Stack ::socket_listen (void *handle, int backlog)
139+ int ESP8266Interface ::socket_listen (void *handle, int backlog)
155140{
156141 return NSAPI_ERROR_UNSUPPORTED;
157142}
158143
159- int ESP8266Stack ::socket_connect (void *handle, const SocketAddress &addr)
144+ int ESP8266Interface ::socket_connect (void *handle, const SocketAddress &addr)
160145{
161146 struct esp8266_socket *socket = (struct esp8266_socket *)handle;
162147 _esp.setTimeout (ESP8266_MISC_TIMEOUT);
@@ -170,12 +155,12 @@ int ESP8266Stack::socket_connect(void *handle, const SocketAddress &addr)
170155 return 0 ;
171156}
172157
173- int ESP8266Stack ::socket_accept (void **handle, void *server)
158+ int ESP8266Interface ::socket_accept (void **handle, void *server)
174159{
175160 return NSAPI_ERROR_UNSUPPORTED;
176161}
177162
178- int ESP8266Stack ::socket_send (void *handle, const void *data, unsigned size)
163+ int ESP8266Interface ::socket_send (void *handle, const void *data, unsigned size)
179164{
180165 struct esp8266_socket *socket = (struct esp8266_socket *)handle;
181166 _esp.setTimeout (ESP8266_SEND_TIMEOUT);
@@ -187,7 +172,7 @@ int ESP8266Stack::socket_send(void *handle, const void *data, unsigned size)
187172 return size;
188173}
189174
190- int ESP8266Stack ::socket_recv (void *handle, void *data, unsigned size)
175+ int ESP8266Interface ::socket_recv (void *handle, void *data, unsigned size)
191176{
192177 struct esp8266_socket *socket = (struct esp8266_socket *)handle;
193178 _esp.setTimeout (ESP8266_RECV_TIMEOUT);
@@ -200,7 +185,7 @@ int ESP8266Stack::socket_recv(void *handle, void *data, unsigned size)
200185 return recv;
201186}
202187
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)
204189{
205190 struct esp8266_socket *socket = (struct esp8266_socket *)handle;
206191 if (!socket->connected ) {
@@ -213,20 +198,20 @@ int ESP8266Stack::socket_sendto(void *handle, const SocketAddress &addr, const v
213198 return socket_send (socket, data, size);
214199}
215200
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)
217202{
218203 struct esp8266_socket *socket = (struct esp8266_socket *)handle;
219204 return socket_recv (socket, data, size);
220205}
221206
222- void ESP8266Stack ::socket_attach (void *handle, void (*callback)(void *), void *data)
207+ void ESP8266Interface ::socket_attach (void *handle, void (*callback)(void *), void *data)
223208{
224209 struct esp8266_socket *socket = (struct esp8266_socket *)handle;
225210 _cbs[socket->id ].callback = callback;
226211 _cbs[socket->id ].data = data;
227212}
228213
229- void ESP8266Stack ::event () {
214+ void ESP8266Interface ::event () {
230215 for (int i = 0 ; i < ESP8266_SOCKET_COUNT; i++) {
231216 if (_cbs[i].callback ) {
232217 _cbs[i].callback (_cbs[i].data );
0 commit comments