Browse Source

测距如果state无效,则给距离赋值最大或者最小

zr-sdk-4.1.16
孤帆远影Faraway 3 years ago
parent
commit
b7883fa514
  1. 6
      ArduCopter/zr_flight.cpp
  2. 7
      libraries/AP_RangeFinder/RangeFinder_Backend.cpp

6
ArduCopter/zr_flight.cpp

@ -149,8 +149,10 @@ void Copter::do_avoid_action(){ @@ -149,8 +149,10 @@ void Copter::do_avoid_action(){
AP_Proximity *proximity = AP::proximity();
if(proximity == nullptr)
return;
proximity->get_horizontal_distance(0,proxy_dist);
bool get_new_dist = proximity->get_horizontal_distance(0,proxy_dist);
if(get_new_dist == false){
proxy_dist = avoid.get_zr_avd_max() + 1.0;
}
}
if(avoid.get_zr_mode() == 2){
uint16_t rc10_in = RC_Channels::rc_channel(CH_12)->get_radio_in();

7
libraries/AP_RangeFinder/RangeFinder_Backend.cpp

@ -75,7 +75,12 @@ void AP_RangeFinder_Backend::set_status(RangeFinder::RangeFinder_Status _status) @@ -75,7 +75,12 @@ void AP_RangeFinder_Backend::set_status(RangeFinder::RangeFinder_Status _status)
if (state.range_valid_count < 10) {
state.range_valid_count++;
}
} else {
}else{
if(_status == RangeFinder::RangeFinder_OutOfRangeHigh){
state.distance_cm = params.max_distance_cm;
}else{
state.distance_cm = params.min_distance_cm;
}
state.range_valid_count = 0;
}
}

Loading…
Cancel
Save