<description>Setpoint in rollspeed, pitchspeed, yawspeed currently active on the system.</description>
<fieldtype="uint32_t"name="time_ms">Timestamp in milliseconds since system boot</field>
<fieldtype="float"name="roll_speed">Desired roll angular speed in rad/s</field>
<fieldtype="float"name="pitch_speed">Desired pitch angular speed in rad/s</field>
<fieldtype="float"name="yaw_speed">Desired yaw angular speed in rad/s</field>
</message>
<messageid="60"name="ATTITUDE_CONTROLLER_OUTPUT">
<description>The output of the attitude controller. This output is the control response the controller currently generates and the attitude the MAV would take if it is under control of the attitude controller. The primary use of this message is to check the response and signs of the controller before the actual flight.</description>
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Broadcasted new current waypoint\n");//printf("Broadcasted new current waypoint %u\n", wpc.seq);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Broadcasted new current waypoint\n");//// printf("Broadcasted new current waypoint %u\n", wpc.seq);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("No new setpoint set because of invalid coordinate frame of waypoint");//if (verbose) printf("No new set point sent to IMU because the new waypoint %u had no local coordinates\n", cur->seq);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("No new setpoint set because of invalid coordinate frame of waypoint");//// if (verbose) // printf("No new set point sent to IMU because the new waypoint %u had no local coordinates\n", cur->seq);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("ERROR: Waypoint index out of bounds\n");//if (verbose) printf("ERROR: index out of bounds\n");
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("ERROR: Waypoint index out of bounds\n");//// if (verbose) // printf("ERROR: index out of bounds\n");
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Sent waypoint count");//if (verbose) printf("Sent waypoint count (%u) to ID %u\n", wpc.count, wpc.target_system);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Sent waypoint count");//// if (verbose) // printf("Sent waypoint count (%u) to ID %u\n", wpc.count, wpc.target_system);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Sent waypoint");//if (verbose) printf("Sent waypoint %u to ID %u\n", wp->seq, wp->target_system);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Sent waypoint");//// if (verbose) // printf("Sent waypoint %u to ID %u\n", wp->seq, wp->target_system);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Sent waypoint request");//if (verbose) printf("Sent waypoint request %u to ID %u\n", wpr.seq, wpr.target_system);
if(MAVLINK_WPM_TEXT_FEEDBACK)mavlink_wpm_send_gcs_string("Sent waypoint request");//// if (verbose) // printf("Sent waypoint request %u to ID %u\n", wpr.seq, wpr.target_system);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_IDLE)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST from %u changing state to MAVLINK_WPM_STATE_SENDLIST\n",msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_SENDLIST)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST again from %u staying in state MAVLINK_WPM_STATE_SENDLIST\n",msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_IDLE)// printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST from %u changing state to MAVLINK_WPM_STATE_SENDLIST\n", msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_SENDLIST)// printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST again from %u staying in state MAVLINK_WPM_STATE_SENDLIST\n", msg->sysid);
//ensure that we are in the correct state and that the first request has id 0 and the following requests have either the last id (re-send last waypoint) or last_id+1 (next waypoint)
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_SENDLIST)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u changing state to MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n",wpr.seq,msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_SENDLIST_SENDWPS&&wpr.seq==wpm.current_wp_id+1)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u staying in state MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n",wpr.seq,msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_SENDLIST_SENDWPS&&wpr.seq==wpm.current_wp_id)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u (again) from %u staying in state MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n",wpr.seq,msg->sysid);
if(wpm.current_state==MAVLINK_WPM_STATE_SENDLIST)
{
#ifdef MAVLINK_WPM_NO_PRINTF
mavlink_wpm_send_gcs_string("GOT WP REQ, state -> SEND");
#else
if(MAVLINK_WPM_VERBOSE)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u changing state to MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n",wpr.seq,msg->sysid);
if(MAVLINK_WPM_VERBOSE)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u staying in state MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n",wpr.seq,msg->sysid);
if(MAVLINK_WPM_VERBOSE)printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u (again) from %u staying in state MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n",wpr.seq,msg->sysid);
if(wpr.seq!=wpm.current_wp_id&&wpr.seq!=wpm.current_wp_id+1)printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was not the expected (%u or %u).\n",wpr.seq,wpm.current_wp_id,wpm.current_wp_id+1);
elseif(wpr.seq>=wpm.size)printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was out of bounds.\n",wpr.seq);
mavlink_wpm_send_gcs_string("REJ. WP CMD: Req. WP was unexpected");
#else
if(MAVLINK_WPM_VERBOSE)printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was not the expected (%u or %u).\n",wpr.seq,wpm.current_wp_id,wpm.current_wp_id+1);
#endif
}
elseif(wpr.seq>=wpm.size)
{
#ifdef MAVLINK_WPM_NO_PRINTF
mavlink_wpm_send_gcs_string("REJ. WP CMD: Req. WP not in list");
#else
if(MAVLINK_WPM_VERBOSE)printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was out of bounds.\n",wpr.seq);
if(verbose)printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST from ID %u because i'm already talking to ID %u.\n",msg->sysid,wpm.current_partner_sysid);
#ifdef MAVLINK_WPM_NO_PRINTF
mavlink_wpm_send_gcs_string("REJ. WP CMD: Busy");
#else
if(MAVLINK_WPM_VERBOSE)printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST from ID %u because i'm already talking to ID %u.\n",msg->sysid,wpm.current_partner_sysid);
#endif
}
else
{
if(verbose)printf("IGNORED WAYPOINT COMMAND BECAUSE TARGET SYSTEM AND COMPONENT OR COMM PARTNER ID MISMATCH\n");
#ifdef MAVLINK_WPM_NO_PRINTF
mavlink_wpm_send_gcs_string("REJ. WP CMD: target id mismatch");
#else
if(MAVLINK_WPM_VERBOSE)printf("IGNORED WAYPOINT COMMAND BECAUSE TARGET SYSTEM AND COMPONENT OR COMM PARTNER ID MISMATCH\n");
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_IDLE)printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) from %u changing state to MAVLINK_WPM_STATE_GETLIST\n",wpc.count,msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_GETLIST)printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) again from %u\n",wpc.count,msg->sysid);
if(wpm.current_state==MAVLINK_WPM_STATE_IDLE)
{
#ifdef MAVLINK_WPM_NO_PRINTF
mavlink_wpm_send_gcs_string("WP CMD OK: state -> GETLIST");
#else
if(MAVLINK_WPM_VERBOSE)printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) from %u changing state to MAVLINK_WPM_STATE_GETLIST\n",wpc.count,msg->sysid);
#endif
}
if(wpm.current_state==MAVLINK_WPM_STATE_GETLIST)
{
#ifdef MAVLINK_WPM_NO_PRINTF
mavlink_wpm_send_gcs_string("WP CMD OK AGAIN");
#else
if(MAVLINK_WPM_VERBOSE)printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) again from %u\n",wpc.count,msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_GETLIST)printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u changing state to MAVLINK_WPM_STATE_GETLIST_GETWPS\n",wp.seq,msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_GETLIST_GETWPS&&wp.seq==wpm.current_wp_id)printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u\n",wp.seq,msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_GETLIST_GETWPS&&wp.seq-1==wpm.current_wp_id)printf("Got MAVLINK_MSG_ID_WAYPOINT %u (again) from %u\n",wp.seq,msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_GETLIST)// printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u changing state to MAVLINK_WPM_STATE_GETLIST_GETWPS\n", wp.seq, msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_GETLIST_GETWPS&&wp.seq==wpm.current_wp_id)// printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u\n", wp.seq, msg->sysid);
if(verbose&&wpm.current_state==MAVLINK_WPM_STATE_GETLIST_GETWPS&&wp.seq-1==wpm.current_wp_id)// printf("Got MAVLINK_MSG_ID_WAYPOINT %u (again) from %u\n", wp.seq, msg->sysid);
if(!(wp.seq==wpm.current_wp_id))printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the waypoint ID (%u) was not the expected %u.\n",wp.seq,wpm.current_wp_id);
elseif(!(wp.seq<wpm.current_count))printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the waypoint ID (%u) was out of bounds.\n",wp.seq);
if(verbose)printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u from ID %u because i'm already talking to ID %u.\n",wp.seq,msg->sysid,wpm.current_partner_sysid);
// if (verbose) // printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u from ID %u because i'm already talking to ID %u.\n", wp.seq, msg->sysid, wpm.current_partner_sysid);