ArduCopter: support *10 multipler when storing/retrieving radius in NAV_LOITER_TURNS
This commit is contained in:
parent
d5fdc2027f
commit
3bf0a21887
@ -1371,7 +1371,12 @@ void ModeAuto::do_circle(const AP_Mission::Mission_Command& cmd)
|
|||||||
const Location circle_center = loc_from_cmd(cmd, copter.current_loc);
|
const Location circle_center = loc_from_cmd(cmd, copter.current_loc);
|
||||||
|
|
||||||
// calculate radius
|
// calculate radius
|
||||||
uint8_t circle_radius_m = HIGHBYTE(cmd.p1); // circle radius held in high byte of p1
|
uint16_t circle_radius_m = HIGHBYTE(cmd.p1); // circle radius held in high byte of p1
|
||||||
|
if (cmd.id == MAV_CMD_NAV_LOITER_TURNS &&
|
||||||
|
cmd.type_specific_bits & (1U << 0)) {
|
||||||
|
// special storage handling allows for larger radii
|
||||||
|
circle_radius_m *= 10;
|
||||||
|
}
|
||||||
|
|
||||||
// move to edge of circle (verify_circle) will ensure we begin circling once we reach the edge
|
// move to edge of circle (verify_circle) will ensure we begin circling once we reach the edge
|
||||||
circle_movetoedge_start(circle_center, circle_radius_m);
|
circle_movetoedge_start(circle_center, circle_radius_m);
|
||||||
|
Loading…
Reference in New Issue
Block a user