diff --git a/src/modules/mavlink/mavlink_mission.cpp b/src/modules/mavlink/mavlink_mission.cpp index 746689dd52..073c5afcfc 100644 --- a/src/modules/mavlink/mavlink_mission.cpp +++ b/src/modules/mavlink/mavlink_mission.cpp @@ -780,6 +780,13 @@ MavlinkMissionManager::parse_mavlink_mission_item(const mavlink_mission_item_t * case MAV_FRAME_MISSION: // This is a mission item with no coordinate + mission_item->params[0] = mavlink_mission_item->param1; + mission_item->params[1] = mavlink_mission_item->param2; + mission_item->params[2] = mavlink_mission_item->param3; + mission_item->params[3] = mavlink_mission_item->param4; + mission_item->params[4] = mavlink_mission_item->x; + mission_item->params[5] = mavlink_mission_item->y; + mission_item->params[6] = mavlink_mission_item->z; break; default: diff --git a/src/modules/navigator/mission_block.cpp b/src/modules/navigator/mission_block.cpp index a58bcebfce..64512d3d3d 100644 --- a/src/modules/navigator/mission_block.cpp +++ b/src/modules/navigator/mission_block.cpp @@ -236,15 +236,15 @@ MissionBlock::reset_mission_item_reached() void MissionBlock::mission_item_to_vehicle_command(const struct mission_item_s *item, struct vehicle_command_s *cmd) { - // Assignment based on MAVLink spec for param enumeration: - // http://mavlink.org/messages/common#MAV_CMD_NAV_WAYPOINT - cmd->param1 = item->time_inside; - cmd->param2 = item->acceptance_radius; - cmd->param3 = item->loiter_radius; - cmd->param4 = item->yaw; - cmd->param5 = item->lat; - cmd->param6 = item->lon; - cmd->param7 = item->altitude; + // we're expecting a mission command item here so assign the "raw" inputs to the command + // (MAV_FRAME_MISSION mission item) + cmd->param1 = item->params[0]; + cmd->param2 = item->params[1]; + cmd->param3 = item->params[2]; + cmd->param4 = item->params[3]; + cmd->param5 = item->params[4]; + cmd->param6 = item->params[5]; + cmd->param7 = item->params[6]; cmd->target_system = _navigator->get_vstatus()->system_id; cmd->target_component = _navigator->get_vstatus()->component_id; diff --git a/src/modules/navigator/navigation.h b/src/modules/navigator/navigation.h index 89f77b4752..b768de5ac5 100644 --- a/src/modules/navigator/navigation.h +++ b/src/modules/navigator/navigation.h @@ -103,6 +103,7 @@ struct mission_item_s { unsigned do_jump_current_count; /**< count how many times the jump has been done */ int actuator_num; /**< actuator number to be set 0..5 ( corresponds to AUX outputs 1..6 */ int actuator_value; /**< new value for selected actuator in ms 900...2000 */ + float params[7]; /**< array to store mission command values for MAV_FRAME_MISSION ***/ }; #pragma pack(pop) #include