Machine Vision Status TCP Server

Dependencies:   C12832 EthernetInterface mbed-rtos mbed ConfigFile

Revision:
4:339a85b66476
Parent:
3:254a2671a8e3
Child:
5:7a32c081a3fa
--- a/TcpDaemon.cpp	Fri Mar 06 08:20:56 2015 +0000
+++ b/TcpDaemon.cpp	Wed Mar 11 10:26:35 2015 +0000
@@ -10,8 +10,8 @@
      *
      * @server_port the port the daemon will be listening on
      */
-    TcpDaemon::TcpDaemon(int server_port, PinName accept_led_pin, PinName receive_led_pin)
-         : receive_led(receive_led_pin), accept_led(accept_led_pin) {
+    TcpDaemon::TcpDaemon(int server_port, PinName accept_led_pin, PinName receive_led_pin, PinName trigger_pin)
+         : receive_led(receive_led_pin), accept_led(accept_led_pin), trigger(trigger_pin) {
         this->server_port = server_port;
         this->keepListening = true;
         this->receive_led = 0;
@@ -42,6 +42,16 @@
             return true;
         }
     }
+    
+    void TcpDaemon::checkTrigger(void) {
+        if (trigger.hasBeenTriggered()) {
+            if (client.send_all(TRIGGER_MSG, sizeof(TRIGGER_MSG)-1) > 0) {      // -1 for removing \0
+                Log::v("Successfully send trigger to client\r\n");   
+            } else {
+                Log::w("Could not send trigger to client\r\n");   
+            }
+        }
+    }
 
     /*
      * Listen for incoming connections
@@ -98,6 +108,8 @@
                         } else if (total_read_size > 0) {       // Increment i_read (max timeouts for message)
                             i_read++;
                         }
+                        
+                        checkTrigger();
                     } while (client.is_connected() && total_read_size < BUFFER_SIZE && end == NULL && i_read < MAX_READ_TIMEOUTS);
 
                     if (end == NULL) {