For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

Revision:
1:8cb27d9eec8e
Parent:
0:d1ff6ea68ab2
Child:
2:befae843036e
diff -r d1ff6ea68ab2 -r 8cb27d9eec8e XBeeGetRssi.cpp
--- a/XBeeGetRssi.cpp	Tue Aug 06 14:29:39 2013 +0000
+++ b/XBeeGetRssi.cpp	Fri Aug 16 06:37:46 2013 +0000
@@ -9,33 +9,35 @@
 }
 
 char* XBeeGetRssi::get(){
-    /*int message_counter=0;
+    //int message_counter=0;
     int rssi_counter=0;
-    Serial MyXbee(_tx,_rx);*/
     Serial pc(USBTX,USBRX); //for debugging.
     Serial _MyXbee(_tx,_rx);
     
+    _rssi[0]='a';
+    
     pc.printf("At first.\r\n");
-    while(1){
-        _MyXbee.printf("+++"); //entering AT command mode.
-        pc.printf("sent +++\r\n");
-        _MyXbee.attach(this,&XBeeGetRssi::_rssiGetter,Serial::RxIrq);
-        pc.printf("waiting for xbee!\r\n");
-        return _rssi;
-    }
-    //MyXbee.printf("ATDB\r\n");
-    //wait(0.3);
-    /*if(MyXbee.readable()){
-        while(_xbee_message!='\0'){
-            _rssi[message_counter]=MyXbee.getc();
-            message_counter++;
+    _MyXbee.printf("+++"); //entering AT command mode.
+    pc.printf("sent +++\r\n");
+    wait(3.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");
+        }else{
+            pc.printf("couldn't read.\r\n");
         }
-    }else{
-      pc.printf("There is no message.\r\n");
-    }*/
+    }_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[]
+    pc.printf("Ended!\r\n");
+    _MyXbee.printf("ATCN\r\n");
+    
+    return _rssi;
+    
 }
 
-void XBeeGetRssi::_rssiGetter(){
+/*void XBeeGetRssi::_rssiGetter(){
     int message_counter=0;
     int rssi_counter=0;
     Serial pc(USBTX,USBRX);
@@ -46,7 +48,7 @@
         _xbee_message[message_counter]=_MyXbee.getc();
         message_counter++;
     }_xbee_message[message_counter]='\0'; //get the message from xbee.
-    pc.printf("contained OK_message.\r\n");
+    pc.printf("contained some message.\r\n");
     pc.printf(_xbee_message);
     
     if(strcmp(_xbee_message,"OK\r\n")==0){
@@ -62,4 +64,4 @@
         pc.printf("There were some error.\r\n");
     }
     
-}
\ No newline at end of file
+}*/
\ No newline at end of file