Machine Vision Status TCP Server

Dependencies:   C12832 EthernetInterface mbed-rtos mbed ConfigFile

Files at this revision

API Documentation at this revision

Comitter:
dwini
Date:
Fri Jun 12 12:47:37 2015 +0000
Parent:
5:7a32c081a3fa
Child:
7:23c8d34000eb
Commit message:
Add retry to ethernet setup. Does not seem to work. Needs to be revised.

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Mar 11 12:11:23 2015 +0000
+++ b/main.cpp	Fri Jun 12 12:47:37 2015 +0000
@@ -5,7 +5,6 @@
 #include "StatusIndicator.h"
 
 #define TCP_SERVER_PORT 6666
-
 #define LCD_LINE_HEIGHT 12
 
 Serial pc(USBTX,USBRX);
@@ -25,32 +24,34 @@
 int main (void) {
     pc.baud(115200);
 
-    // Setup ethernet interface    
-    EthernetInterface eth;
-    Log::v("Requesting IP address from DHCP\r\n");
-    eth.init();         //Use DHCP
-    
-    if (eth.connect() < 0) {
-        Log::w("Could not retrieve IP address from DHCP\r\n");
-        setLcdServerInfo("No ip address");
-    } else {
-        Log::v("IP Address is %s\r\n", eth.getIPAddress());
+    lcd.cls();
+    lcd.locate(0,0);
+    lcd.printf("Starting ...");
+
+    while (true) {
+        // Setup ethernet interface    
+        EthernetInterface eth;
+        Log::v("Bringing ethernet interface online\r\n");
+        
+        // eth.init();         //Use DHCP
+        int success = eth.init("10.0.0.1", "255.255.255.0", "10.0.0.254");
         
-        // Set ip on LCD
-        setLcdServerInfo(eth.getIPAddress());
-    
-        // Start the daemon
-        StatusIndicator status_indicator(p23, p24, p25);
-        TcpDaemon daemon(TCP_SERVER_PORT, LED2, LED3, p14, &status_indicator);
-        Log::v("TCP daemon listening @ TCP_SERVER_PORT = %d\r\n", TCP_SERVER_PORT);
-        daemon.startListening();
-    }
-    
-    // Should never be reached
-    while (true) {
-        error_led = 1;
-        wait(0.25);
-        error_led = 0;
-        wait(0.25);
+        if (success < 0 || eth.connect() < 0) {    // Default timeout of 15 seconds
+            Log::w("Could not bring ethernet interface online\r\n");
+            setLcdServerInfo("No ip address");
+        } else {
+            Log::v("IP Address is %s\r\n", eth.getIPAddress());
+            
+            // Set ip on LCD
+            setLcdServerInfo(eth.getIPAddress());
+        
+            // Start the daemon
+            StatusIndicator status_indicator(p23, p24, p25);
+            TcpDaemon daemon(TCP_SERVER_PORT, LED2, LED3, p14, &status_indicator);
+            Log::v("TCP daemon listening @ TCP_SERVER_PORT = %d\r\n", TCP_SERVER_PORT);
+            daemon.startListening();
+        }
+        
+        pc.printf("Fail");
     }
 }