Example of code that returns information about the status of the Ethernet connection.

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
edodm85
Date:
Wed Jan 15 20:37:57 2014 +0000
Revision:
0:9e8b3fd68f6c
Child:
2:922ee74b0192
First Version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edodm85 0:9e8b3fd68f6c 1 /*
edodm85 0:9e8b3fd68f6c 2 * Author: Edoardo De Marchi
edodm85 0:9e8b3fd68f6c 3 * Date: 15/01/14
edodm85 0:9e8b3fd68f6c 4 * Notes: OV7670 + FIFO AL422B camera test (TCP Ethernet)
edodm85 0:9e8b3fd68f6c 5 */
edodm85 0:9e8b3fd68f6c 6
edodm85 0:9e8b3fd68f6c 7
edodm85 0:9e8b3fd68f6c 8 #include "mbed.h"
edodm85 0:9e8b3fd68f6c 9 #include "EthernetInterface.h"
edodm85 0:9e8b3fd68f6c 10 #include "eth_status.h"
edodm85 0:9e8b3fd68f6c 11
edodm85 0:9e8b3fd68f6c 12 DigitalOut led1(LED1);
edodm85 0:9e8b3fd68f6c 13 DigitalOut led2(LED2);
edodm85 0:9e8b3fd68f6c 14 DigitalOut led3(LED3);
edodm85 0:9e8b3fd68f6c 15 DigitalOut led4(LED4);
edodm85 0:9e8b3fd68f6c 16
edodm85 0:9e8b3fd68f6c 17 //ETHERNET
edodm85 0:9e8b3fd68f6c 18 #define ECHO_SERVER_PORT 2000
edodm85 0:9e8b3fd68f6c 19
edodm85 0:9e8b3fd68f6c 20 char* ip = "192.168.153.153"; // ip
edodm85 0:9e8b3fd68f6c 21 char* mask = "255.255.255.0"; // mask
edodm85 0:9e8b3fd68f6c 22 char* gateway = "192.168.153.100"; // gateway
edodm85 0:9e8b3fd68f6c 23 EthernetInterface eth;
edodm85 0:9e8b3fd68f6c 24 TCPSocketConnection client;
edodm85 0:9e8b3fd68f6c 25 TCPSocketServer server;
edodm85 0:9e8b3fd68f6c 26
edodm85 0:9e8b3fd68f6c 27
edodm85 0:9e8b3fd68f6c 28 int Init()
edodm85 0:9e8b3fd68f6c 29 {
edodm85 0:9e8b3fd68f6c 30 led1 = 0;
edodm85 0:9e8b3fd68f6c 31 led2 = 0;
edodm85 0:9e8b3fd68f6c 32 led3 = 0;
edodm85 0:9e8b3fd68f6c 33 led4 = 0;
edodm85 0:9e8b3fd68f6c 34
edodm85 0:9e8b3fd68f6c 35
edodm85 0:9e8b3fd68f6c 36 // ETHERNET
edodm85 0:9e8b3fd68f6c 37 eth.init(ip, mask, gateway);
edodm85 0:9e8b3fd68f6c 38 eth.connect();
edodm85 0:9e8b3fd68f6c 39 server.bind(ECHO_SERVER_PORT);
edodm85 0:9e8b3fd68f6c 40 server.listen(1);
edodm85 0:9e8b3fd68f6c 41 printf("IP Address is %s\r\n", eth.getIPAddress());
edodm85 0:9e8b3fd68f6c 42 printf("%s - Speed: %d Mbps\n", get_transmission_status(), get_connection_speed());
edodm85 0:9e8b3fd68f6c 43
edodm85 0:9e8b3fd68f6c 44 return 0;
edodm85 0:9e8b3fd68f6c 45 }
edodm85 0:9e8b3fd68f6c 46
edodm85 0:9e8b3fd68f6c 47
edodm85 0:9e8b3fd68f6c 48
edodm85 0:9e8b3fd68f6c 49 int main()
edodm85 0:9e8b3fd68f6c 50 {
edodm85 0:9e8b3fd68f6c 51 bool eth_status = false;
edodm85 0:9e8b3fd68f6c 52 bool eth_status_temp = true;
edodm85 0:9e8b3fd68f6c 53
edodm85 0:9e8b3fd68f6c 54 Init();
edodm85 0:9e8b3fd68f6c 55
edodm85 0:9e8b3fd68f6c 56
edodm85 0:9e8b3fd68f6c 57 while(true)
edodm85 0:9e8b3fd68f6c 58 {
edodm85 0:9e8b3fd68f6c 59 printf("\nWait for new connection...\n");
edodm85 0:9e8b3fd68f6c 60 server.accept(client);
edodm85 0:9e8b3fd68f6c 61
edodm85 0:9e8b3fd68f6c 62 printf("Connection from: %s\n", client.get_address());
edodm85 0:9e8b3fd68f6c 63
edodm85 0:9e8b3fd68f6c 64 while (true)
edodm85 0:9e8b3fd68f6c 65 {
edodm85 0:9e8b3fd68f6c 66 if(!get_link_status())
edodm85 0:9e8b3fd68f6c 67 {
edodm85 0:9e8b3fd68f6c 68 eth_status = true;
edodm85 0:9e8b3fd68f6c 69 }else
edodm85 0:9e8b3fd68f6c 70 {
edodm85 0:9e8b3fd68f6c 71 led1 = 0;
edodm85 0:9e8b3fd68f6c 72 }
edodm85 0:9e8b3fd68f6c 73
edodm85 0:9e8b3fd68f6c 74 if(eth_status == eth_status_temp)
edodm85 0:9e8b3fd68f6c 75 {
edodm85 0:9e8b3fd68f6c 76 eth_status_temp = !eth_status;
edodm85 0:9e8b3fd68f6c 77 printf("Check cable connection\r\n");
edodm85 0:9e8b3fd68f6c 78 led1 = 1;
edodm85 0:9e8b3fd68f6c 79 eth_status = false;
edodm85 0:9e8b3fd68f6c 80 }
edodm85 0:9e8b3fd68f6c 81 led2 = !led2;
edodm85 0:9e8b3fd68f6c 82 osDelay(500);
edodm85 0:9e8b3fd68f6c 83 }
edodm85 0:9e8b3fd68f6c 84 }
edodm85 0:9e8b3fd68f6c 85 }