diff --git a/ROMFS/px4fmu_common/init.d-posix/1020_uuv_generic b/ROMFS/px4fmu_common/init.d-posix/1020_uuv_generic index baa5150d28..4a1156e682 100644 --- a/ROMFS/px4fmu_common/init.d-posix/1020_uuv_generic +++ b/ROMFS/px4fmu_common/init.d-posix/1020_uuv_generic @@ -7,7 +7,7 @@ sh /etc/init.d/rc.uuv_defaults if [ $AUTOCNF = yes ] then - #Set data link loss failsafe mode (0: disabled, 4: Data Link Auto Recovery (CASA Outback Challenge rules)) + #Set data link loss failsafe mode (0: disabled) param set NAV_DLL_ACT 0 # disable circuit breaker for airspeed sensor diff --git a/ROMFS/px4fmu_common/init.d-posix/1021_uuv_hippocampus b/ROMFS/px4fmu_common/init.d-posix/1021_uuv_hippocampus index b604075ce4..095a2a146d 100644 --- a/ROMFS/px4fmu_common/init.d-posix/1021_uuv_hippocampus +++ b/ROMFS/px4fmu_common/init.d-posix/1021_uuv_hippocampus @@ -7,7 +7,7 @@ sh /etc/init.d/rc.uuv_defaults if [ $AUTOCNF = yes ] then - #Set data link loss failsafe mode (0: disabled, 4: Data Link Auto Recovery (CASA Outback Challenge rules)) + #Set data link loss failsafe mode (0: disabled) param set NAV_DLL_ACT 0 # disable circuit breaker for airspeed sensor diff --git a/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic b/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic index b31b0f5a83..92d204a2ab 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic +++ b/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic @@ -14,7 +14,7 @@ sh /etc/init.d/rc.uuv_defaults if [ $AUTOCNF = yes ] then - #Set data link loss failsafe mode (0: disabled, 4: Data Link Auto Recovery (CASA Outback Challenge rules)) + #Set data link loss failsafe mode (0: disabled) param set NAV_DLL_ACT 0 # disable circuit breaker for airspeed sensor diff --git a/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus b/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus index 30019aa2b8..b898136961 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus +++ b/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus @@ -14,7 +14,7 @@ sh /etc/init.d/rc.uuv_defaults if [ $AUTOCNF = yes ] then - #Set data link loss failsafe mode (0: disabled, 4: Data Link Auto Recovery (CASA Outback Challenge rules)) + #Set data link loss failsafe mode (0: disabled) param set NAV_DLL_ACT 0 # disable circuit breaker for airspeed sensor diff --git a/msg/vehicle_status.msg b/msg/vehicle_status.msg index 9c60d76ac3..1b6e3818da 100644 --- a/msg/vehicle_status.msg +++ b/msg/vehicle_status.msg @@ -28,8 +28,6 @@ uint8 NAVIGATION_STATE_POSCTL = 2 # Position control mode uint8 NAVIGATION_STATE_AUTO_MISSION = 3 # Auto mission mode uint8 NAVIGATION_STATE_AUTO_LOITER = 4 # Auto loiter mode uint8 NAVIGATION_STATE_AUTO_RTL = 5 # Auto return to launch mode -uint8 NAVIGATION_STATE_AUTO_RCRECOVER = 6 # RC recover mode -uint8 NAVIGATION_STATE_AUTO_RTGS = 7 # Auto return to groundstation on data link loss uint8 NAVIGATION_STATE_AUTO_LANDENGFAIL = 8 # Auto land on engine failure uint8 NAVIGATION_STATE_AUTO_LANDGPSFAIL = 9 # Auto land on gps failure (e.g. open loop loiter down) uint8 NAVIGATION_STATE_ACRO = 10 # Acro mode diff --git a/src/drivers/osd/atxxxx/atxxxx.cpp b/src/drivers/osd/atxxxx/atxxxx.cpp index d8a809cba2..45d6ac639b 100644 --- a/src/drivers/osd/atxxxx/atxxxx.cpp +++ b/src/drivers/osd/atxxxx/atxxxx.cpp @@ -437,8 +437,6 @@ OSDatxxxx::get_flight_mode(uint8_t nav_state) break; case vehicle_status_s::NAVIGATION_STATE_AUTO_LOITER: - case vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER: - case vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS: case vehicle_status_s::NAVIGATION_STATE_DESCEND: case vehicle_status_s::NAVIGATION_STATE_AUTO_TAKEOFF: case vehicle_status_s::NAVIGATION_STATE_AUTO_LAND: diff --git a/src/drivers/rc_input/crsf_telemetry.cpp b/src/drivers/rc_input/crsf_telemetry.cpp index 8aca7162ff..243e711c8c 100644 --- a/src/drivers/rc_input/crsf_telemetry.cpp +++ b/src/drivers/rc_input/crsf_telemetry.cpp @@ -154,8 +154,6 @@ bool CRSFTelemetry::send_flight_mode() break; case vehicle_status_s::NAVIGATION_STATE_AUTO_LOITER: - case vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER: - case vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS: case vehicle_status_s::NAVIGATION_STATE_DESCEND: case vehicle_status_s::NAVIGATION_STATE_AUTO_TAKEOFF: case vehicle_status_s::NAVIGATION_STATE_AUTO_LAND: diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index 6998bf1e6f..c3ce6afdb8 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -1301,6 +1301,20 @@ Commander::run() // update parameters from storage updateParams(); + // NAV_DLL_ACT value 4 Data Link Auto Recovery (CASA Outback Challenge rules) deleted 2020-03-10 + if (_param_nav_dll_act.get() == 4) { + mavlink_log_critical(&mavlink_log_pub, "CASA Outback Challenge rules (NAV_DLL_ACT = 4) retired"); + _param_nav_dll_act.set(2); // value 2 Return mode + _param_nav_dll_act.commit_no_notification(); + } + + // NAV_RCL_ACT value 4 RC Auto Recovery (CASA Outback Challenge rules) deleted 2020-03-10 + if (_param_nav_rcl_act.get() == 4) { + mavlink_log_critical(&mavlink_log_pub, "CASA Outback Challenge rules (NAV_RCL_ACT = 4) retired"); + _param_nav_rcl_act.set(2); // value 2 Return mode + _param_nav_rcl_act.commit_no_notification(); + } + /* update parameters */ if (!armed.armed) { status.system_type = _param_mav_type.get(); @@ -3044,13 +3058,11 @@ Commander::update_control_mode() break; case vehicle_status_s::NAVIGATION_STATE_AUTO_RTL: - case vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER: /* override is not ok for the RTL and recovery mode */ control_mode.flag_external_manual_override_ok = false; /* fallthrough */ case vehicle_status_s::NAVIGATION_STATE_AUTO_FOLLOW_TARGET: - case vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS: case vehicle_status_s::NAVIGATION_STATE_AUTO_LAND: case vehicle_status_s::NAVIGATION_STATE_AUTO_LANDENGFAIL: case vehicle_status_s::NAVIGATION_STATE_AUTO_PRECLAND: diff --git a/src/modules/commander/commander_params.c b/src/modules/commander/commander_params.c index 2529a43ae9..e08bba1b84 100644 --- a/src/modules/commander/commander_params.c +++ b/src/modules/commander/commander_params.c @@ -799,15 +799,12 @@ PARAM_DEFINE_INT32(COM_TAKEOFF_ACT, 0); * * The data link loss failsafe will only be entered after a timeout, * set by COM_DL_LOSS_T in seconds. Once the timeout occurs the selected - * action will be executed. Setting this parameter to 4 will enable CASA - * Outback Challenge rules, which are only recommended to participants - * of that competition. + * action will be executed. * * @value 0 Disabled * @value 1 Hold mode * @value 2 Return mode * @value 3 Land mode - * @value 4 Data Link Auto Recovery (CASA Outback Challenge rules) * @value 5 Terminate * @value 6 Lockdown * @@ -821,14 +818,11 @@ PARAM_DEFINE_INT32(NAV_DLL_ACT, 0); * The RC loss failsafe will only be entered after a timeout, * set by COM_RC_LOSS_T in seconds. If RC input checks have been disabled * by setting the COM_RC_IN_MODE param it will not be triggered. - * Setting this parameter to 4 will enable CASA Outback Challenge rules, - * which are only recommended to participants of that competition. * * @value 0 Disabled * @value 1 Hold mode * @value 2 Return mode * @value 3 Land mode - * @value 4 RC Auto Recovery (CASA Outback Challenge rules) * @value 5 Terminate * @value 6 Lockdown * diff --git a/src/modules/commander/px4_custom_mode.h b/src/modules/commander/px4_custom_mode.h index f1a7b38f72..cd4c5637ad 100644 --- a/src/modules/commander/px4_custom_mode.h +++ b/src/modules/commander/px4_custom_mode.h @@ -61,7 +61,7 @@ enum PX4_CUSTOM_SUB_MODE_AUTO { PX4_CUSTOM_SUB_MODE_AUTO_MISSION, PX4_CUSTOM_SUB_MODE_AUTO_RTL, PX4_CUSTOM_SUB_MODE_AUTO_LAND, - PX4_CUSTOM_SUB_MODE_AUTO_RTGS, + PX4_CUSTOM_SUB_MODE_AUTO_RESERVED_DO_NOT_USE, // was PX4_CUSTOM_SUB_MODE_AUTO_RTGS, deleted 2020-03-05 PX4_CUSTOM_SUB_MODE_AUTO_FOLLOW_TARGET, PX4_CUSTOM_SUB_MODE_AUTO_PRECLAND }; diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp index a552494eb4..957e3e8c1a 100644 --- a/src/modules/commander/state_machine_helper.cpp +++ b/src/modules/commander/state_machine_helper.cpp @@ -85,8 +85,7 @@ const char *const arming_state_names[vehicle_status_s::ARMING_STATE_MAX] = { static hrt_abstime last_preflight_check = 0; ///< initialize so it gets checked immediately void set_link_loss_nav_state(vehicle_status_s *status, actuator_armed_s *armed, - const vehicle_status_flags_s &status_flags, commander_state_s *internal_state, const link_loss_actions_t link_loss_act, - uint8_t auto_recovery_nav_state); + const vehicle_status_flags_s &status_flags, commander_state_s *internal_state, const link_loss_actions_t link_loss_act); void reset_link_loss_globals(actuator_armed_s *armed, const bool old_failsafe, const link_loss_actions_t link_loss_act); @@ -421,8 +420,7 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ if (rc_lost && is_armed) { enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_rc); - set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER); + set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act); } else { switch (internal_state->main_state) { @@ -459,8 +457,7 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ if (rc_lost && is_armed) { enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_rc); - set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER); + set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act); /* As long as there is RC, we can fallback to ALTCTL, or STAB. */ /* A local position estimate is enough for POSCTL for multirotors, @@ -500,21 +497,19 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ } else if (data_link_loss_act_configured && status->data_link_lost && is_armed) { /* datalink loss enabled: - * check for datalink lost: this should always trigger RTGS */ + * check for datalink lost: this should always trigger RTL */ enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_datalink); - set_link_loss_nav_state(status, armed, status_flags, internal_state, data_link_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS); + set_link_loss_nav_state(status, armed, status_flags, internal_state, data_link_loss_act); } else if (!data_link_loss_act_configured && status->rc_signal_lost && status->data_link_lost && !landed && mission_finished && is_armed) { /* datalink loss DISABLED: * check if both, RC and datalink are lost during the mission - * or all links are lost after the mission finishes in air: this should always trigger RCRECOVER */ + * or all links are lost after the mission finishes in air: this should always trigger RTL */ enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_datalink); - set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER); + set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act); } else if (!stay_in_failsafe) { /* stay where you are if you should stay in failsafe, otherwise everything is perfect */ @@ -533,8 +528,7 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ // nothing to do - everything done in check_invalid_pos_nav_state } else if (status->data_link_lost && data_link_loss_act_configured && !landed && is_armed) { /* also go into failsafe if just datalink is lost, and we're actually in air */ - set_link_loss_nav_state(status, armed, status_flags, internal_state, data_link_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS); + set_link_loss_nav_state(status, armed, status_flags, internal_state, data_link_loss_act); enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_datalink); @@ -542,8 +536,7 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ /* go into failsafe if RC is lost and datalink loss is not set up and rc loss is not DISABLED */ enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_rc); - set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER); + set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act); } else if (status->rc_signal_lost) { /* don't bother if RC is lost if datalink is connected */ @@ -607,8 +600,7 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ } else if (status->data_link_lost && data_link_loss_act_configured && !landed && is_armed) { // failsafe: just datalink is lost and we're in air - set_link_loss_nav_state(status, armed, status_flags, internal_state, data_link_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS); + set_link_loss_nav_state(status, armed, status_flags, internal_state, data_link_loss_act); enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_datalink); @@ -620,8 +612,7 @@ bool set_nav_state(vehicle_status_s *status, actuator_armed_s *armed, commander_ // failsafe: RC is lost, datalink loss is not set up and rc loss is not disabled enable_failsafe(status, old_failsafe, mavlink_log_pub, reason_no_rc); - set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act, - vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER); + set_link_loss_nav_state(status, armed, status_flags, internal_state, rc_loss_act); // Orbit can only be started via vehicle_command (mavlink). Consequently, recovery from failsafe into orbit // is not possible and therefore the internal_state needs to be adjusted. @@ -768,8 +759,7 @@ bool check_invalid_pos_nav_state(vehicle_status_s *status, bool old_failsafe, or } void set_link_loss_nav_state(vehicle_status_s *status, actuator_armed_s *armed, - const vehicle_status_flags_s &status_flags, commander_state_s *internal_state, const link_loss_actions_t link_loss_act, - uint8_t auto_recovery_nav_state) + const vehicle_status_flags_s &status_flags, commander_state_s *internal_state, const link_loss_actions_t link_loss_act) { // do the best you can according to the action set @@ -778,13 +768,6 @@ void set_link_loss_nav_state(vehicle_status_s *status, actuator_armed_s *armed, // If datalink loss failsafe is disabled then no action must be taken. break; - case link_loss_actions_t::AUTO_RECOVER: - if (status_flags.condition_global_position_valid && status_flags.condition_home_position_valid) { - status->nav_state = auto_recovery_nav_state; - return; - } - - // FALLTHROUGH case link_loss_actions_t::AUTO_RTL: if (status_flags.condition_global_position_valid && status_flags.condition_home_position_valid) { main_state_transition(*status, commander_state_s::MAIN_STATE_AUTO_RTL, status_flags, internal_state); diff --git a/src/modules/commander/state_machine_helper.h b/src/modules/commander/state_machine_helper.h index 9b2a42fd8a..f632a4da1f 100644 --- a/src/modules/commander/state_machine_helper.h +++ b/src/modules/commander/state_machine_helper.h @@ -65,7 +65,6 @@ enum class link_loss_actions_t { AUTO_LOITER = 1, // Hold mode AUTO_RTL = 2, // Return mode AUTO_LAND = 3, // Land mode - AUTO_RECOVER = 4, // Data Link Auto Recovery (CASA Outback Challenge rules) TERMINATE = 5, // Terminate flight (set actuator outputs to failsafe values, and stop controllers) LOCKDOWN = 6, // Lock actuators (set actuator outputs to disarmed values) }; diff --git a/src/modules/mavlink/mavlink_messages.cpp b/src/modules/mavlink/mavlink_messages.cpp index 7ad17e624e..c6d4258836 100644 --- a/src/modules/mavlink/mavlink_messages.cpp +++ b/src/modules/mavlink/mavlink_messages.cpp @@ -231,9 +231,6 @@ void get_mavlink_navigation_mode(const struct vehicle_status_s *const status, ui break; case vehicle_status_s::NAVIGATION_STATE_AUTO_RTL: - - /* fallthrough */ - case vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER: *mavlink_base_mode |= auto_mode_flags; custom_mode->main_mode = PX4_CUSTOM_MAIN_MODE_AUTO; custom_mode->sub_mode = PX4_CUSTOM_SUB_MODE_AUTO_RTL; @@ -250,12 +247,6 @@ void get_mavlink_navigation_mode(const struct vehicle_status_s *const status, ui custom_mode->sub_mode = PX4_CUSTOM_SUB_MODE_AUTO_LAND; break; - case vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS: - *mavlink_base_mode |= auto_mode_flags; - custom_mode->main_mode = PX4_CUSTOM_MAIN_MODE_AUTO; - custom_mode->sub_mode = PX4_CUSTOM_SUB_MODE_AUTO_RTGS; - break; - case vehicle_status_s::NAVIGATION_STATE_TERMINATION: *mavlink_base_mode |= MAV_MODE_FLAG_MANUAL_INPUT_ENABLED; custom_mode->main_mode = PX4_CUSTOM_MAIN_MODE_MANUAL; @@ -2182,15 +2173,13 @@ protected: bool vehicle_in_auto_mode = _vehicle_status_time > 0 && (_vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_FOLLOW_TARGET - || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_LAND || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_LANDENGFAIL || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_PRECLAND || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_MISSION || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_LOITER || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_TAKEOFF - || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_RTL - || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER); + || _vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_RTL); // Handle next waypoint if it is valid if (vehicle_in_auto_mode && _setpoint_triplet_time > 0 && _setpoint_triplet.current.valid) { diff --git a/src/modules/navigator/CMakeLists.txt b/src/modules/navigator/CMakeLists.txt index 61d846de4a..8298bba7dd 100644 --- a/src/modules/navigator/CMakeLists.txt +++ b/src/modules/navigator/CMakeLists.txt @@ -46,8 +46,6 @@ px4_add_module( precland.cpp mission_feasibility_checker.cpp geofence.cpp - datalinkloss.cpp - rcloss.cpp enginefailure.cpp gpsfailure.cpp follow_target.cpp diff --git a/src/modules/navigator/datalinkloss.cpp b/src/modules/navigator/datalinkloss.cpp deleted file mode 100644 index 3c92ed41fe..0000000000 --- a/src/modules/navigator/datalinkloss.cpp +++ /dev/null @@ -1,217 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2013-2014 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ -/** - * @file datalinkloss.cpp - * Helper class for Data Link Loss Mode according to the OBC rules - * - * @author Thomas Gubler - */ - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include "navigator.h" -#include "datalinkloss.h" - -DataLinkLoss::DataLinkLoss(Navigator *navigator) : - MissionBlock(navigator), - ModuleParams(navigator), - _dll_state(DLL_STATE_NONE) -{ -} - -void -DataLinkLoss::on_inactive() -{ - /* reset DLL state only if setpoint moved */ - if (!_navigator->get_can_loiter_at_sp()) { - _dll_state = DLL_STATE_NONE; - } -} - -void -DataLinkLoss::on_activation() -{ - _dll_state = DLL_STATE_NONE; - advance_dll(); - set_dll_item(); -} - -void -DataLinkLoss::on_active() -{ - if (is_mission_item_reached()) { - advance_dll(); - set_dll_item(); - } -} - -void -DataLinkLoss::set_dll_item() -{ - struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet(); - - pos_sp_triplet->previous = pos_sp_triplet->current; - _navigator->set_can_loiter_at_sp(false); - - switch (_dll_state) { - case DLL_STATE_FLYTOCOMMSHOLDWP: { - _mission_item.lat = (double)(_param_nav_dll_ch_lat.get()) * 1.0e-7; - _mission_item.lon = (double)(_param_nav_dll_ch_lon.get()) * 1.0e-7; - _mission_item.altitude_is_relative = false; - _mission_item.altitude = _param_nav_dll_ch_alt.get(); - _mission_item.yaw = NAN; - _mission_item.loiter_radius = _navigator->get_loiter_radius(); - _mission_item.nav_cmd = NAV_CMD_LOITER_TIME_LIMIT; - _mission_item.acceptance_radius = _navigator->get_acceptance_radius(); - _mission_item.time_inside = _param_nav_dll_ch_t.get() < 0.0f ? 0.0f : _param_nav_dll_ch_t.get(); - _mission_item.autocontinue = true; - _mission_item.origin = ORIGIN_ONBOARD; - - _navigator->set_can_loiter_at_sp(true); - break; - } - - case DLL_STATE_FLYTOAIRFIELDHOMEWP: { - _mission_item.lat = (double)(_param_nav_ah_lat.get()) * 1.0e-7; - _mission_item.lon = (double)(_param_nav_ah_lon.get()) * 1.0e-7; - _mission_item.altitude_is_relative = false; - _mission_item.altitude = _param_nav_ah_alt.get(); - _mission_item.yaw = NAN; - _mission_item.loiter_radius = _navigator->get_loiter_radius(); - _mission_item.nav_cmd = NAV_CMD_LOITER_TIME_LIMIT; - _mission_item.time_inside = _param_nav_dll_ah_t.get() < 0.0f ? 0.0f : _param_nav_dll_ah_t.get(); - _mission_item.acceptance_radius = _navigator->get_acceptance_radius(); - _mission_item.autocontinue = true; - _mission_item.origin = ORIGIN_ONBOARD; - - _navigator->set_can_loiter_at_sp(true); - break; - } - - case DLL_STATE_TERMINATE: { - /* Request flight termination from the commander */ - _navigator->get_mission_result()->flight_termination = true; - _navigator->set_mission_result_updated(); - reset_mission_item_reached(); - warnx("not switched to manual: request flight termination"); - pos_sp_triplet->previous.valid = false; - pos_sp_triplet->current.valid = false; - pos_sp_triplet->next.valid = false; - break; - } - - default: - break; - } - - reset_mission_item_reached(); - - /* convert mission item to current position setpoint and make it valid */ - mission_item_to_position_setpoint(_mission_item, &pos_sp_triplet->current); - pos_sp_triplet->next.valid = false; - - _navigator->set_position_setpoint_triplet_updated(); -} - -void -DataLinkLoss::advance_dll() -{ - switch (_dll_state) { - case DLL_STATE_NONE: - - /* Check the number of data link losses. If above home fly home directly */ - /* if number of data link losses limit is not reached fly to comms hold wp */ - if (_navigator->get_vstatus()->data_link_lost_counter > _param_nav_dll_n.get()) { - warnx("%d data link losses, limit is %d, fly to airfield home", - _navigator->get_vstatus()->data_link_lost_counter, _param_nav_dll_n.get()); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "too many DL losses, fly to airfield home"); - _navigator->get_mission_result()->stay_in_failsafe = true; - _navigator->set_mission_result_updated(); - reset_mission_item_reached(); - _dll_state = DLL_STATE_FLYTOAIRFIELDHOMEWP; - - } else { - if (!_param_nav_dll_chsk.get()) { - warnx("fly to comms hold, datalink loss counter: %d", _navigator->get_vstatus()->data_link_lost_counter); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "fly to comms hold"); - _dll_state = DLL_STATE_FLYTOCOMMSHOLDWP; - - } else { - /* comms hold wp not active, fly to airfield home directly */ - warnx("Skipping comms hold wp. Flying directly to airfield home"); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "fly to airfield home, comms hold skipped"); - _dll_state = DLL_STATE_FLYTOAIRFIELDHOMEWP; - } - } - - break; - - case DLL_STATE_FLYTOCOMMSHOLDWP: - warnx("fly to airfield home"); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "fly to airfield home"); - _dll_state = DLL_STATE_FLYTOAIRFIELDHOMEWP; - _navigator->get_mission_result()->stay_in_failsafe = true; - _navigator->set_mission_result_updated(); - reset_mission_item_reached(); - break; - - case DLL_STATE_FLYTOAIRFIELDHOMEWP: - _dll_state = DLL_STATE_TERMINATE; - warnx("time is up, state should have been changed manually by now"); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "no manual control, terminating"); - _navigator->get_mission_result()->stay_in_failsafe = true; - _navigator->set_mission_result_updated(); - reset_mission_item_reached(); - break; - - case DLL_STATE_TERMINATE: - warnx("dll end"); - _dll_state = DLL_STATE_END; - break; - - default: - break; - } -} diff --git a/src/modules/navigator/datalinkloss.h b/src/modules/navigator/datalinkloss.h deleted file mode 100644 index 2a7a13b116..0000000000 --- a/src/modules/navigator/datalinkloss.h +++ /dev/null @@ -1,92 +0,0 @@ -/*************************************************************************** - * - * Copyright (c) 2013-2014 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ -/** - * @file datalinkloss.h - * Helper class for Data Link Loss Mode acording to the OBC rules - * - * @author Thomas Gubler - */ - -#pragma once - -#include - -#include "navigator_mode.h" -#include "mission_block.h" - -class Navigator; - -class DataLinkLoss : public MissionBlock, public ModuleParams -{ -public: - DataLinkLoss(Navigator *navigator); - - ~DataLinkLoss() = default; - - void on_inactive() override; - void on_activation() override; - void on_active() override; - -private: - DEFINE_PARAMETERS( - (ParamFloat) _param_nav_dll_ch_t, - (ParamInt) _param_nav_dll_ch_lat, // * 1e7 - (ParamInt) _param_nav_dll_ch_lon, // * 1e7 - (ParamFloat) _param_nav_dll_ch_alt, - (ParamInt) _param_nav_ah_lat, // * 1e7 - (ParamInt) _param_nav_ah_lon, // * 1e7 - (ParamFloat) _param_nav_ah_alt, - (ParamFloat) _param_nav_dll_ah_t, - (ParamInt) _param_nav_dll_n, - (ParamInt) _param_nav_dll_chsk - ) - - enum DLLState { - DLL_STATE_NONE = 0, - DLL_STATE_FLYTOCOMMSHOLDWP = 1, - DLL_STATE_FLYTOAIRFIELDHOMEWP = 2, - DLL_STATE_TERMINATE = 3, - DLL_STATE_END = 4 - } _dll_state{DLL_STATE_NONE}; - - /** - * Set the DLL item - */ - void set_dll_item(); - - /** - * Move to next DLL item - */ - void advance_dll(); - -}; diff --git a/src/modules/navigator/datalinkloss_params.c b/src/modules/navigator/datalinkloss_params.c deleted file mode 100644 index d720dcea64..0000000000 --- a/src/modules/navigator/datalinkloss_params.c +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2014, 2015 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file datalinkloss_params.c - * - * Parameters for DLL - * - * @author Thomas Gubler - */ - -/* - * Data Link Loss parameters, accessible via MAVLink - */ - -/** - * Comms hold wait time - * - * The amount of time in seconds the system should wait at the comms hold waypoint - * - * @unit s - * @min 0.0 - * @max 3600.0 - * @decimal 0 - * @increment 1 - * @group Data Link Loss - */ -PARAM_DEFINE_FLOAT(NAV_DLL_CH_T, 120.0f); - -/** - * Comms hold Lat - * - * Latitude of comms hold waypoint - * - * @unit deg * 1e7 - * @min -900000000 - * @max 900000000 - * @group Data Link Loss - */ -PARAM_DEFINE_INT32(NAV_DLL_CH_LAT, -266072120); - -/** - * Comms hold Lon - * - * Longitude of comms hold waypoint - * - * @unit deg * 1e7 - * @min -1800000000 - * @max 1800000000 - * @group Data Link Loss - */ -PARAM_DEFINE_INT32(NAV_DLL_CH_LON, 1518453890); - -/** - * Comms hold alt - * - * Altitude of comms hold waypoint - * - * @unit m - * @min -50 - * @max 30000 - * @decimal 1 - * @increment 0.5 - * @group Data Link Loss - */ -PARAM_DEFINE_FLOAT(NAV_DLL_CH_ALT, 600.0f); - -/** - * Airfield home wait time - * - * The amount of time in seconds the system should wait at the airfield home waypoint - * - * @unit s - * @min 0.0 - * @max 3600.0 - * @decimal 0 - * @increment 1 - * @group Data Link Loss - */ -PARAM_DEFINE_FLOAT(NAV_DLL_AH_T, 120.0f); - -/** - * Number of allowed Datalink timeouts - * - * After more than this number of data link timeouts the aircraft returns home directly - * - * @min 0 - * @max 1000 - * @group Data Link Loss - */ -PARAM_DEFINE_INT32(NAV_DLL_N, 2); - -/** - * Skip comms hold wp - * - * If set to 1 the system will skip the comms hold wp on data link loss and will directly fly to - * airfield home - * - * @boolean - * @group Data Link Loss - */ -PARAM_DEFINE_INT32(NAV_DLL_CHSK, 0); diff --git a/src/modules/navigator/navigator.h b/src/modules/navigator/navigator.h index 43bcba9b24..b44ff7db7c 100644 --- a/src/modules/navigator/navigator.h +++ b/src/modules/navigator/navigator.h @@ -41,7 +41,6 @@ #pragma once -#include "datalinkloss.h" #include "enginefailure.h" #include "follow_target.h" #include "geofence.h" @@ -51,7 +50,6 @@ #include "loiter.h" #include "mission.h" #include "navigator_mode.h" -#include "rcloss.h" #include "rtl.h" #include "takeoff.h" @@ -83,7 +81,7 @@ /** * Number of navigation modes that need on_active/on_inactive calls */ -#define NAVIGATOR_MODE_ARRAY_SIZE 11 +#define NAVIGATOR_MODE_ARRAY_SIZE 9 class Navigator : public ModuleBase, public ModuleParams @@ -382,8 +380,6 @@ private: Land _land; /**< class for handling land commands */ PrecLand _precland; /**< class for handling precision land commands */ RTL _rtl; /**< class that handles RTL */ - RCLoss _rcLoss; /**< class that handles RTL according to OBC rules (rc loss mode) */ - DataLinkLoss _dataLinkLoss; /**< class that handles the OBC datalink loss mode */ EngineFailure _engineFailure; /**< class that handles the engine failure mode (FW only!) */ GpsFailure _gpsFailure; /**< class that handles the OBC gpsfailure loss mode */ FollowTarget _follow_target; diff --git a/src/modules/navigator/navigator_main.cpp b/src/modules/navigator/navigator_main.cpp index 907f8c2181..c212844ea7 100644 --- a/src/modules/navigator/navigator_main.cpp +++ b/src/modules/navigator/navigator_main.cpp @@ -84,8 +84,6 @@ Navigator::Navigator() : _land(this), _precland(this), _rtl(this), - _rcLoss(this), - _dataLinkLoss(this), _engineFailure(this), _gpsFailure(this), _follow_target(this) @@ -94,14 +92,12 @@ Navigator::Navigator() : _navigation_mode_array[0] = &_mission; _navigation_mode_array[1] = &_loiter; _navigation_mode_array[2] = &_rtl; - _navigation_mode_array[3] = &_dataLinkLoss; - _navigation_mode_array[4] = &_engineFailure; - _navigation_mode_array[5] = &_gpsFailure; - _navigation_mode_array[6] = &_rcLoss; - _navigation_mode_array[7] = &_takeoff; - _navigation_mode_array[8] = &_land; - _navigation_mode_array[9] = &_precland; - _navigation_mode_array[10] = &_follow_target; + _navigation_mode_array[3] = &_engineFailure; + _navigation_mode_array[4] = &_gpsFailure; + _navigation_mode_array[5] = &_takeoff; + _navigation_mode_array[6] = &_land; + _navigation_mode_array[7] = &_precland; + _navigation_mode_array[8] = &_follow_target; _handle_back_trans_dec_mss = param_find("VT_B_DEC_MSS"); _handle_reverse_delay = param_find("VT_B_REV_DEL"); @@ -493,11 +489,6 @@ Navigator::run() navigation_mode_new = &_loiter; break; - case vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER: - _pos_sp_triplet_published_invalid_once = false; - navigation_mode_new = &_rcLoss; - break; - case vehicle_status_s::NAVIGATION_STATE_AUTO_RTL: { _pos_sp_triplet_published_invalid_once = false; @@ -613,11 +604,6 @@ Navigator::run() _precland.set_mode(PrecLandMode::Required); break; - case vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS: - _pos_sp_triplet_published_invalid_once = false; - navigation_mode_new = &_dataLinkLoss; - break; - case vehicle_status_s::NAVIGATION_STATE_AUTO_LANDENGFAIL: _pos_sp_triplet_published_invalid_once = false; navigation_mode_new = &_engineFailure; diff --git a/src/modules/navigator/rcloss.cpp b/src/modules/navigator/rcloss.cpp deleted file mode 100644 index d12168c720..0000000000 --- a/src/modules/navigator/rcloss.cpp +++ /dev/null @@ -1,178 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2013-2014 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ -/** - * @file rcloss.cpp - * Helper class for RC Loss Mode according to the OBC rules - * - * @author Thomas Gubler - */ - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "navigator.h" -#include "datalinkloss.h" - -RCLoss::RCLoss(Navigator *navigator) : - MissionBlock(navigator), - ModuleParams(navigator), - _rcl_state(RCL_STATE_NONE) -{ -} - -void -RCLoss::on_inactive() -{ - /* reset RCL state only if setpoint moved */ - if (!_navigator->get_can_loiter_at_sp()) { - _rcl_state = RCL_STATE_NONE; - } -} - -void -RCLoss::on_activation() -{ - _rcl_state = RCL_STATE_NONE; - advance_rcl(); - set_rcl_item(); -} - -void -RCLoss::on_active() -{ - if (is_mission_item_reached()) { - advance_rcl(); - set_rcl_item(); - } -} - -void -RCLoss::set_rcl_item() -{ - struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet(); - - pos_sp_triplet->previous = pos_sp_triplet->current; - _navigator->set_can_loiter_at_sp(false); - - switch (_rcl_state) { - case RCL_STATE_LOITER: { - _mission_item.lat = _navigator->get_global_position()->lat; - _mission_item.lon = _navigator->get_global_position()->lon; - _mission_item.altitude = _navigator->get_global_position()->alt; - _mission_item.altitude_is_relative = false; - _mission_item.yaw = _navigator->get_global_position()->yaw; - _mission_item.loiter_radius = _navigator->get_loiter_radius(); - _mission_item.nav_cmd = NAV_CMD_LOITER_TIME_LIMIT; - _mission_item.acceptance_radius = _navigator->get_acceptance_radius(); - _mission_item.time_inside = _param_nav_gpsf_lt.get() < 0.0f ? 0.0f : _param_nav_gpsf_lt.get(); - _mission_item.autocontinue = true; - _mission_item.origin = ORIGIN_ONBOARD; - - _navigator->set_can_loiter_at_sp(true); - break; - } - - case RCL_STATE_TERMINATE: { - /* Request flight termination from the commander */ - _navigator->get_mission_result()->flight_termination = true; - _navigator->set_mission_result_updated(); - warnx("RC not recovered: request flight termination"); - pos_sp_triplet->previous.valid = false; - pos_sp_triplet->current.valid = false; - pos_sp_triplet->next.valid = false; - break; - } - - default: - break; - } - - reset_mission_item_reached(); - - /* convert mission item to current position setpoint and make it valid */ - mission_apply_limitation(_mission_item); - mission_item_to_position_setpoint(_mission_item, &pos_sp_triplet->current); - pos_sp_triplet->next.valid = false; - - _navigator->set_position_setpoint_triplet_updated(); -} - -void -RCLoss::advance_rcl() -{ - switch (_rcl_state) { - case RCL_STATE_NONE: - if (_param_nav_gpsf_lt.get() > 0.0f) { - warnx("RC loss, OBC mode, loiter"); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "RC loss, loitering"); - _rcl_state = RCL_STATE_LOITER; - - } else { - warnx("RC loss, OBC mode, slip loiter, terminate"); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "RC loss, terminating"); - _rcl_state = RCL_STATE_TERMINATE; - _navigator->get_mission_result()->stay_in_failsafe = true; - _navigator->set_mission_result_updated(); - reset_mission_item_reached(); - } - - break; - - case RCL_STATE_LOITER: - _rcl_state = RCL_STATE_TERMINATE; - warnx("time is up, no RC regain, terminating"); - mavlink_log_critical(_navigator->get_mavlink_log_pub(), "RC not regained, terminating"); - _navigator->get_mission_result()->stay_in_failsafe = true; - _navigator->set_mission_result_updated(); - reset_mission_item_reached(); - break; - - case RCL_STATE_TERMINATE: - warnx("rcl end"); - _rcl_state = RCL_STATE_END; - break; - - default: - break; - } -} diff --git a/src/modules/navigator/rcloss.h b/src/modules/navigator/rcloss.h deleted file mode 100644 index 1cae2ffed9..0000000000 --- a/src/modules/navigator/rcloss.h +++ /dev/null @@ -1,81 +0,0 @@ -/*************************************************************************** - * - * Copyright (c) 2013-2014 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ -/** - * @file rcloss.h - * Helper class for RC Loss Mode acording to the OBC rules - * - * @author Thomas Gubler - */ - -#pragma once - -#include - -#include "navigator_mode.h" -#include "mission_block.h" - -class Navigator; - -class RCLoss : public MissionBlock, public ModuleParams -{ -public: - RCLoss(Navigator *navigator); - ~RCLoss() = default; - - void on_inactive() override; - void on_activation() override; - void on_active() override; - -private: - DEFINE_PARAMETERS( - (ParamFloat) _param_nav_gpsf_lt - ) - - enum RCLState { - RCL_STATE_NONE = 0, - RCL_STATE_LOITER = 1, - RCL_STATE_TERMINATE = 2, - RCL_STATE_END = 3 - } _rcl_state{RCL_STATE_NONE}; - - /** - * Set the RCL item - */ - void set_rcl_item(); - - /** - * Move to next RCL item - */ - void advance_rcl(); - -}; diff --git a/src/modules/navigator/rcloss_params.c b/src/modules/navigator/rcloss_params.c deleted file mode 100644 index b9852aa491..0000000000 --- a/src/modules/navigator/rcloss_params.c +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2014 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file rcloss_params.c - * - * Parameters for RC Loss (OBC) - * - * @author Thomas Gubler - */ - -/* - * OBC RC Loss mode parameters, accessible via MAVLink - */ - -/** - * RC Loss Loiter Time (CASA Outback Challenge rules) - * - * The amount of time in seconds the system should loiter at current position before termination. - * Only applies if NAV_RCL_ACT is set to 2 (CASA Outback Challenge rules). - * Set to -1 to make the system skip loitering. - * - * @unit s - * @min -1.0 - * @decimal 1 - * @increment 0.1 - * @group Mission - */ -PARAM_DEFINE_FLOAT(NAV_RCL_LT, 120.0f);