For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

Revision:
0:d1ff6ea68ab2
Child:
1:8cb27d9eec8e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/XBeeGetRssi.cpp	Tue Aug 06 14:29:39 2013 +0000
@@ -0,0 +1,65 @@
+#include "XBeeGetRssi.h"
+#include "mbed.h"
+#include <string.h>
+
+
+XBeeGetRssi::XBeeGetRssi(PinName tx,PinName rx){
+    _tx=tx;
+    _rx=rx;
+}
+
+char* XBeeGetRssi::get(){
+    /*int message_counter=0;
+    int rssi_counter=0;
+    Serial MyXbee(_tx,_rx);*/
+    Serial pc(USBTX,USBRX); //for debugging.
+    Serial _MyXbee(_tx,_rx);
+    
+    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++;
+        }
+    }else{
+      pc.printf("There is no message.\r\n");
+    }*/
+}
+
+void XBeeGetRssi::_rssiGetter(){
+    int message_counter=0;
+    int rssi_counter=0;
+    Serial pc(USBTX,USBRX);
+    Serial _MyXbee(_tx,_rx);
+    
+    pc.printf("got some message from xbee.\r\n");
+    while(_xbee_message[message_counter]!='\0'){
+        _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(_xbee_message);
+    
+    if(strcmp(_xbee_message,"OK\r\n")==0){
+        _MyXbee.printf("ATDB\r\n"); //quering rssi value
+        while(_rssi[rssi_counter]!='\0'){
+            _rssi[rssi_counter]=_MyXbee.getc();
+            rssi_counter++;
+            pc.printf("I'm in the while loop!\r\n");
+        }_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[]
+        pc.printf("Ended!\r\n");
+        _MyXbee.printf("ATCN\r\n");
+    }else{
+        pc.printf("There were some error.\r\n");
+    }
+    
+}
\ No newline at end of file