|
|
|
@ -1054,3 +1054,53 @@ uint64_t GCS_MAVLINK_Rover::capabilities() const
@@ -1054,3 +1054,53 @@ uint64_t GCS_MAVLINK_Rover::capabilities() const
|
|
|
|
|
MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET | |
|
|
|
|
GCS_MAVLINK::capabilities()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if HAL_HIGH_LATENCY2_ENABLED |
|
|
|
|
uint8_t GCS_MAVLINK_Rover::high_latency_tgt_heading() const |
|
|
|
|
{ |
|
|
|
|
const Mode *control_mode = rover.control_mode; |
|
|
|
|
if (rover.control_mode->is_autopilot_mode()) { |
|
|
|
|
// need to convert -180->180 to 0->360/2
|
|
|
|
|
return wrap_360(control_mode->wp_bearing()) / 2; |
|
|
|
|
} |
|
|
|
|
return 0;
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint16_t GCS_MAVLINK_Rover::high_latency_tgt_dist() const |
|
|
|
|
{ |
|
|
|
|
const Mode *control_mode = rover.control_mode; |
|
|
|
|
if (rover.control_mode->is_autopilot_mode()) { |
|
|
|
|
// return units are dm
|
|
|
|
|
return MIN((control_mode->get_distance_to_destination()) / 10, UINT16_MAX); |
|
|
|
|
} |
|
|
|
|
return 0;
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint8_t GCS_MAVLINK_Rover::high_latency_tgt_airspeed() const |
|
|
|
|
{ |
|
|
|
|
const Mode *control_mode = rover.control_mode; |
|
|
|
|
if (rover.control_mode->is_autopilot_mode()) { |
|
|
|
|
// return units are m/s*5
|
|
|
|
|
return MIN((vfr_hud_airspeed() - control_mode->speed_error()) * 5, UINT8_MAX); |
|
|
|
|
} |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint8_t GCS_MAVLINK_Rover::high_latency_wind_speed() const |
|
|
|
|
{ |
|
|
|
|
if (rover.g2.windvane.enabled()) { |
|
|
|
|
// return units are m/s*5
|
|
|
|
|
return MIN(rover.g2.windvane.get_true_wind_speed() * 5, UINT8_MAX); |
|
|
|
|
} |
|
|
|
|
return 0;
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint8_t GCS_MAVLINK_Rover::high_latency_wind_direction() const |
|
|
|
|
{ |
|
|
|
|
if (rover.g2.windvane.enabled()) { |
|
|
|
|
// return units are deg/2
|
|
|
|
|
return wrap_360(degrees(rover.g2.windvane.get_true_wind_direction_rad())) / 2; |
|
|
|
|
} |
|
|
|
|
return 0;
|
|
|
|
|
} |
|
|
|
|
#endif // HAL_HIGH_LATENCY2_ENABLED
|