Smart coffee machine with facial recognition and remote control

Dependencies:   Camera_LS_Y201 EthernetInterface EthernetNetIf HTTPClient SRF05 TextLCD mbed-rtos mbed-src

Revision:
0:43669f623d43
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ethernet.cpp	Wed Jan 15 11:09:52 2014 +0000
@@ -0,0 +1,113 @@
+#include "ethernet.h"
+
+//const char* ECHO_SERVER_ADDRESS = "194.254.15.213/reco/";
+const char* ECHO_SERVER_ADDRESS = "192.168.1.40";
+const int ECHO_SERVER_PORT = 4242;
+
+EthernetInterface eth;
+TCPSocketConnection socket;
+HTTPClient http;
+int timeOut = HTTP_CLIENT_DEFAULT_TIMEOUT;
+
+bool preparationEthernet()
+{
+    afficherAuCentreDeLEcran("Preparation :", "Ethernet (1/2)");
+    wait(0.5);
+    
+    if(eth.init() == 0)
+    //if( eth.init("192.168.1.67", "255.255.255.0", ECHO_SERVER_ADDRESS) == 0) // Test en local (Sans DHCP)
+    {
+        afficherAuCentreDeLEcran("Preparation :", "Ethernet (2/2)");
+        
+        if(eth.connect() == 0)
+        {
+            afficherAuCentreDeLEcran("Machine", "connectee");
+            allumerLed(1);
+            return true;
+        }
+        
+        else
+            afficherAuCentreDeLEcran("Erreur :", "Ethernet (2/2)");
+    }
+        
+    else
+        afficherAuCentreDeLEcran("Erreur :", "Ethernet (1/2)");
+    
+    wait(2);
+    afficherAuCentreDeLEcran("Err ethernet", eth.getMACAddress());
+        
+    allumerLed(2);
+    return false;
+}
+
+void deconnexionEthernet()
+{
+    eth.disconnect();
+    afficherAuCentreDeLEcran("Machine", "deconnectee");
+}
+
+bool connexionSocket()
+{
+    /*int i = 0;
+    while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0)
+    {
+        printf("Unable to connect to (%s) on port (%d)\r\n\r", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
+        wait(1);
+        i++;
+        if(i>5)
+        {
+            return 0; // Échec
+        }
+    }
+    return 1;*/
+    for(int i = 0 ; i < 4 ; i ++)
+    {
+        if(socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0)
+        {
+            afficherAuCentreDeLEcran("Serveur", "injoignable", "sur", ECHO_SERVER_ADDRESS);
+            wait(3);
+        }
+        
+        else
+            return true;
+    }
+    
+    return false;
+}
+
+void deconnexionSocket()
+{
+    socket.close();
+}
+
+bool envoyerRequete(char complement_url[200], char *reponse, int longueur_reponse)
+{
+    char url[500];
+    sprintf(url, "http://asi-12-cafetiere.insa-rouen.fr/mbed/%s", complement_url);
+    //sprintf(url, "http://192.168.1.10/mbed/%s", complement_url);
+    HTTPResult retour = http.get(url, reponse, longueur_reponse);
+
+    if(retour != HTTP_OK)
+    {
+        afficherAuCentreDeLEcran("ECHEC", "Envoi requete");
+        wait(1);
+    }
+
+    return retour == HTTP_OK; // Succès
+}
+
+bool envoyerRequete(char complement_url[200])
+{
+    char reponse_vide[1];
+    return envoyerRequete(complement_url, reponse_vide, 1);
+}
+
+void envoyerChaineSocket(char *chaine, int taille_chaine, char *reponse, int longueur_reponse_max)
+{
+    int m;
+    socket.send_all(chaine, taille_chaine);
+    m = socket.receive(reponse,longueur_reponse_max);
+    reponse[m] = '\0';
+}
+
+