For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

Committer:
ATKINZ117
Date:
Tue Aug 27 10:58:16 2013 +0000
Revision:
10:c33541aecc99
Parent:
9:eb8838ce9d65
Child:
11:ecd033d3e211
This is the latest version at 201308271958

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ATKINZ117 6:2e725705db90 1 /*----------------------------------------------------------
ATKINZ117 6:2e725705db90 2 20130824:Todos:improve the performance of this program.
ATKINZ117 6:2e725705db90 3 get only the rssi value.
ATKINZ117 6:2e725705db90 4
ATKINZ117 6:2e725705db90 5
ATKINZ117 6:2e725705db90 6 ----------------------------------------------------------*/
ATKINZ117 6:2e725705db90 7
ATKINZ117 0:d1ff6ea68ab2 8 #include "XBeeGetRssi.h"
ATKINZ117 0:d1ff6ea68ab2 9 #include "mbed.h"
ATKINZ117 4:16396d9ec459 10 //#include <string.h>
ATKINZ117 0:d1ff6ea68ab2 11
ATKINZ117 0:d1ff6ea68ab2 12
ATKINZ117 0:d1ff6ea68ab2 13 XBeeGetRssi::XBeeGetRssi(PinName tx,PinName rx){
ATKINZ117 0:d1ff6ea68ab2 14 _tx=tx;
ATKINZ117 0:d1ff6ea68ab2 15 _rx=rx;
ATKINZ117 0:d1ff6ea68ab2 16 }
ATKINZ117 0:d1ff6ea68ab2 17
ATKINZ117 9:eb8838ce9d65 18 char* XBeeGetRssi::getRssi(/*int n*/){
ATKINZ117 4:16396d9ec459 19 //int judge_counter=0;
ATKINZ117 4:16396d9ec459 20 int judge_counter=0;
ATKINZ117 4:16396d9ec459 21 int rssi_counter=0;
ATKINZ117 7:588a7745cc0e 22 //int xbee_message_counter=0;
ATKINZ117 4:16396d9ec459 23
ATKINZ117 0:d1ff6ea68ab2 24 Serial pc(USBTX,USBRX); //for debugging.
ATKINZ117 0:d1ff6ea68ab2 25 Serial _MyXbee(_tx,_rx);
ATKINZ117 0:d1ff6ea68ab2 26
ATKINZ117 6:2e725705db90 27 for(int i=0;i<20;i++){
ATKINZ117 6:2e725705db90 28 _rssi[i]='^'; //initial value
ATKINZ117 6:2e725705db90 29 }
ATKINZ117 1:8cb27d9eec8e 30
ATKINZ117 2:befae843036e 31 _MyXbee.putc('T');
ATKINZ117 0:d1ff6ea68ab2 32
ATKINZ117 4:16396d9ec459 33 wait(1.0);
ATKINZ117 4:16396d9ec459 34 _MyXbee.putc('+');
ATKINZ117 6:2e725705db90 35 wait_ms(1);
ATKINZ117 4:16396d9ec459 36 _MyXbee.putc('+');
ATKINZ117 6:2e725705db90 37 wait_ms(1);
ATKINZ117 4:16396d9ec459 38 _MyXbee.putc('+');
ATKINZ117 6:2e725705db90 39 wait_ms(1);
ATKINZ117 7:588a7745cc0e 40
ATKINZ117 4:16396d9ec459 41 judge_counter=0; //reset counter for later use
ATKINZ117 7:588a7745cc0e 42
ATKINZ117 4:16396d9ec459 43 wait(1.0);
ATKINZ117 4:16396d9ec459 44
ATKINZ117 4:16396d9ec459 45 _MyXbee.putc('A');
ATKINZ117 6:2e725705db90 46 wait_ms(5);
ATKINZ117 4:16396d9ec459 47 _MyXbee.putc('T');
ATKINZ117 6:2e725705db90 48 wait_ms(10);
ATKINZ117 4:16396d9ec459 49 _MyXbee.putc('D');
ATKINZ117 6:2e725705db90 50 wait_ms(10);
ATKINZ117 4:16396d9ec459 51 _MyXbee.putc('B');
ATKINZ117 6:2e725705db90 52 wait_ms(10);
ATKINZ117 4:16396d9ec459 53 _MyXbee.putc('\r');
ATKINZ117 6:2e725705db90 54 wait_ms(10);
ATKINZ117 4:16396d9ec459 55
ATKINZ117 5:790675fae748 56 while(_rssi[judge_counter++]!='\0'){
ATKINZ117 4:16396d9ec459 57 while(_MyXbee.readable()){
ATKINZ117 4:16396d9ec459 58 _rssi[rssi_counter++]=_MyXbee.getc();
ATKINZ117 4:16396d9ec459 59 }
ATKINZ117 7:588a7745cc0e 60 }
ATKINZ117 9:eb8838ce9d65 61 _rssi_address=&_rssi[7];
ATKINZ117 4:16396d9ec459 62
ATKINZ117 4:16396d9ec459 63 _MyXbee.putc('A');
ATKINZ117 6:2e725705db90 64 wait_ms(5);
ATKINZ117 4:16396d9ec459 65 _MyXbee.putc('T');
ATKINZ117 6:2e725705db90 66 wait_ms(5);
ATKINZ117 4:16396d9ec459 67 _MyXbee.putc('C');
ATKINZ117 6:2e725705db90 68 wait_ms(5);
ATKINZ117 4:16396d9ec459 69 _MyXbee.putc('N');
ATKINZ117 6:2e725705db90 70 wait_ms(5);
ATKINZ117 4:16396d9ec459 71 _MyXbee.putc('\r');
ATKINZ117 4:16396d9ec459 72
ATKINZ117 9:eb8838ce9d65 73 return _rssi_address;
ATKINZ117 4:16396d9ec459 74
ATKINZ117 4:16396d9ec459 75 }