
UDP echo client using the WiConnect Library and mbed UDP Socket API.
main.cpp@5:f31112eedddd, 2014-11-27 (annotated)
- Committer:
- dan_ackme
- Date:
- Thu Nov 27 10:27:53 2014 +0000
- Revision:
- 5:f31112eedddd
- Parent:
- 4:9e8c1081a9eb
updated for latest wiconnect
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dan_ackme | 0:0675bde9bdd5 | 1 | |
dan_ackme | 0:0675bde9bdd5 | 2 | #include "Wiconnect.h" |
dan_ackme | 0:0675bde9bdd5 | 3 | #include "target_config.h" |
dan_ackme | 0:0675bde9bdd5 | 4 | |
dan_ackme | 0:0675bde9bdd5 | 5 | #define NETWORK_SSID "<YOUR NETWORK SSID HERE>" |
dan_ackme | 0:0675bde9bdd5 | 6 | #define NETWORK_PASSWORD "<YOUR NETWORK PASSWORD HERE>" |
dan_ackme | 0:0675bde9bdd5 | 7 | |
dan_ackme | 5:f31112eedddd | 8 | #define ECHO_SERVER_ADDRESS "<ECHO Server's IP Addres HERE>" |
dan_ackme | 0:0675bde9bdd5 | 9 | #define ECHO_SERVER_PORT 7 |
dan_ackme | 0:0675bde9bdd5 | 10 | |
dan_ackme | 0:0675bde9bdd5 | 11 | |
dan_ackme | 5:f31112eedddd | 12 | |
dan_ackme | 0:0675bde9bdd5 | 13 | static Serial consoleSerial(STDIO_UART_TX, STDIO_UART_RX); |
dan_ackme | 0:0675bde9bdd5 | 14 | |
dan_ackme | 0:0675bde9bdd5 | 15 | static char in_buffer[256]; |
dan_ackme | 0:0675bde9bdd5 | 16 | |
dan_ackme | 0:0675bde9bdd5 | 17 | int main() |
dan_ackme | 0:0675bde9bdd5 | 18 | { |
dan_ackme | 0:0675bde9bdd5 | 19 | WiconnectResult result; |
dan_ackme | 0:0675bde9bdd5 | 20 | SerialConfig serialConfig(WICONNECT_RX_PIN, WICONNECT_TX_PIN, 256); |
dan_ackme | 0:0675bde9bdd5 | 21 | Wiconnect wiconnect(serialConfig, 256, NULL, WICONNECT_RESET_PIN); |
dan_ackme | 0:0675bde9bdd5 | 22 | |
dan_ackme | 0:0675bde9bdd5 | 23 | consoleSerial.baud(115200); |
dan_ackme | 5:f31112eedddd | 24 | printf("Initializing WiConnect...\r\n"); |
dan_ackme | 0:0675bde9bdd5 | 25 | |
dan_ackme | 0:0675bde9bdd5 | 26 | if(WICONNECT_FAILED(result, wiconnect.init(true))) |
dan_ackme | 0:0675bde9bdd5 | 27 | { |
dan_ackme | 0:0675bde9bdd5 | 28 | printf("Failed to initialize Wiconnect: %s\r\n", Wiconnect::getWiconnectResultStr(result)); |
dan_ackme | 4:9e8c1081a9eb | 29 | if(result == WICONNECT_FIRMWARE_OUTDATED) |
dan_ackme | 4:9e8c1081a9eb | 30 | { |
dan_ackme | 5:f31112eedddd | 31 | printf("** The WiFi firmware is not supported. Run the ota example to update the firmware:\r\n"); |
dan_ackme | 5:f31112eedddd | 32 | printf("https://developer.mbed.org/teams/ACKme/code/wiconnect-ota_example\r\n\r\n"); |
dan_ackme | 4:9e8c1081a9eb | 33 | } |
dan_ackme | 0:0675bde9bdd5 | 34 | for(;;); |
dan_ackme | 0:0675bde9bdd5 | 35 | } |
dan_ackme | 0:0675bde9bdd5 | 36 | else if(WICONNECT_FAILED(result, wiconnect.join(NETWORK_SSID, NETWORK_PASSWORD))) |
dan_ackme | 0:0675bde9bdd5 | 37 | { |
dan_ackme | 0:0675bde9bdd5 | 38 | printf("Failed to join network: %s\r\n", Wiconnect::getWiconnectResultStr(result)); |
dan_ackme | 0:0675bde9bdd5 | 39 | for(;;); |
dan_ackme | 0:0675bde9bdd5 | 40 | } |
dan_ackme | 0:0675bde9bdd5 | 41 | |
dan_ackme | 0:0675bde9bdd5 | 42 | |
dan_ackme | 0:0675bde9bdd5 | 43 | UDPSocket sock; |
dan_ackme | 0:0675bde9bdd5 | 44 | sock.init(); |
dan_ackme | 0:0675bde9bdd5 | 45 | |
dan_ackme | 0:0675bde9bdd5 | 46 | Endpoint echo_server; |
dan_ackme | 0:0675bde9bdd5 | 47 | echo_server.set_address(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
dan_ackme | 0:0675bde9bdd5 | 48 | |
dan_ackme | 0:0675bde9bdd5 | 49 | |
dan_ackme | 0:0675bde9bdd5 | 50 | char out_buffer[] = "Hello World\n"; |
dan_ackme | 0:0675bde9bdd5 | 51 | if(sock.sendTo(echo_server, out_buffer, sizeof(out_buffer)) == -1) |
dan_ackme | 0:0675bde9bdd5 | 52 | { |
dan_ackme | 0:0675bde9bdd5 | 53 | printf("Failed to send data\r\n"); |
dan_ackme | 0:0675bde9bdd5 | 54 | for(;;); |
dan_ackme | 0:0675bde9bdd5 | 55 | } |
dan_ackme | 0:0675bde9bdd5 | 56 | |
dan_ackme | 0:0675bde9bdd5 | 57 | |
dan_ackme | 0:0675bde9bdd5 | 58 | int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer)); |
dan_ackme | 0:0675bde9bdd5 | 59 | if(n == -1) |
dan_ackme | 0:0675bde9bdd5 | 60 | { |
dan_ackme | 0:0675bde9bdd5 | 61 | printf("Failed to receive data\r\n"); |
dan_ackme | 0:0675bde9bdd5 | 62 | for(;;); |
dan_ackme | 0:0675bde9bdd5 | 63 | } |
dan_ackme | 0:0675bde9bdd5 | 64 | in_buffer[n] = '\0'; |
dan_ackme | 0:0675bde9bdd5 | 65 | printf("%s", in_buffer); |
dan_ackme | 0:0675bde9bdd5 | 66 | |
dan_ackme | 0:0675bde9bdd5 | 67 | |
dan_ackme | 0:0675bde9bdd5 | 68 | sock.close(); |
dan_ackme | 0:0675bde9bdd5 | 69 | wiconnect.deinit(); |
dan_ackme | 0:0675bde9bdd5 | 70 | |
dan_ackme | 0:0675bde9bdd5 | 71 | printf("Finished!"); |
dan_ackme | 0:0675bde9bdd5 | 72 | while(true) {} |
dan_ackme | 0:0675bde9bdd5 | 73 | } |