Threads + Network Demo

Dependencies:   EthernetInterface mbed-rtos mbed-src

Fork of TestNetComm by Malcolm Nixon

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?

UserRevisionLine numberNew 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 }