// send robot info when queried void cmdWhoAmI(unsigned char status, unsigned char length, unsigned char *frame) { // maximum string length to avoid packet size limit char* verstr = versionGetString(); int verlen = strlen(verstr); //The cast to unsigned char* is here to prevent a warning Payload pld = payCreate(verlen, (unsigned char*)verstr, status, CMD_WHO_AM_I); radioSendPayload(macGetDestAddr(), pld); }
// send robot info when queried unsigned char cmdWhoAmI(unsigned char type, unsigned char status, unsigned char length, unsigned char *frame) { unsigned char i, string_length; unsigned char *version_string; // maximum string length to avoid packet size limit version_string = (unsigned char*)versionGetString(); i = 0; while((i < 127) && version_string[i] != '\0') { i++; } string_length=i; radioSendData(RADIO_DST_ADDR, status, CMD_WHO_AM_I, //TODO: Robot should respond to source of query, not hardcoded address string_length, version_string, 0); return 1; //success }