A fork of the original interface for OS/2. Features a correctly-implemented recv (but retains the old behavior via recv2).
Dependents: weather_clock weather_clock
Diff: Socket/UDPSocket.cpp
- Revision:
- 12:c5f0eac67a8a
- Parent:
- 4:0bcec6272784
- Child:
- 13:41098c907200
--- a/Socket/UDPSocket.cpp Tue Jun 03 18:43:14 2014 +0000 +++ b/Socket/UDPSocket.cpp Wed Oct 08 19:57:58 2014 +0000 @@ -21,6 +21,8 @@ #include <string> #include <algorithm> +extern Serial pc; + UDPSocket::UDPSocket() { endpoint_configured = false; @@ -40,29 +42,30 @@ char cmd[17]; // set local port - sprintf(cmd, "set i l %d\r", port); - if (!wifi->sendCommand(cmd, "AOK")) - return -1; + sprintf(cmd, "set i l %d\n\r", port); + if (!wifi->sendCommand(cmd, "AOK")){ + pc.printf("bind to port failed\r\n"); + return -1;} // save - if (!wifi->sendCommand("save\r", "Stor")) - return -1; + //if (!wifi->sendCommand("save\n\r", "Stor")) + //return -1; // reboot - wifi->reboot(); + //wifi->reboot(); // set udp protocol - wifi->setProtocol(UDP); - + //wifi->setProtocol(UDP); + /* // connect the network if (wifi->isDHCP()) { - if (!wifi->sendCommand("join\r", "DHCP=ON", NULL, 10000)) + if (!wifi->sendCommand("join\n\r", "DHCP=ON", NULL, 10000)) return -1; } else { - if (!wifi->sendCommand("join\r", "Associated", NULL, 10000)) + if (!wifi->sendCommand("join\n\r", "Associated", NULL, 10000)) return -1; } - + */ // exit wifi->exit(); wifi->flush(); @@ -104,7 +107,8 @@ break; } } - } + pc.printf("UDPsocket::receiveFrom: %d bytes\r\n", nb_available); + } tmr.start(); @@ -135,12 +139,12 @@ host = ep.get_address(); if (host[0] != '\0') { // set host - sprintf(cmd, "set i h %s\r", host); + sprintf(cmd, "set i h %s\r\n", host); if (!wifi->sendCommand(cmd, "AOK")) return false; // set remote port - sprintf(cmd, "set i r %d\r", ep.get_port()); + sprintf(cmd, "set i r %d\r\n", ep.get_port()); if (!wifi->sendCommand(cmd, "AOK")) return false; @@ -161,7 +165,7 @@ string addr; int port; if (!endpoint_read) { - if (!wifi->sendCommand("get ip\r", NULL, recv)) + if (!wifi->sendCommand("get ip\r\n", NULL, recv)) return false; wifi->exit(); str = recv;