For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

Revision:
2:befae843036e
Parent:
1:8cb27d9eec8e
Child:
3:602329ee6a01
Child:
4:16396d9ec459
diff -r 8cb27d9eec8e -r befae843036e XBeeGetRssi.cpp
--- a/XBeeGetRssi.cpp	Fri Aug 16 06:37:46 2013 +0000
+++ b/XBeeGetRssi.cpp	Sat Aug 17 03:51:52 2013 +0000
@@ -8,30 +8,41 @@
     _rx=rx;
 }
 
-char* XBeeGetRssi::get(){
+int XBeeGetRssi::get(){
     //int message_counter=0;
-    int rssi_counter=0;
+    //int rssi_counter=0;
     Serial pc(USBTX,USBRX); //for debugging.
     Serial _MyXbee(_tx,_rx);
     
-    _rssi[0]='a';
+    _rssi=0; //initial value
+    
     
-    pc.printf("At first.\r\n");
+    pc.printf("At the first of xbee class.\r\n");
+    _MyXbee.putc('T');
+    if(_MyXbee.readable()){
+        _MyXbee.getc();
+    }else{
+        pc.printf("couldn't get return message.");
+    }
+    wait(1.0);
     _MyXbee.printf("+++"); //entering AT command mode.
     pc.printf("sent +++\r\n");
-    wait(3.0);
-    while(_rssi[rssi_counter]!='\0'){
+    wait(1.0);
+    //while(_rssi[rssi_counter]!='\0'){
         if(_MyXbee.readable()){
-            _MyXbee.printf("ATDB\r\n"); //quering rssi value
-            _rssi[rssi_counter]=_MyXbee.getc();
-            rssi_counter++;
-            pc.printf("I'm in the while loop!\r\n");
+            _MyXbee.printf("ATDB\r"); //quering rssi value
+            _rssi=_MyXbee.getc();
+            //rssi_counter++;
+            pc.printf("sent ATDB!\r\n");
         }else{
             pc.printf("couldn't read.\r\n");
+            //_MyXbee.printf("+++");
+            //wait(1.0);
+            //pc.printf("+++ again.\r\n");
         }
-    }_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[]
-    pc.printf("Ended!\r\n");
-    _MyXbee.printf("ATCN\r\n");
+    //}_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[]
+    pc.printf("Here is class end!\r\n");
+    _MyXbee.printf("ATCN\r");
     
     return _rssi;