For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

Committer:
ATKINZ117
Date:
Sun Aug 25 14:08:44 2013 +0000
Revision:
7:588a7745cc0e
Parent:
6:2e725705db90
Child:
9:eb8838ce9d65
improved the source code readability.

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 6:2e725705db90 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 judge_counter=0;
ATKINZ117 4:16396d9ec459 45
ATKINZ117 4:16396d9ec459 46 _MyXbee.putc('A');
ATKINZ117 6:2e725705db90 47 wait_ms(5);
ATKINZ117 4:16396d9ec459 48 _MyXbee.putc('T');
ATKINZ117 6:2e725705db90 49 wait_ms(10);
ATKINZ117 4:16396d9ec459 50 _MyXbee.putc('D');
ATKINZ117 6:2e725705db90 51 wait_ms(10);
ATKINZ117 4:16396d9ec459 52 _MyXbee.putc('B');
ATKINZ117 6:2e725705db90 53 wait_ms(10);
ATKINZ117 4:16396d9ec459 54 _MyXbee.putc('\r');
ATKINZ117 6:2e725705db90 55 wait_ms(10);
ATKINZ117 4:16396d9ec459 56
ATKINZ117 5:790675fae748 57 while(_rssi[judge_counter++]!='\0'){
ATKINZ117 4:16396d9ec459 58 while(_MyXbee.readable()){
ATKINZ117 4:16396d9ec459 59 _rssi[rssi_counter++]=_MyXbee.getc();
ATKINZ117 4:16396d9ec459 60 }
ATKINZ117 7:588a7745cc0e 61 }
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 4:16396d9ec459 73 return _rssi[n];
ATKINZ117 4:16396d9ec459 74
ATKINZ117 4:16396d9ec459 75 }