Threads + Network Demo
Dependencies: EthernetInterface mbed-rtos mbed-src
Fork of TestNetComm by
main.cpp@0:9eba2bd74769, 2014-05-04 (annotated)
- Committer:
- MalcolmNixon
- Date:
- Sun May 04 02:09:14 2014 +0000
- Revision:
- 0:9eba2bd74769
- Child:
- 1:429f7bca62aa
Initial Revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MalcolmNixon | 0:9eba2bd74769 | 1 | #include "EthernetInterface.h" |
MalcolmNixon | 0:9eba2bd74769 | 2 | #include "Thread.h" |
MalcolmNixon | 0:9eba2bd74769 | 3 | #include "mbed.h" |
MalcolmNixon | 0:9eba2bd74769 | 4 | |
MalcolmNixon | 0:9eba2bd74769 | 5 | |
MalcolmNixon | 0:9eba2bd74769 | 6 | |
MalcolmNixon | 0:9eba2bd74769 | 7 | // Construct the Ethernet interface |
MalcolmNixon | 0:9eba2bd74769 | 8 | EthernetInterface eth; |
MalcolmNixon | 0:9eba2bd74769 | 9 | |
MalcolmNixon | 0:9eba2bd74769 | 10 | // Led thread procedure |
MalcolmNixon | 0:9eba2bd74769 | 11 | void ledThreadProc(const void *) |
MalcolmNixon | 0:9eba2bd74769 | 12 | { |
MalcolmNixon | 0:9eba2bd74769 | 13 | // Create a digital output pin on LED1 (the Red LED) |
MalcolmNixon | 0:9eba2bd74769 | 14 | DigitalOut led1(LED1); |
MalcolmNixon | 0:9eba2bd74769 | 15 | |
MalcolmNixon | 0:9eba2bd74769 | 16 | // Loop forever |
MalcolmNixon | 0:9eba2bd74769 | 17 | for (;;) |
MalcolmNixon | 0:9eba2bd74769 | 18 | { |
MalcolmNixon | 0:9eba2bd74769 | 19 | // Turn LED off |
MalcolmNixon | 0:9eba2bd74769 | 20 | led1 = 1; |
MalcolmNixon | 0:9eba2bd74769 | 21 | |
MalcolmNixon | 0:9eba2bd74769 | 22 | // Wait for 100ms |
MalcolmNixon | 0:9eba2bd74769 | 23 | Thread::wait(100); |
MalcolmNixon | 0:9eba2bd74769 | 24 | |
MalcolmNixon | 0:9eba2bd74769 | 25 | // Turn LED on |
MalcolmNixon | 0:9eba2bd74769 | 26 | led1 = 0; |
MalcolmNixon | 0:9eba2bd74769 | 27 | |
MalcolmNixon | 0:9eba2bd74769 | 28 | // Wait for 100ms |
MalcolmNixon | 0:9eba2bd74769 | 29 | Thread::wait(100); |
MalcolmNixon | 0:9eba2bd74769 | 30 | } |
MalcolmNixon | 0:9eba2bd74769 | 31 | } |
MalcolmNixon | 0:9eba2bd74769 | 32 | |
MalcolmNixon | 0:9eba2bd74769 | 33 | int main(void) |
MalcolmNixon | 0:9eba2bd74769 | 34 | { |
MalcolmNixon | 0:9eba2bd74769 | 35 | // Configure the Ethernet interface |
MalcolmNixon | 0:9eba2bd74769 | 36 | eth.init("192.168.5.100", "255.255.255.0", "0.0.0.0"); |
MalcolmNixon | 0:9eba2bd74769 | 37 | |
MalcolmNixon | 0:9eba2bd74769 | 38 | // Start the ethernet interface |
MalcolmNixon | 0:9eba2bd74769 | 39 | eth.connect(); |
MalcolmNixon | 0:9eba2bd74769 | 40 | |
MalcolmNixon | 0:9eba2bd74769 | 41 | // Start a thread for led blink |
MalcolmNixon | 0:9eba2bd74769 | 42 | Thread ledThread(ledThreadProc, 0, osPriorityHigh); |
MalcolmNixon | 0:9eba2bd74769 | 43 | |
MalcolmNixon | 0:9eba2bd74769 | 44 | UDPSocket sock; |
MalcolmNixon | 0:9eba2bd74769 | 45 | sock.init(); |
MalcolmNixon | 0:9eba2bd74769 | 46 | |
MalcolmNixon | 0:9eba2bd74769 | 47 | Endpoint ep; |
MalcolmNixon | 0:9eba2bd74769 | 48 | ep.set_address("192.168.5.1", 1234); |
MalcolmNixon | 0:9eba2bd74769 | 49 | |
MalcolmNixon | 0:9eba2bd74769 | 50 | // Loop forever |
MalcolmNixon | 0:9eba2bd74769 | 51 | for (;;) |
MalcolmNixon | 0:9eba2bd74769 | 52 | { |
MalcolmNixon | 0:9eba2bd74769 | 53 | char msg[] = "Hello World"; |
MalcolmNixon | 0:9eba2bd74769 | 54 | sock.sendTo(ep, msg, sizeof(msg) - 1); |
MalcolmNixon | 0:9eba2bd74769 | 55 | |
MalcolmNixon | 0:9eba2bd74769 | 56 | // Wait 1 second |
MalcolmNixon | 0:9eba2bd74769 | 57 | Thread::wait(1000); |
MalcolmNixon | 0:9eba2bd74769 | 58 | } |
MalcolmNixon | 0:9eba2bd74769 | 59 | } |