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

Dependencies:   EthernetInterface mbed-rtos mbed

Revision:
0:9e8b3fd68f6c
Child:
2:922ee74b0192
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jan 15 20:37:57 2014 +0000
@@ -0,0 +1,85 @@
+/*
+ * Author: Edoardo De Marchi
+ * Date: 15/01/14
+ * Notes: OV7670 + FIFO AL422B camera test (TCP Ethernet)
+*/
+
+
+#include "mbed.h"
+#include "EthernetInterface.h"
+#include "eth_status.h"
+
+DigitalOut led1(LED1);          
+DigitalOut led2(LED2);          
+DigitalOut led3(LED3);          
+DigitalOut led4(LED4);   
+       
+//ETHERNET
+#define ECHO_SERVER_PORT   2000
+
+char* ip = "192.168.153.153";               // ip
+char* mask = "255.255.255.0";               // mask
+char* gateway = "192.168.153.100";          // gateway
+EthernetInterface eth;
+TCPSocketConnection client;
+TCPSocketServer server; 
+
+
+int Init()
+{
+    led1 = 0;               
+    led2 = 0;               
+    led3 = 0;               
+    led4 = 0;               
+    
+       
+    // ETHERNET
+    eth.init(ip, mask, gateway);
+    eth.connect();
+    server.bind(ECHO_SERVER_PORT);
+    server.listen(1);
+    printf("IP Address is %s\r\n", eth.getIPAddress());    
+    printf("%s  - Speed: %d Mbps\n", get_transmission_status(), get_connection_speed());
+             
+    return 0;
+}
+
+
+
+int main() 
+{
+    bool eth_status = false;
+    bool eth_status_temp = true;
+    
+    Init();
+    
+    
+    while(true) 
+    {
+        printf("\nWait for new connection...\n");
+        server.accept(client);
+        
+        printf("Connection from: %s\n", client.get_address());
+
+        while (true)
+        {          
+            if(!get_link_status())
+            {
+                eth_status = true; 
+            }else
+            {
+                led1 = 0;                           
+            }
+            
+            if(eth_status == eth_status_temp)
+            {
+                eth_status_temp = !eth_status;
+                printf("Check cable connection\r\n");
+                led1 = 1;
+                eth_status = false;
+            }
+            led2 = !led2; 
+            osDelay(500);
+        }          
+    }
+}