For getting RSSI value from xbee
Dependents: XBeeGetRSSISampleProgram Xbee_s2_RX_versao2
XBeeGetRssi.cpp@4:16396d9ec459, 2013-08-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |