code pour recevoir des trames et mettre les char sur le port usb
Dependencies: mbed
Fork of APP4 by
Diff: coordinateur.cpp
- 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(); -}