For getting RSSI value from xbee
Dependents: XBeeGetRSSISampleProgram Xbee_s2_RX_versao2
XBeeGetRssi.cpp
- Committer:
- ATKINZ117
- Date:
- 2013-08-27
- Revision:
- 8:b1313aaddf17
- Parent:
- 6:2e725705db90
File content as of revision 8:b1313aaddf17:
/*---------------------------------------------------------- 20130824:Todos:improve the performance of this program. get only the rssi value. ----------------------------------------------------------*/ #include "XBeeGetRssi.h" #include "mbed.h" //#include <string.h> XBeeGetRssi::XBeeGetRssi(PinName tx,PinName rx){ _tx=tx; _rx=rx; } char XBeeGetRssi::getRssi(int n){ //int judge_counter=0; int judge_counter=0; int rssi_counter=0; int xbee_message_counter=0; Serial pc(USBTX,USBRX); //for debugging. Serial _MyXbee(_tx,_rx); for(int i=0;i<20;i++){ _rssi[i]='^'; //initial value _xbee_message[i]='^';//initial value; } // pc.printf("At the first of xbee class.\r\n"); _MyXbee.putc('T'); while(_MyXbee.readable()){ _xbee_message[0]=_MyXbee.getc(); } // pc.printf("first message from xbee;%s\r\n",_xbee_message[0]); wait(1.0); //_MyXbee.printf("+++"); //entering AT command mode. _MyXbee.putc('+'); wait_ms(1); _MyXbee.putc('+'); wait_ms(1); _MyXbee.putc('+'); wait_ms(1); // pc.printf("sent +++\r\n"); while(_xbee_message[judge_counter++]!='\r'){ while(_MyXbee.readable()){ _xbee_message[xbee_message_counter++]=_MyXbee.getc(); } }_xbee_message[judge_counter]='\0'; judge_counter=0; //reset counter for later use xbee_message_counter=0; //reset counter for later use // while(_xbee_message[judge_counter++]!='\0'){ // pc.printf("got xbee message;%s\r\n",_xbee_message[xbee_message_counter++]); //} wait(1.0); judge_counter=0; xbee_message_counter=0; _MyXbee.putc('A'); wait_ms(5); _MyXbee.putc('T'); wait_ms(10); _MyXbee.putc('D'); wait_ms(10); _MyXbee.putc('B'); wait_ms(10); _MyXbee.putc('\r'); wait_ms(10); // pc.printf("sent ATDB!\r\n"); /*while(_rssi[judge_counter++]!='\0'){ while(_MyXbee.readable()){ _rssi[rssi_counter++]=_MyXbee.getc(); //rssi_counter++; } }*/ do{ while(_MyXbee.readable()){ _rssi[rssi_counter++]=_MyXbee.getc(); } }while(_rssi[judge_counter++]!='^'); _MyXbee.putc('A'); wait_ms(5); _MyXbee.putc('T'); wait_ms(5); _MyXbee.putc('C'); wait_ms(5); _MyXbee.putc('N'); wait_ms(5); _MyXbee.putc('\r'); return _rssi[n]; }