Hi libelium-dev
I read the : waspmote-technical_guide_eng.pdf, in page 56, i see the RSSI that i want be to use to measure distance between two mote, so the question is:
1/ how can i measure RSSI?
2/It is between Mote and Gateway or between Mote to Mote ?
When i read p 57, they use:
Quote:
In Waspmote this value is obtained simply by executing the function:
{
xbee.getRSSI();
}
and i see also the example given : ------Waspmote XBee 802.15.4 Getting RSSI Example------
I know that i can get RSSI after receiving a packet, so i use this code between Mote and Gateway, but always it give me RSSI=0;
Please tell me what's wrong in my code and how can i do????
CODE:
Code:
packetXBee* paq_sent;
long previous=0;
uint8_t state=0;
uint8_t g=0;
char* data="Good Morning";
void setup()
{
// Inits the XBee 802.15.4 library
xbee802.init(XBEE_802_15_4,FREQ2_4G,NORMAL);
// Powers XBee
xbee802.ON();
}
void loop()
{
paq_sent=(packetXBee*) calloc(1,sizeof(packetXBee));
paq_sent->mode=BROADCAST;
paq_sent->MY_known=0;
paq_sent->packetID=0x52;
paq_sent->opt=0;
xbee802.hops=0;
xbee802.setOriginParams(paq_sent,MAC_TYPE);
xbee802.setDestinationParams(paq_sent, "0013A20040762047",data, MAC_TYPE, DATA_ABSOLUTE);
sprintf(data,"-RSSI:%d",xbee802.getRSSI(),'\r','\n');
xbee802.sendXBee(paq_sent);
// Waiting message
previous=millis();
while( (millis()-previous) < 10000 )
{
if( XBee.available() )
{
xbee802.treatData();
if( !xbee802.error_RX )
{
while(xbee802.pos>0)
{
XBee.print("RSSI: ");
XBee.print(xbee802.packet_finished[xbee802.pos-1]->RSSI,HEX);
free(xbee802.packet_finished[xbee802.pos-1]);
xbee802.packet_finished[xbee802.pos-1]=NULL;
xbee802.pos--;
}
}
}
}
// Getting RSSI using the API function
xbee802.getRSSI();
if( !xbee802.error_AT ){
XBee.print("RSSI: ");
XBee.println(xbee802.valueRSSI[0],HEX);
}
free(paq_sent);
paq_sent = NULL;
}
Please tell me how can i do, because i have a project to do it, it is to calculate the distance between 5 mote.
Thankyou...
Regard
ghorbel