// set up velocity profile structure - assume 4 set points for now, generalize later static void cmdSetVelProfile(unsigned char status, unsigned char length, unsigned char *frame) { Payload pld; PKT_UNPACK(_args_cmdSetVelProfile, argsPtr, frame); hallSetVelProfile(0, argsPtr->intervalsL, argsPtr->deltaL, argsPtr->velL); hallSetVelProfile(1, argsPtr->intervalsR, argsPtr->deltaR, argsPtr->velR); //Send confirmation packet pld = payCreateEmpty(sizeof(_args_cmdSetVelProfile)); //pld->pld_data[0] = status; paySetStatus(pld, status); //pld->pld_data[1] = CMD_SET_VEL_PROFILE; paySetType(pld, CMD_SET_VEL_PROFILE); // packet length = 48 bytes (24 ints) memcpy((pld->pld_data) + 2, frame, sizeof(_args_cmdSetVelProfile)); radioSendPayload((WordVal) macGetDestAddr(), pld); }
// set up velocity profile structure - assume 4 set points for now, generalize later static void cmdSetVelProfile(MacPacket packet){ Payload pld; unsigned char *frame; hallVelCmd *params; pld = macGetPayload(packet); frame = payGetData(pld); params = (hallVelCmd*) frame; hallSetVelProfile(¶ms[0]); }