Updated Sensors Module. Added person counter.

Dependencies:   EthernetInterface HC_SR04_Ultrasonic_Library Middleware mbed-rtos mbed

Fork of SmartLabProyect by Jorge Martin Beltran Avila

Revision:
1:106e93f9c7c8
Parent:
0:5db5c980e717
Child:
2:c8a2aa07cfdd
--- a/main.cpp	Sat Dec 05 17:46:07 2015 +0000
+++ b/main.cpp	Wed Dec 09 04:45:01 2015 +0000
@@ -9,7 +9,7 @@
 #include "mbed.h"
 #include "EthernetInterface.h"
 #include "rtos.h"
-#include "SensorPIR.h"
+#include "Sensors.h"
 #include "Ether.h"
 #include "Initial.h"
 #include "Threads.cpp"
@@ -40,17 +40,11 @@
     /*//////////////////////////////////
     Declares all necessary CLASSES
     */
-    
-    EthernetInterface eth;
     eth.init(); //Use DHCP
     eth.connect();
 
-
-    /*///////////////////////////////////
-    Declares all necessary THREADS
-    */
-    Thread thread1(led_thread);
-    //Thread thread2(receivedFromServer1);
+    serverTCP.bind(ECHO_SERVER_PORT1);
+    serverTCP.listen();
 
     /*////////////////////////////////////
     Declares all necessary INTERRUPTIONS
@@ -59,135 +53,40 @@
 
 //////////////////////////////////////////////////////APPLICATION /////////////////////////////////////////////////////////
     
+    pc.printf("Server IP Address is %s\r", eth.getIPAddress());
+    pc.printf("\nServer IP MAC address is %s\r", eth.getMACAddress);
+    pc.printf("\nServer IP Gateway is %s\r", eth.getGateway());
+    pc.printf("\nServer IP network mask is %s\n\r", eth.getNetworkMask());
     
-    s_myIP = eth.getIPAddress();
-    pc.printf("\nClient IP Address is %s\r", s_myIP);
-    pc.printf("\nClient IP MAC address is %s\r", eth.getMACAddress);
-    pc.printf("\nClient IP Gateway is %s\r", eth.getGateway());
-    pc.printf("\nClient IP network mask is %s\n\r", eth.getNetworkMask());
+    
+    /*///////////////////////////////////
+    Declares all necessary THREADS
+    */
+    Thread thread1(led_thread);
+    Thread thread2(messsageFromClient);
+    //Thread thread2(receivedFromServer1); 
     /*
+    QUESTIONS:
+    -EMMA: para que sirve que yo reciva la IP del Broker
+    -EMMA: Para que succes/fail si si se pudo prender o apagar ?
+    -EMMA: Por que el get Room no sigue el mismo formato
+    -JORGE: no hay una confirmacion del pin para setLight ocupamos un geLight
+    
     CONSTRAINS:
-    -No se puede poner un serial print el los threads ....
-    -se tiene que abrir y cerrar las conecciones par que pueda leer nuevos mensajes
-    -se puede leer mensajes si no se cierra el socket pero la conexion se queda abierta
-     y no puede recibir mas mensajes .. se saco el forpara hacerlo una sola vez y no se cierra la conexion
-
+    -JORGE: meti las variables a Initial.h por que decia que se habian declarado mas
+    de una vez.
+    -ROBER: no se puede usar el strcat por que cuando trata de concatenar la cadena
+    se queda colgado el sistema, workaround: se usara un return para cada caso.
+      
+    
+    TODO: 
+    -JORGE: leer el pin de salida para ver que si realmente se prende la Luz
+    -COTA / PONCHO: ultrasonic
+    -ROBER: manejo de string
     */
-
-
-    /*
-    // Connect to Server2
-         (socketTCP.connect(ECHO_SERVER_ADDRESS2, ECHO_SERVER_PORT2) < 0) {
-            pc.printf("Unable to connect to (%s) on port (%d)\n\r", ECHO_SERVER_ADDRESS2, ECHO_SERVER_PORT2);
-        }
-        _isConnectedServer2=true;
-        pc.printf("Connected to Server at %s\n\r",ECHO_SERVER_ADDRESS2);
-    */
-
-
     while(true) {
       
-        // Connect to Server1
-        //TODO: try to connect to both servers
-        //TODO: only try 5 times after ti server1 goes down
-        //TODO: cual es la diferencia entre recieved_all y recieved
-        //TOTRY: que valor regresa cuando hace el connect???
         
-        //QUESTION: que son los numero que aparecen despues de los dos puntos, 
-        //parece ser uqe es el numero que noceciones que lleva acabo 192.168.1.81:49160
-        //NOSIRVE: si se conecta los dos micros  con el programa de TCP Server4 y se les pide un reply
-        //los micros no contestan y para terminarla si pides dos veces un reply se queda colgado ..        
-        //ACCOMPLISH: los colores de los leds ya responen de acuerdo a la conexion
-        
-        //GetPersonStatus(1);
-
-        for(int i=0,isConServer1=0; i<2 && isConServer1==0; i++) {
-            if(socketTCP1.connect(ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1) == -1) {
-                _isConnectedServer1=false;
-                pc.printf("Unable to connect1 to (%s) on port (%d)\n\r", ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1);
-                pc.printf("TRY SERVER 1 number (%d)\n\r",(i+1));
-                isConServer1=0;
-            } else {
-                _isConnectedServer1=socketTCP1.is_connected();
-                pc.printf("Ya se conecto con el servidor 1\n\r");
-                isConServer1=1;
-                wait(1);
-            
-                char hello[] = "Hello World\n\r";
-                printf("Sending  message to Server : '%s' \n",hello);
-                socketTCP1.send_all(hello, sizeof(hello) - 1);
-                
-                
-                
-        
-            }
-        }//END FOR1
-        
-                for(int i=0,isConServer2=0; i<2 && isConServer2==0; i++) {
-                    if(socketTCP2.connect(ECHO_SERVER_ADDRESS2, ECHO_SERVER_PORT2) == -1) {
-                        _isConnectedServer2=false;
-                        pc.printf("Unable to connect2 to (%s) on port (%d)\n\r", ECHO_SERVER_ADDRESS2, ECHO_SERVER_PORT2);
-                        pc.printf("TRY SERVER 2 number (%d)\n\r",(i+1));
-                        isConServer2=0;
-                        //wait(1);
-                    } else {
-                        _isConnectedServer2=socketTCP2.is_connected();
-                        pc.printf("Ya se conecto con el servidor 2\n\r");
-                        isConServer2=1;
-                    }
-                }//END FOR2
-        
-
-        //RECEIVED from TCP SERVER1
-        n1 = socketTCP1.receive_all(buf1, 256);
-        buf1[n1] = '\0';
-        if(n1>0) {
-            pc.printf("Received message from server1 IF: '%s'\n\r", buf1);
-             socketTCP1.close();
-
-        } else {
-            //_isConnectedServer1==false; //quiere decir que se desconecto del servidor
-            pc.printf("Not received1 ELSE value of lenght: '%u'\n\r",strlen(buf1));
-            socketTCP1.close();
-            //isConnectedServer1=false;
-        }
-        //socketTCP1.close();
-        //socketTCP2.close();
-
-        if(strcmp(buf1,"reply")==0) {
-            // SEND to server1
-            //Entra pero no puede mandar los datos 
-            // pc.printf("Entro a la funcion strcmp: \n\r");
-            if(socketTCP1.connect(ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1) == -1) {
-                pc.printf("Unable to connect1 to (%s) on port (%d)\n\r", ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1);               
-                }
-                
-            char c_myIP[] = "192.168.1.77\n\r";
-            pc.printf("Sending  message to Server : %s \n\r",c_myIP);
-            socketTCP1.send_all(c_myIP, sizeof(c_myIP) - 1); 
-            socketTCP1.close();
-        }
-        //socketTCP1.close();
-
-
-        
-                //RECEIVED from TCP SERVER2
-                n2 = socketTCP2.receive(buf2, 256);
-                buf2[n2] = '\0';
-                if(n2>0) {
-                    pc.printf("Received message from server2 IF: '%s'\n\r", buf2);
-                    socketTCP2.close();
-                    //isConnectedServer1=false;
-                } else {
-                    //_isConnectedServer1==false; //quiere decir que se desconecto del servidor
-                    pc.printf("Not received2 ELSE value of lenght: '%u'\n\r",strlen(buf2));
-                    socketTCP2.close();
-                    //isConnectedServer1=false;
-                }
-        //
     }// END while
-    eth.disconnect();
-    
-    
-    
+    //eth.disconnect();  
 }