For getting RSSI value from xbee

Dependents:   XBeeGetRSSISampleProgram Xbee_s2_RX_versao2

XBeeGetRssi.cpp

Committer:
ATKINZ117
Date:
2013-08-17
Revision:
2:befae843036e
Parent:
1:8cb27d9eec8e
Child:
3:602329ee6a01
Child:
4:16396d9ec459

File content as of revision 2:befae843036e:

#include "XBeeGetRssi.h"
#include "mbed.h"
#include <string.h>


XBeeGetRssi::XBeeGetRssi(PinName tx,PinName rx){
    _tx=tx;
    _rx=rx;
}

int XBeeGetRssi::get(){
    //int message_counter=0;
    //int rssi_counter=0;
    Serial pc(USBTX,USBRX); //for debugging.
    Serial _MyXbee(_tx,_rx);
    
    _rssi=0; //initial value
    
    
    pc.printf("At the first of xbee class.\r\n");
    _MyXbee.putc('T');
    if(_MyXbee.readable()){
        _MyXbee.getc();
    }else{
        pc.printf("couldn't get return message.");
    }
    wait(1.0);
    _MyXbee.printf("+++"); //entering AT command mode.
    pc.printf("sent +++\r\n");
    wait(1.0);
    //while(_rssi[rssi_counter]!='\0'){
        if(_MyXbee.readable()){
            _MyXbee.printf("ATDB\r"); //quering rssi value
            _rssi=_MyXbee.getc();
            //rssi_counter++;
            pc.printf("sent ATDB!\r\n");
        }else{
            pc.printf("couldn't read.\r\n");
            //_MyXbee.printf("+++");
            //wait(1.0);
            //pc.printf("+++ again.\r\n");
        }
    //}_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[]
    pc.printf("Here is class end!\r\n");
    _MyXbee.printf("ATCN\r");
    
    return _rssi;
    
}

/*void XBeeGetRssi::_rssiGetter(){
    int message_counter=0;
    int rssi_counter=0;
    Serial pc(USBTX,USBRX);
    Serial _MyXbee(_tx,_rx);
    
    pc.printf("got some message from xbee.\r\n");
    while(_xbee_message[message_counter]!='\0'){
        _xbee_message[message_counter]=_MyXbee.getc();
        message_counter++;
    }_xbee_message[message_counter]='\0'; //get the message from xbee.
    pc.printf("contained some message.\r\n");
    pc.printf(_xbee_message);
    
    if(strcmp(_xbee_message,"OK\r\n")==0){
        _MyXbee.printf("ATDB\r\n"); //quering rssi value
        while(_rssi[rssi_counter]!='\0'){
            _rssi[rssi_counter]=_MyXbee.getc();
            rssi_counter++;
            pc.printf("I'm in the while loop!\r\n");
        }_rssi[rssi_counter]='\0'; //contain rssi value to _rssi[]
        pc.printf("Ended!\r\n");
        _MyXbee.printf("ATCN\r\n");
    }else{
        pc.printf("There were some error.\r\n");
    }
    
}*/