HAHA

Dependencies:   WebSocketClient mbed

Revision:
4:56b1ca37a175
Parent:
3:350f07072089
Child:
5:daf08fff7abb
--- a/trame.cpp	Mon Feb 24 15:40:33 2014 +0000
+++ b/trame.cpp	Mon Feb 24 19:30:27 2014 +0000
@@ -8,8 +8,8 @@
 
 void Trame::sendATCommand(const char* command, const char* data, int length)
 {
-    int tmp = length + 8;
-    char* trm = new char[tmp];
+    int tmp = length + 4;
+    char* trm = new char[tmp + 4];
     
     trm[0] = 0x7E;      // Delimiter
     trm[1] = static_cast<char>((tmp >> 8) & 0xFF);   // MSB de length
@@ -20,11 +20,11 @@
     trm[6] = command[1];
     for (int i = 0; i < length; i++)
         trm[7+i] = data[i]; //Data
-    trm[7+length] = crc8(trm, tmp - 1);
+    trm[7+length] = crc8(trm, tmp + 3);
     
     Serial xbee(tx, rx);
-    for (int i = 0; i < tmp; i++)
-        xbee.putc(trm[i]);
+    for (int i = 0; i < tmp + 4; i++)
+        xbee.putc(trm[i]); //Transmition des donnees
         
     wait(0.01);
     delete trm;
@@ -32,8 +32,8 @@
 
 void Trame::sendTransmitRequest(const char* destination, const char* data, int length)
 {
-    int tmp = length + 18;
-    char* trm = new char[tmp];
+    int tmp = length + 14;
+    char* trm = new char[length + 18];
     
     trm[0] = 0x7E;      // Delimiter
     trm[1] = static_cast<char>((tmp >> 8) & 0xFF);   // MSB de length
@@ -42,18 +42,18 @@
     trm[4] = 0x01;      // API
     for (int i = 0; i < 8; i++)
         trm[5 + i] = destination[i]; //Destination
-    trm[13] = 0x00;     // 16 bits address
-    trm[14] = 0x00;     // 16 bits address
+    trm[13] = 0xFF;     // 16 bits address
+    trm[14] = 0xFE;     // 16 bits address
     trm[15] = 0x00;     // Radius
     trm[16] = 0x00;     // Options
         
     for (int i = 0; i < length; i++)
         trm[17 + i] = data[i]; // Data
         
-    trm[17 + length] = crc8(trm, tmp - 1);
+    trm[17 + length] = crc8(trm, tmp + 3);
     
     Serial xbee(tx, rx);
-    for (int i = 0; i < tmp; i++)
+    for (int i = 0; i < tmp + 4; i++)
         xbee.putc(trm[i]);
         
     wait(0.01);
@@ -63,7 +63,7 @@
 unsigned char Trame::crc8(const char* data, int length)
 {
     unsigned char crc = 0;
-    for (int i = 1; i < length; i++)
+    for (int i = 3; i < length; i++)
         crc += data[i];
     
     return (0xFF - crc);