Example application to connect the DISCO_F746NG board to thethings.iO
Dependencies: BSP_DISCO_F746NG F7_Ethernet LCD_DISCO_F746NG NetworkAPI TS_DISCO_F746NG ThethingsiO_DISCO_F746NG mbed-dev mbed-rtos
Fork of TCP_Client_Example by
main.cpp@11:f4d618b8141f, 2012-09-27 (annotated)
- Committer:
- NegativeBlack
- Date:
- Thu Sep 27 09:32:23 2012 +0000
- Revision:
- 11:f4d618b8141f
- Parent:
- 9:4536224842d4
- Child:
- 13:385d1df93acc
Updated NetworkAPI library.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
donatien | 0:bb128f0e952f | 1 | #include "mbed.h" |
donatien | 0:bb128f0e952f | 2 | #include "EthernetInterface.h" |
donatien | 0:bb128f0e952f | 3 | |
NegativeBlack | 9:4536224842d4 | 4 | #include "NetworkAPI/buffer.hpp" |
NegativeBlack | 6:33b57f606f2b | 5 | #include "NetworkAPI/ip/address.hpp" |
NegativeBlack | 9:4536224842d4 | 6 | #include "NetworkAPI/tcp/socket.hpp" |
donatien | 0:bb128f0e952f | 7 | |
NegativeBlack | 6:33b57f606f2b | 8 | int |
NegativeBlack | 6:33b57f606f2b | 9 | main() |
NegativeBlack | 6:33b57f606f2b | 10 | { |
NegativeBlack | 6:33b57f606f2b | 11 | EthernetInterface interface; |
NegativeBlack | 6:33b57f606f2b | 12 | interface.init(); |
NegativeBlack | 6:33b57f606f2b | 13 | interface.connect(); |
NegativeBlack | 6:33b57f606f2b | 14 | printf("IP Address is %s\n\r", interface.getIPAddress()); |
NegativeBlack | 8:d55cac25e637 | 15 | |
NegativeBlack | 9:4536224842d4 | 16 | int result; |
NegativeBlack | 9:4536224842d4 | 17 | |
NegativeBlack | 9:4536224842d4 | 18 | network::tcp::Socket socket; |
NegativeBlack | 9:4536224842d4 | 19 | network::Buffer buffer(256); |
NegativeBlack | 9:4536224842d4 | 20 | std::string request("GET /media/uploads/donatien/hello.txt HTTP/1.1\r\nHost: %s\r\n\r\n"); |
NegativeBlack | 8:d55cac25e637 | 21 | |
NegativeBlack | 8:d55cac25e637 | 22 | if (socket.open() < 0) { |
NegativeBlack | 9:4536224842d4 | 23 | printf("Failed to open TCP Socket\n\r"); |
NegativeBlack | 8:d55cac25e637 | 24 | return -1; |
NegativeBlack | 8:d55cac25e637 | 25 | } |
NegativeBlack | 8:d55cac25e637 | 26 | |
NegativeBlack | 9:4536224842d4 | 27 | if (socket.connect("mbed.org", 80) < 0) { |
NegativeBlack | 9:4536224842d4 | 28 | printf("Failed to connect with mbed.org\n\r"); |
NegativeBlack | 9:4536224842d4 | 29 | return -1; |
NegativeBlack | 9:4536224842d4 | 30 | } |
NegativeBlack | 9:4536224842d4 | 31 | |
NegativeBlack | 9:4536224842d4 | 32 | if (socket.write((void *)request.data(), request.size()) < 0) { |
NegativeBlack | 9:4536224842d4 | 33 | printf("Failed to write HTTP request\n\r"); |
NegativeBlack | 9:4536224842d4 | 34 | return -1; |
NegativeBlack | 8:d55cac25e637 | 35 | } |
donatien | 0:bb128f0e952f | 36 | |
NegativeBlack | 9:4536224842d4 | 37 | do |
NegativeBlack | 9:4536224842d4 | 38 | { |
NegativeBlack | 9:4536224842d4 | 39 | result = socket.read(buffer); |
NegativeBlack | 11:f4d618b8141f | 40 | printf("Received %d bytes:\n\r%s\n\r", result, (char *)buffer.data()); |
NegativeBlack | 9:4536224842d4 | 41 | } while(result > 0); |
NegativeBlack | 9:4536224842d4 | 42 | |
NegativeBlack | 9:4536224842d4 | 43 | socket.close(); |
NegativeBlack | 6:33b57f606f2b | 44 | return 0; |
NegativeBlack | 6:33b57f606f2b | 45 | } |