I found a bug in Waspmote API v0.15 when I was trying to set XBee link keys. The API failed to set the key as specified in the code. The bug lies in function gen_data()” in lines 4355-4403. Details below. However, it was corrected in v0.18.
/* Function: Generates the API frame to send to the XBee module Parameters: data : The string that contains part ofthe API frame param : The param to set Returns: Nothing Values: Stores in 'command' variable the API frame to send to the XBee module */ void WaspXBeeCore::gen_data(const char* data, uint8_t* param) { uint8_t inc=0; uint8_t inc2=0; clearCommand(); it=0; while(data[it] != '\0') { inc++; it++; } inc/=2; while(inc211) { for(it=0;it<8;it++) { command[inc-9+it]=param[it]; } } else if(inc==11) { for(it=0;it<3;it++) { command[inc-4+it]=param[it]; } } else if(inc==10) { for(it=0;it<2;it++) { command[inc-3+it]=param[it]; } } else command[inc-2]=param[0]; }
The function in v0.18 is as follows:
/* Function: Generates the API frame to send to the XBee module Parameters: data : The string that contains part of the API frame param : The param to set Returns: Nothing Values: Stores in 'command' variable the API frame to send to the XBee module */ void WaspXBeeCore::gen_data(const char* data, uint8_t* param) { uint8_t inc=0; uint8_t inc2=0; clearCommand(); it=0; while(data[it] != '\0') { inc++; it++; } inc/=2; while(inc2
Comments