code pour recevoir des trames et mettre les char sur le port usb

Dependencies:   mbed

Fork of APP4 by S5info_H14

Revision:
7:a6f58e5d1188
Parent:
5:daf08fff7abb
Child:
8:ecc7c75a37ee
--- a/coordinateur.cpp	Mon Apr 07 15:43:16 2014 +0000
+++ b/coordinateur.cpp	Wed Apr 09 19:16:59 2014 +0000
@@ -1,5 +1,7 @@
 #include "coordinateur.hpp"
 
+Serial pc(USBTX, USBRX);
+
 Coordinateur::Coordinateur(PinName _tx, PinName _rx) :
     trame(_tx, _rx), xbee(_tx, _rx), etat(Start)
 {
@@ -18,24 +20,11 @@
 
 void Coordinateur::setPanID(string _pan)
 {
-    pan = _pan;
-    trame.sendATCommand("ID", pan.c_str(), pan.length());   // Set le PANID selon le fichier de config
+    trame.sendATCommand("ID", _pan.c_str(), _pan.length()); // Set le PANID selon le fichier de config
     trame.sendATCommand("WR", 0, 0);    // Écrit la valeur du PANID en mémoire
     trame.sendATCommand("AC", 0, 0);    // Applique les changements effectués
 }
 
-void Coordinateur::setURL(string _url)
-{
-    url = _url;
-    
-    eth = new EthernetInterface();
-    eth->init();
-    eth->connect();
-    
-    ws = new Websocket(const_cast<char*>(url.c_str()));
-    ws->connect();
-}
-
 void Coordinateur::getBytes()
 {
     if (xbee.readable())
@@ -64,7 +53,7 @@
         case Length2:
             length[1] = c;
             length_int = (length[0] << 8) | length[1];
-            if (length_int == 18 || length_int == 13)
+            if (length_int == 16)
                 etat = Data;
             else
                 etat = Start;
@@ -84,50 +73,17 @@
             else
             {
                 //trame.checkTrame(data, c, length_int);
-                sendDataToWeb(data, length_int);
+                pc.putc(0xFF);
+                wait(0.1);
+                pc.putc(data[12]);
+                wait(0.1);
+                pc.putc(data[13]);
+                wait(0.1);
+                pc.putc(data[14]);
+                wait(0.1);
+                pc.putc(data[15]);
                 etat = Start;
             }
             break;
     }
 }
-
-void Coordinateur::sendDataToWeb(char *data, int length)
-{
-    if (length == 13)
-    {
-        if (data[length - 1] == 0x0)
-        {
-            ws->send("Le circuit du capteur a contact sec est ouvert.");
-        }
-        else
-        {
-            ws->send("Le circuit du capteur a contact sec est ferme.");
-        }
-    }
-    else
-    {
-        int results[3] = {0};
-        
-        // Reconstruit la valeur sur 12 bits
-        for (int i = 0; i < 3; i++)
-        {
-            results[i] = (data[i*2 + 12] << 4) | (data[2*i + 13] >> 4);
-        }
-        
-        string temp = "Valeur de l'accelerometre: X:";
-        temp += intToString(results[0]);
-        temp += " Y:";
-        temp += intToString(results[1]);
-        temp += " Z:";
-        temp += intToString(results[2]);
-        
-        ws->send(const_cast<char*>(temp.c_str()));
-    }
-}
-
-string Coordinateur::intToString(int value)
-{
-    stringstream ss;
-    ss << value;
-    return ss.str();
-}