For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

Revision:
12:7ec2a4147b44
Parent:
11:ecd033d3e211
Child:
13:e2fd29cb22d7
diff -r ecd033d3e211 -r 7ec2a4147b44 XBeeGetRssi.cpp
--- a/XBeeGetRssi.cpp	Wed Aug 28 08:57:07 2013 +0000
+++ b/XBeeGetRssi.cpp	Tue Sep 03 07:04:26 2013 +0000
@@ -15,7 +15,7 @@
     _rx=rx;
 }
 
-char* XBeeGetRssi::getRssi(/*int n*/){
+char* XBeeGetRssi::_getRssi(/*int n*/){
     //int judge_counter=0;
     int judge_counter=0;
     int rssi_counter=2;
@@ -79,4 +79,112 @@
     
     return _rssi_address;
     
+}
+
+int XBeeGetRssi::getRssi(/*int n*/){
+    int _rssi_value=0;
+    _returned_rssi=_getRssi();
+    
+    switch(*_returned_rssi){
+        case '0':
+            _rssi_value+=0;
+            break;
+        case '1':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '2':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '3':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '4':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '5':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '6':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '7':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '8':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case '9':
+            _rssi_value+=(int)(*_returned_rssi-0x30)*16;
+            break;
+        case 'A':
+            _rssi_value+=(int)(*_returned_rssi-0x31)*16;
+            break;
+        case 'B':
+            _rssi_value+=(int)(*_returned_rssi-0x31)*16;
+            break;
+        case 'C':
+            _rssi_value+=(int)(*_returned_rssi-0x31)*16;
+            break;
+        case 'D':
+            _rssi_value+=(int)(*_returned_rssi-0x31)*16;
+            break;
+        case 'E':
+            _rssi_value+=(int)(*_returned_rssi-0x31)*16;
+            break;
+        case 'F':
+            _rssi_value+=(int)(*_returned_rssi-0x31)*16;
+            break;
+    }
+    switch(*(_returned_rssi+1)){
+        case '0':
+            _rssi_value+=0;
+            break;
+        case '1':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '2':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '3':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '4':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '5':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '6':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '7':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '8':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case '9':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x30);
+            break;
+        case 'A':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x31);
+            break;
+        case 'B':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x31);
+            break;
+        case 'C':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x31);
+            break;
+        case 'D':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x31);
+            break;
+        case 'E':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x31);
+            break;
+        case 'F':
+            _rssi_value+=(int)(*(_returned_rssi+1)-0x31);
+            break;
+    }
+    
+    return -1*_rssi_value;
 }
\ No newline at end of file