For getting RSSI value from xbee
Dependents: XBeeGetRSSISampleProgram Xbee_s2_RX_versao2
XBeeGetRssi.cpp@0:d1ff6ea68ab2, 2013-08-06 (annotated)
- Committer:
- ATKINZ117
- Date:
- Tue Aug 06 14:29:39 2013 +0000
- Revision:
- 0:d1ff6ea68ab2
- Child:
- 1:8cb27d9eec8e
this is the latest version at 0806
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 | 0:d1ff6ea68ab2 | 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 | 0:d1ff6ea68ab2 | 11 | char* XBeeGetRssi::get(){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 12 | /*int message_counter=0; |
ATKINZ117 | 0:d1ff6ea68ab2 | 13 | int rssi_counter=0; |
ATKINZ117 | 0:d1ff6ea68ab2 | 14 | Serial MyXbee(_tx,_rx);*/ |
ATKINZ117 | 0:d1ff6ea68ab2 | 15 | Serial pc(USBTX,USBRX); //for debugging. |
ATKINZ117 | 0:d1ff6ea68ab2 | 16 | Serial _MyXbee(_tx,_rx); |
ATKINZ117 | 0:d1ff6ea68ab2 | 17 | |
ATKINZ117 | 0:d1ff6ea68ab2 | 18 | pc.printf("At first.\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 19 | while(1){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 20 | _MyXbee.printf("+++"); //entering AT command mode. |
ATKINZ117 | 0:d1ff6ea68ab2 | 21 | pc.printf("sent +++\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 22 | _MyXbee.attach(this,&XBeeGetRssi::_rssiGetter,Serial::RxIrq); |
ATKINZ117 | 0:d1ff6ea68ab2 | 23 | pc.printf("waiting for xbee!\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 24 | return _rssi; |
ATKINZ117 | 0:d1ff6ea68ab2 | 25 | } |
ATKINZ117 | 0:d1ff6ea68ab2 | 26 | //MyXbee.printf("ATDB\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 27 | //wait(0.3); |
ATKINZ117 | 0:d1ff6ea68ab2 | 28 | /*if(MyXbee.readable()){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 29 | while(_xbee_message!='\0'){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 30 | _rssi[message_counter]=MyXbee.getc(); |
ATKINZ117 | 0:d1ff6ea68ab2 | 31 | message_counter++; |
ATKINZ117 | 0:d1ff6ea68ab2 | 32 | } |
ATKINZ117 | 0:d1ff6ea68ab2 | 33 | }else{ |
ATKINZ117 | 0:d1ff6ea68ab2 | 34 | pc.printf("There is no message.\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 35 | }*/ |
ATKINZ117 | 0:d1ff6ea68ab2 | 36 | } |
ATKINZ117 | 0:d1ff6ea68ab2 | 37 | |
ATKINZ117 | 0:d1ff6ea68ab2 | 38 | void XBeeGetRssi::_rssiGetter(){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 39 | int message_counter=0; |
ATKINZ117 | 0:d1ff6ea68ab2 | 40 | int rssi_counter=0; |
ATKINZ117 | 0:d1ff6ea68ab2 | 41 | Serial pc(USBTX,USBRX); |
ATKINZ117 | 0:d1ff6ea68ab2 | 42 | Serial _MyXbee(_tx,_rx); |
ATKINZ117 | 0:d1ff6ea68ab2 | 43 | |
ATKINZ117 | 0:d1ff6ea68ab2 | 44 | pc.printf("got some message from xbee.\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 45 | while(_xbee_message[message_counter]!='\0'){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 46 | _xbee_message[message_counter]=_MyXbee.getc(); |
ATKINZ117 | 0:d1ff6ea68ab2 | 47 | message_counter++; |
ATKINZ117 | 0:d1ff6ea68ab2 | 48 | }_xbee_message[message_counter]='\0'; //get the message from xbee. |
ATKINZ117 | 0:d1ff6ea68ab2 | 49 | pc.printf("contained OK_message.\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 50 | pc.printf(_xbee_message); |
ATKINZ117 | 0:d1ff6ea68ab2 | 51 | |
ATKINZ117 | 0:d1ff6ea68ab2 | 52 | if(strcmp(_xbee_message,"OK\r\n")==0){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 53 | _MyXbee.printf("ATDB\r\n"); //quering rssi value |
ATKINZ117 | 0:d1ff6ea68ab2 | 54 | while(_rssi[rssi_counter]!='\0'){ |
ATKINZ117 | 0:d1ff6ea68ab2 | 55 | _rssi[rssi_counter]=_MyXbee.getc(); |
ATKINZ117 | 0:d1ff6ea68ab2 | 56 | rssi_counter++; |
ATKINZ117 | 0:d1ff6ea68ab2 | 57 | pc.printf("I'm in the while loop!\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 58 | }_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[] |
ATKINZ117 | 0:d1ff6ea68ab2 | 59 | pc.printf("Ended!\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 60 | _MyXbee.printf("ATCN\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 61 | }else{ |
ATKINZ117 | 0:d1ff6ea68ab2 | 62 | pc.printf("There were some error.\r\n"); |
ATKINZ117 | 0:d1ff6ea68ab2 | 63 | } |
ATKINZ117 | 0:d1ff6ea68ab2 | 64 | |
ATKINZ117 | 0:d1ff6ea68ab2 | 65 | } |