代码基于ardupilot3.4.2RC2,仅分析ArduCopter(多旋翼、直升机)构型中代码逻辑、使用关系,其他构型(飞机、云台、车)后续考虑分析。
该文件只有一个函数,其他成员都是从基类继承。
函数bool AP_Rally_Copter::is_valid(const Location &rally_point) const
is_valid函数功能:判定目的地是否在电子围栏里面,TURE:在围栏里,FALSE:不在电子围栏里
is_valid函数控制流图
is_valid函数简单被调用及调用关系:
is_valid函数深度调用关系:
is_valid函数全局调用关系:
代码原文如下:
#include <AP_Common/Location.h>
#include "Copter.h"
#include "AP_Rally.h"
bool AP_Rally_Copter::is_valid(const Location &rally_point) const
{
#if AC_FENCE == ENABLED
Location_Class rally_loc(rally_point);
if (!copter.fence.check_destination_within_fence(rally_loc)) {
return false;
}
#endif
return true;
}