liaison bluetooth entre gros robot -> panneau ou gros robot -> petit robot

Fork of liaison_Bluetooth by j d

Revision:
3:46a9b9c1e1c0
Parent:
2:4fc77e5b08e9
Child:
4:642635655630
--- a/LiaisonBluetooth.cpp	Wed Apr 11 12:59:45 2018 +0000
+++ b/LiaisonBluetooth.cpp	Wed Apr 11 15:03:52 2018 +0000
@@ -1,31 +1,20 @@
 #include "LiaisonBluetooth/LiaisonBluetooth.h"
 
 /*
-LiaisonBluetooth liaison(bluetooth, bluetooth_state);
-
-if (action_robot) {
-    char *score_char_array = convertir_int_en_4char(score_a_ajouter);
-    paquet_domotique_envoyer_ajouterscore(bluetooth, score_char_array);
-}
-if (action_robot1) {
-    char *score_char_array = convertir_int_en_4char(score_total);
-    paquet_domotique_envoyer_rafraichirscore(bluetooth, score_char_array);
-}
 if (action_robot_2) {
     char *score_char_array = convertir_int_en_4char(score_total);
-    paquet_domotique_envoyer_finmatch(bluetooth, score_char_array);
+    paquet_domotique_envoyer(0x30, 4, score_char_array);
 }
 */
 
-
-LiaisonBluetooth::LiaisonBluetooth(Serial bluetooth, DigitalIn state) : m_bluetooth(bluetooth), m_state(state)
+LiaisonBluetooth::LiaisonBluetooth(Serial *bluetooth, DigitalIn *state) : m_bluetooth(bluetooth), m_state(state)
 {
 }
 
 bool LiaisonBluetooth::paquet_en_attente()
 {
-    while (m_bluetooth.readable() && m_state) {
-        if (m_bluetooth.getc() == MARQUEUR_DEBUT_TRAME) {
+    while (m_bluetooth->readable() && m_state) {
+        if (m_bluetooth->getc() == MARQUEUR_DEBUT_TRAME) {
             return true;
         }
     }
@@ -36,14 +25,14 @@
 PaquetDomotique *LiaisonBluetooth::lire()
 {
     char identifiant = 0;
-    if (m_bluetooth.readable() && m_state) {
-        identifiant = m_bluetooth.getc();
+    if (m_bluetooth->readable() && m_state) {
+        identifiant = m_bluetooth->getc();
     } else return NULL;
 
     char buffer_longueur_paquet[8];
     for (int i = 0 ; i < 8 ; i++) {
-        if (m_bluetooth.readable() && m_state) {
-            buffer_longueur_paquet[i] = m_bluetooth.getc();
+        if (m_bluetooth->readable() && m_state) {
+            buffer_longueur_paquet[i] = m_bluetooth->getc();
         } else return NULL;
     }
     int longueur_paquet = convertir_4char_en_int(buffer_longueur_paquet);
@@ -51,8 +40,8 @@
     char buffer_data[longueur_paquet];
     int index = 0;
     while (index < longueur_paquet-1) {
-        if (m_bluetooth.readable() && m_state) {
-            char c = m_bluetooth.getc();
+        if (m_bluetooth->readable() && m_state) {
+            char c = m_bluetooth->getc();
 
             if (c == MARQUEUR_FIN_TRAME)
                 return NULL;
@@ -66,20 +55,20 @@
 
 void LiaisonBluetooth::envoyer(char idenfitiant, int longueur_data, char *data)
 {
-    if (m_state && m_bluetooth.writeable()) {
-        m_bluetooth.putc(idenfitiant);
+    if (m_state && m_bluetooth->writeable()) {
+        m_bluetooth->putc(idenfitiant);
     }
 
     char *longueur_buffer = convertir_int_en_4char(longueur_data);
     for (int i = 0 ; i < 4 ; i++) {
-        if (m_state && m_bluetooth.writeable()) {
-            m_bluetooth.putc(longueur_buffer[i]);
+        if (m_state && m_bluetooth->writeable()) {
+            m_bluetooth->putc(longueur_buffer[i]);
         }
     }
 
     for (int i = 0 ; i < longueur_data ; i++) {
-        if (m_state && m_bluetooth.writeable()) {
-            m_bluetooth.putc(data[i]);
+        if (m_state && m_bluetooth->writeable()) {
+            m_bluetooth->putc(data[i]);
         }
     }
 }
@@ -103,7 +92,7 @@
 
 char *convertir_int_en_4char(int integer)
 {
-    char data[4];
+    char *data = new char[4];
 
     data[3] = (integer>>24) & 0xFF;
     data[2] = (integer>>16) & 0xFF;