For getting RSSI value from xbee
Dependents: XBeeGetRSSISampleProgram Xbee_s2_RX_versao2
Diff: XBeeGetRssi.cpp
- Revision:
- 12:7ec2a4147b44
- Parent:
- 11:ecd033d3e211
- Child:
- 13:e2fd29cb22d7
--- 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