
Updated Sensors Module. Added person counter.
Dependencies: EthernetInterface HC_SR04_Ultrasonic_Library Middleware mbed-rtos mbed
Fork of SmartLabProyect by
Revision 1:106e93f9c7c8, committed 2015-12-09
- Comitter:
- RoHe
- Date:
- Wed Dec 09 04:45:01 2015 +0000
- Parent:
- 0:5db5c980e717
- Child:
- 2:c8a2aa07cfdd
- Commit message:
- ok
Changed in this revision
--- a/Coments.cpp Sat Dec 05 17:46:07 2015 +0000 +++ b/Coments.cpp Wed Dec 09 04:45:01 2015 +0000 @@ -13,75 +13,177 @@ /* - - - /* + // 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); - // Receive message from server - char buf1[256]; - int n1 = socketTCP1.receive(buf1, 256); + 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(); - //isConnectedServer1=false; + socketTCP1.close(); + } else { //_isConnectedServer1==false; //quiere decir que se desconecto del servidor - pc.printf("Not received ELSE value of lenght: '%u'\n\r",strlen(buf1)); + 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; + } + // + + +*/ + + + +/* + + // Receive message from server + char buf1[256]; + int n1 = socketTCP1.receive(buf1, 256); + buf1[n1] = '\0'; + + if(n1>0) { + pc.printf("Received message from server1 IF: '%s'\n\r", buf1); + socketTCP1.close(); + //isConnectedServer1=false; + } else { + //_isConnectedServer1==false; //quiere decir que se desconecto del servidor + pc.printf("Not received ELSE value of lenght: '%u'\n\r",strlen(buf1)); + socketTCP1.close(); + //isConnectedServer1=false; + } + + if(bo_somethingWrong==true) { + return 0; + } + +//if(socketTCP.connect(ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1) == -1 && _isConnectedServer1==false ) { + if(socketTCP.connect(ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1) == -1) { + _isConnectedServer1=socketTCP.is_connected(); + //_isConnectedServer1=false; + pc.printf("Unable to connect to (%s) on port (%d)\n\r", ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1); + wait(1); +} else { + _isConnectedServer1=socketTCP.is_connected(); + //_isConnectedServer1=true; + //pc.printf("Connected to Server at %s\n\r",ECHO_SERVER_ADDRESS1); + pc.printf("Connected to Server at %s\n\r",socketTCP.get_address()); + pc.printf("Connected to PORT at %u\n\r",socketTCP.get_port()); + + + + //TODO: split strings + + char hello[] = "reply:get:status:192.168.1.77:door:1\n\r"; + + pc.printf("Sending message to Server : %s \n\r",hello); + socketTCP.send_all(hello, sizeof(hello)- 1); + + + +// Receive message from server + char buf[256]; + int n = socketTCP.receive(buf, 256); + buf[n] = '\0'; + pc.printf("Received message from server: '%s'\n\r", buf); if(bo_somethingWrong==true) { return 0; } - //if(socketTCP.connect(ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1) == -1 && _isConnectedServer1==false ) { - if(socketTCP.connect(ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1) == -1) { - _isConnectedServer1=socketTCP.is_connected(); - //_isConnectedServer1=false; - pc.printf("Unable to connect to (%s) on port (%d)\n\r", ECHO_SERVER_ADDRESS1, ECHO_SERVER_PORT1); - wait(1); - } else { - _isConnectedServer1=socketTCP.is_connected(); - //_isConnectedServer1=true; - //pc.printf("Connected to Server at %s\n\r",ECHO_SERVER_ADDRESS1); - pc.printf("Connected to Server at %s\n\r",socketTCP.get_address()); - pc.printf("Connected to PORT at %u\n\r",socketTCP.get_port()); + +} - //TODO: split strings - - char hello[] = "reply:get:status:192.168.1.77:door:1\n\r"; - - pc.printf("Sending message to Server : %s \n\r",hello); - socketTCP.send_all(hello, sizeof(hello)- 1); - - - - // Receive message from server - char buf[256]; - int n = socketTCP.receive(buf, 256); - buf[n] = '\0'; - pc.printf("Received message from server: '%s'\n\r", buf); +} - if(bo_somethingWrong==true) { - return 0; - } - - - } - - - - } - - // Clean up - socketTCP1.close(); - socketTCP2.close(); - */ +// Clean up +socketTCP1.close(); +socketTCP2.close(); +*/ @@ -108,7 +210,16 @@ //Thread *thread2; //thread2 = new Thread(conect_Server); - +/* +// Echo received message back to client +pc.printf("bufferReply: '%s'\n\r",bufferReply); +//Todas las cadenas que son enviadas tienen el final de \r\n +int lengBuffer = stringManager.stringLenght(bufferReply); +pc.printf("longhtBuffer: '%u'\n\r",strlen(buffer)); +pc.printf("longhtBuffer n : '%u'\n\r",n); +pc.printf("longhtBufferReply: '%u'\n\r",lengBuffer); +pc.printf("strcmp: '%u'\n\r",strcmp(buffer,"set\r\n")); +*/ //IMPORT FROM LIBRARY
--- a/Middleware.lib Sat Dec 05 17:46:07 2015 +0000 +++ b/Middleware.lib Wed Dec 09 04:45:01 2015 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/users/RoHe/code/Middleware/#d1ff330c5128 +https://developer.mbed.org/users/RoHe/code/Middleware/#fd355dc296b1
--- 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(); }