Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: ESP8266_W7500_Example DualNetworkInterface-Basic
Fork of ESP8266Interface by
Diff: Socket/UDPSocket.cpp
- Revision:
- 35:22d30e936e4c
- Parent:
- 31:fd0eaf273b11
- Child:
- 38:86e75901efc1
- Child:
- 44:3a7b6083210b
--- a/Socket/UDPSocket.cpp Thu Apr 30 21:09:14 2015 +0000
+++ b/Socket/UDPSocket.cpp Fri May 01 18:29:38 2015 +0000
@@ -47,8 +47,18 @@
Timer tmr;
int idx = 0;
+
confEndpoint(remote);
+ // initialize transparent mode if not already done
+ if(!endpoint_configured) {
+ // initialize UDP (default id of -1 means transparent mode)
+ if(!wifi->start(ESP_UDP_TYPE, remote._ipAddress, remote._port, remote._id)) {
+ return(-1);
+ }
+ endpoint_configured = true;
+ }
+
tmr.start();
while ((tmr.read_ms() < _timeout) || _blocking) {
@@ -68,13 +78,13 @@
int idx = 0;
int nb_available = 0;
int time = -1;
-
+
//make this the non-blocking case and return if <= 0
// remember to change the config to blocking
// if ( ! _blocking) {
- // if ( wifi.readable <= 0 ) {
- // return (wifi.readable);
- // }
+ // if ( wifi.readable <= 0 ) {
+ // return (wifi.readable);
+ // }
// }
//---
tmr.start();
@@ -90,28 +100,28 @@
// blocking case
else {
tmr.reset();
-
- while (time < _timeout){
+
+ while (time < _timeout) {
nb_available = wifi->readable();
if (nb_available < 0) return nb_available;
if (nb_available > 0) break ;
time = tmr.read_ms();
}
-
- if (nb_available == 0) return nb_available;
- }
-
+
+ if (nb_available == 0) return nb_available;
+ }
+
// change this to < 20 mS timeout per byte to detect end of packet gap
// this may not work due to buffering at the UART interface
tmr.reset();
// while ( tmr.read_ms() < 20 ) {
- // if ( wifi.readable() && (idx < length) ) {
- // buffer[idx++] = wifi->getc();
- // tmr.reset();
- // }
- // if ( idx == length ) {
- // break;
- // }
+ // if ( wifi.readable() && (idx < length) ) {
+ // buffer[idx++] = wifi->getc();
+ // tmr.reset();
+ // }
+ // if ( idx == length ) {
+ // break;
+ // }
// }
//---
while (time < _timeout) {
