First commit
Dependencies: EthernetInterface FXAS21002 FXOS8700 NetworkAPI mbed-rtos mbed
main.cpp@8:d55cac25e637, 2012-07-18 (annotated)
- Committer:
- NegativeBlack
- Date:
- Wed Jul 18 11:24:12 2012 +0000
- Revision:
- 8:d55cac25e637
- Parent:
- 6:33b57f606f2b
- Child:
- 9:a4c85bea2d77
Added simple UDP communication example.
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 | 6:33b57f606f2b | 4 | #include "NetworkAPI/ip/address.hpp" |
NegativeBlack | 8:d55cac25e637 | 5 | #include "NetworkAPI/udp/socket.hpp" |
donatien | 0:bb128f0e952f | 6 | |
NegativeBlack | 6:33b57f606f2b | 7 | int |
NegativeBlack | 6:33b57f606f2b | 8 | main() |
NegativeBlack | 6:33b57f606f2b | 9 | { |
NegativeBlack | 6:33b57f606f2b | 10 | EthernetInterface interface; |
NegativeBlack | 6:33b57f606f2b | 11 | interface.init(); |
NegativeBlack | 6:33b57f606f2b | 12 | interface.connect(); |
NegativeBlack | 6:33b57f606f2b | 13 | printf("IP Address is %s\n\r", interface.getIPAddress()); |
NegativeBlack | 8:d55cac25e637 | 14 | |
NegativeBlack | 8:d55cac25e637 | 15 | network::udp::Socket socket; |
NegativeBlack | 8:d55cac25e637 | 16 | char buffer[1024]; |
NegativeBlack | 8:d55cac25e637 | 17 | int result = 0; |
NegativeBlack | 8:d55cac25e637 | 18 | |
NegativeBlack | 8:d55cac25e637 | 19 | if (socket.open() < 0) { |
NegativeBlack | 8:d55cac25e637 | 20 | printf("Failed to open UDP Socket\n\r"); |
NegativeBlack | 8:d55cac25e637 | 21 | return -1; |
NegativeBlack | 8:d55cac25e637 | 22 | } |
NegativeBlack | 8:d55cac25e637 | 23 | |
NegativeBlack | 8:d55cac25e637 | 24 | if (socket.bind(42) < 0) { |
NegativeBlack | 8:d55cac25e637 | 25 | printf("Failed to bind UDP Socket to port 42\n\r"); |
NegativeBlack | 8:d55cac25e637 | 26 | } |
donatien | 0:bb128f0e952f | 27 | |
NegativeBlack | 8:d55cac25e637 | 28 | while (true) { |
NegativeBlack | 8:d55cac25e637 | 29 | result = socket.receive(buffer, 1024); |
NegativeBlack | 8:d55cac25e637 | 30 | |
NegativeBlack | 8:d55cac25e637 | 31 | switch (result) { |
NegativeBlack | 8:d55cac25e637 | 32 | case -1: |
NegativeBlack | 8:d55cac25e637 | 33 | printf("Failed to read from UDP Socket\n\r"); |
NegativeBlack | 8:d55cac25e637 | 34 | return -1; |
NegativeBlack | 8:d55cac25e637 | 35 | |
NegativeBlack | 8:d55cac25e637 | 36 | case 0: |
NegativeBlack | 8:d55cac25e637 | 37 | printf("Nothing received...?\n\r"); |
NegativeBlack | 8:d55cac25e637 | 38 | continue; |
NegativeBlack | 8:d55cac25e637 | 39 | |
NegativeBlack | 8:d55cac25e637 | 40 | default: |
NegativeBlack | 8:d55cac25e637 | 41 | printf("Received %d bytes from %s:%d\n\r", result, |
NegativeBlack | 8:d55cac25e637 | 42 | socket.getRemoteEndpoint().getAddress().toString().c_str(), |
NegativeBlack | 8:d55cac25e637 | 43 | socket.getRemoteEndpoint().getPort()); |
NegativeBlack | 8:d55cac25e637 | 44 | |
NegativeBlack | 8:d55cac25e637 | 45 | if (!socket.getRemoteEndpoint().getAddress().isEmpty()) { |
NegativeBlack | 8:d55cac25e637 | 46 | socket.send(buffer, result, socket.getRemoteEndpoint()); |
NegativeBlack | 8:d55cac25e637 | 47 | } |
NegativeBlack | 8:d55cac25e637 | 48 | continue; |
NegativeBlack | 8:d55cac25e637 | 49 | } |
NegativeBlack | 8:d55cac25e637 | 50 | } |
NegativeBlack | 8:d55cac25e637 | 51 | |
NegativeBlack | 6:33b57f606f2b | 52 | return 0; |
NegativeBlack | 6:33b57f606f2b | 53 | } |