code d'envoie de trame

Dependencies:   mbed ConfigFile

Fork of app4-router by APP Team

Files at this revision

API Documentation at this revision

Comitter:
trixrabbit
Date:
Tue Feb 25 04:34:23 2014 +0000
Parent:
5:b4b4a64ef0d6
Child:
7:0f107e48147d
Commit message:
sa marche mieux

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Feb 24 23:23:59 2014 +0000
+++ b/main.cpp	Tue Feb 25 04:34:23 2014 +0000
@@ -36,7 +36,16 @@
 string AccelData;
 int period_ms;
 string panID;
-
+ 
+ 
+ 
+ string convertInt(int number)
+{
+   stringstream ss;//create a stringstream
+   ss.str("");
+   ss << number;//add number to the stream
+   return ss.str();//return a string with the contents of the stream
+}
 void configInit()
 {
     char *key1 = "PANID";
@@ -180,7 +189,7 @@
 }
 
 
-unsigned short getAccelValue(char MSB_addr, char LSB_addr)
+unsigned short getAccelValue(char MSB_addr)
 {
     return i2c_read_reg(MSB_addr);           // Read MSB data from MSB register
 }
@@ -192,25 +201,28 @@
     string type_s;
     switch(type)
     {
-        case ACCEL_X:       type_s = "<AX";
+        case ACCEL_X:       type_s = "AX";
                             break;
         
-        case ACCEL_Y:       type_s = "<AY";
+        case ACCEL_Y:       type_s = "AY";
                             break;
         
-        case ACCEL_Z:       type_s = "<AZ";
+        case ACCEL_Z:       type_s = "AZ";
                             break;
         
-        case PUSHBOUTON:    type_s = "<PB";
+        case PUSHBOUTON:    type_s = "PB";
                             break;
     }
+   
+    
+    string data_s = convertInt(data);  
+    data_s = type_s + data_s;
       
-    out << data;
-    string data_s = out.str();  
-    data_s = type_s + data_s + ">";
+    pc.printf("\n\r");  
+    pc.printf(data_s.c_str()); 
         
     char checkSum = 0;
-    char size = data_s.length() + 0x0E; //0x0E + data type + nombre de data = 0x0F + nombre de data
+    char size = data_s.length() + 0x0E; //0x0E + data type
     xbee.putc(0x7E); // start delimeter
     xbee.putc(0x00); // length
     xbee.putc(size); // length
@@ -229,7 +241,7 @@
     xbee.putc(0x00); // broadcast radius
     xbee.putc(0x00); // option
     checkSum = checkSum + 0x10 + 0x01 + 0x00 + 0x13+ 0xA2 + 0x00 + 0x40 + 0x8B +0x41 + 0x98 + 0x00 + 0x00 + 0x00 + 0x00;
-    //data type
+    
     for (int i=0;i<data_s.length();i++)  //data
     {
         xbee.putc(data_s[i]);
@@ -259,17 +271,18 @@
         myled = !myled;
         
         // Get accelerometer values
-        x= getAccelValue(OUT_X_MSB, OUT_X_LSB);
-        y= getAccelValue(OUT_Y_MSB, OUT_Y_LSB);
-        z= getAccelValue(OUT_Z_MSB, OUT_Z_LSB);
-          
+        x= getAccelValue(OUT_X_MSB);
+        y= getAccelValue(OUT_Y_MSB);
+        z= getAccelValue(OUT_Z_MSB);
+        xbee_transmit(PUSHBOUTON, pb1); 
+        
         //Transmit ACCEL xyz to coordonitator
-        xbee_transmit(ACCEL_X, x);
-        xbee_transmit(ACCEL_Y, y);
+        //xbee_transmit(ACCEL_X, x);
+        //xbee_transmit(ACCEL_Y, y);
         xbee_transmit(ACCEL_Z, z);
        
         //Transmit PUSHBUTTON to coordonitator
-        xbee_transmit(PUSHBOUTON, pb1.read());
+