For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

Committer:
ATKINZ117
Date:
Sat Aug 24 04:12:49 2013 +0000
Revision:
4:16396d9ec459
Parent:
2:befae843036e
Child:
5:790675fae748
partly worked.The problem is how to get the rssi value from the _rssi

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ATKINZ117 0:d1ff6ea68ab2 1 #include "XBeeGetRssi.h"
ATKINZ117 0:d1ff6ea68ab2 2 #include "mbed.h"
ATKINZ117 4:16396d9ec459 3 //#include <string.h>
ATKINZ117 0:d1ff6ea68ab2 4
ATKINZ117 0:d1ff6ea68ab2 5
ATKINZ117 0:d1ff6ea68ab2 6 XBeeGetRssi::XBeeGetRssi(PinName tx,PinName rx){
ATKINZ117 0:d1ff6ea68ab2 7 _tx=tx;
ATKINZ117 0:d1ff6ea68ab2 8 _rx=rx;
ATKINZ117 0:d1ff6ea68ab2 9 }
ATKINZ117 0:d1ff6ea68ab2 10
ATKINZ117 4:16396d9ec459 11 char XBeeGetRssi::get(int n){
ATKINZ117 4:16396d9ec459 12 //int judge_counter=0;
ATKINZ117 4:16396d9ec459 13 int judge_counter=0;
ATKINZ117 4:16396d9ec459 14 int rssi_counter=0;
ATKINZ117 4:16396d9ec459 15 int xbee_message_counter=0;
ATKINZ117 4:16396d9ec459 16
ATKINZ117 0:d1ff6ea68ab2 17 Serial pc(USBTX,USBRX); //for debugging.
ATKINZ117 0:d1ff6ea68ab2 18 Serial _MyXbee(_tx,_rx);
ATKINZ117 0:d1ff6ea68ab2 19
ATKINZ117 4:16396d9ec459 20 _rssi[0]='P'; //initial value
ATKINZ117 4:16396d9ec459 21 _xbee_message[0]='P';//initial value;
ATKINZ117 2:befae843036e 22
ATKINZ117 1:8cb27d9eec8e 23
ATKINZ117 4:16396d9ec459 24 // pc.printf("At the first of xbee class.\r\n");
ATKINZ117 2:befae843036e 25 _MyXbee.putc('T');
ATKINZ117 4:16396d9ec459 26 while(_MyXbee.readable()){
ATKINZ117 4:16396d9ec459 27 _xbee_message[0]=_MyXbee.getc();
ATKINZ117 0:d1ff6ea68ab2 28 }
ATKINZ117 0:d1ff6ea68ab2 29
ATKINZ117 4:16396d9ec459 30 // pc.printf("first message from xbee;%s\r\n",_xbee_message[0]);
ATKINZ117 4:16396d9ec459 31 wait(1.0);
ATKINZ117 4:16396d9ec459 32 //_MyXbee.printf("+++"); //entering AT command mode.
ATKINZ117 4:16396d9ec459 33 _MyXbee.putc('+');
ATKINZ117 4:16396d9ec459 34 wait_ms(100);
ATKINZ117 4:16396d9ec459 35 _MyXbee.putc('+');
ATKINZ117 4:16396d9ec459 36 wait_ms(100);
ATKINZ117 4:16396d9ec459 37 _MyXbee.putc('+');
ATKINZ117 4:16396d9ec459 38 wait_ms(100);
ATKINZ117 4:16396d9ec459 39 // pc.printf("sent +++\r\n");
ATKINZ117 4:16396d9ec459 40 while(_xbee_message[judge_counter++]!='\r'){
ATKINZ117 4:16396d9ec459 41 while(_MyXbee.readable()){
ATKINZ117 4:16396d9ec459 42 _xbee_message[xbee_message_counter++]=_MyXbee.getc();
ATKINZ117 4:16396d9ec459 43 }
ATKINZ117 4:16396d9ec459 44 }_xbee_message[judge_counter]='\0';
ATKINZ117 4:16396d9ec459 45 judge_counter=0; //reset counter for later use
ATKINZ117 4:16396d9ec459 46 xbee_message_counter=0; //reset counter for later use
ATKINZ117 4:16396d9ec459 47
ATKINZ117 4:16396d9ec459 48 // while(_xbee_message[judge_counter++]!='\0'){
ATKINZ117 4:16396d9ec459 49 // pc.printf("got xbee message;%s\r\n",_xbee_message[xbee_message_counter++]);
ATKINZ117 4:16396d9ec459 50 //}
ATKINZ117 4:16396d9ec459 51 wait(1.0);
ATKINZ117 4:16396d9ec459 52 judge_counter=0;
ATKINZ117 4:16396d9ec459 53 xbee_message_counter=0;
ATKINZ117 4:16396d9ec459 54
ATKINZ117 4:16396d9ec459 55 _MyXbee.putc('A');
ATKINZ117 4:16396d9ec459 56 wait_ms(100);
ATKINZ117 4:16396d9ec459 57 _MyXbee.putc('T');
ATKINZ117 4:16396d9ec459 58 wait_ms(100);
ATKINZ117 4:16396d9ec459 59 _MyXbee.putc('D');
ATKINZ117 4:16396d9ec459 60 wait_ms(100);
ATKINZ117 4:16396d9ec459 61 _MyXbee.putc('B');
ATKINZ117 4:16396d9ec459 62 wait_ms(100);
ATKINZ117 4:16396d9ec459 63 _MyXbee.putc('\r');
ATKINZ117 4:16396d9ec459 64 wait_ms(100);
ATKINZ117 4:16396d9ec459 65 // pc.printf("sent ATDB!\r\n");
ATKINZ117 4:16396d9ec459 66
ATKINZ117 4:16396d9ec459 67 while(_rssi[judge_counter++]!='\r'){
ATKINZ117 4:16396d9ec459 68 while(_MyXbee.readable()){
ATKINZ117 4:16396d9ec459 69 _rssi[rssi_counter++]=_MyXbee.getc();
ATKINZ117 4:16396d9ec459 70 //rssi_counter++;
ATKINZ117 4:16396d9ec459 71 }
ATKINZ117 4:16396d9ec459 72 }//_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[]
ATKINZ117 4:16396d9ec459 73 // pc.printf("Here is class end!\r\n");
ATKINZ117 4:16396d9ec459 74
ATKINZ117 4:16396d9ec459 75 _MyXbee.putc('A');
ATKINZ117 4:16396d9ec459 76 wait_ms(100);
ATKINZ117 4:16396d9ec459 77 _MyXbee.putc('T');
ATKINZ117 4:16396d9ec459 78 wait_ms(100);
ATKINZ117 4:16396d9ec459 79 _MyXbee.putc('C');
ATKINZ117 4:16396d9ec459 80 wait_ms(100);
ATKINZ117 4:16396d9ec459 81 _MyXbee.putc('N');
ATKINZ117 4:16396d9ec459 82 wait_ms(100);
ATKINZ117 4:16396d9ec459 83 _MyXbee.putc('\r');
ATKINZ117 4:16396d9ec459 84
ATKINZ117 4:16396d9ec459 85 return _rssi[n];
ATKINZ117 4:16396d9ec459 86
ATKINZ117 4:16396d9ec459 87 }