// -*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*- /// @brief Imposes limits on location (geofence), altitude and other parameters /// Each breach will trigger an action or set of actions to recover. /// Adapted from geofence. /// @author Andrew Tridgell /// Andreas Antonopoulos #include extern const prog_char_t *get_module_name(enum moduleid i) { switch (i) { case AP_LIMITS_GPSLOCK: return PSTR("GPSLock Limit"); break; case AP_LIMITS_GEOFENCE: return PSTR("Geofence Limit"); break; case AP_LIMITS_ALTITUDE: return PSTR("Altitude Limit"); break; default: return PSTR("ERROR"); break; } } AP_Limit_Module::AP_Limit_Module(enum moduleid i) { _id = i; _next = NULL; } bool AP_Limit_Module::init() { _triggered = false; return true; }; moduleid AP_Limit_Module::get_module_id() { return(_id); } bool AP_Limit_Module::enabled() { return(_enabled); } bool AP_Limit_Module::required() { return(_required); } AP_Limit_Module *AP_Limit_Module::next() { return(_next); } void AP_Limit_Module::link(AP_Limit_Module *m) { _next = m; } bool AP_Limit_Module::triggered() { return(_triggered); } void AP_Limit_Module::action() { // do nothing }