You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.3 KiB
75 lines
1.3 KiB
// -*- 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 <AP_Limit_Module.h> |
|
|
|
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 |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|