Browse Source

commander: refactor COM_DISARM_LAND to param wrapper

after review comment request from @dagar. Thanks!
sbg
Matthias Grob 7 years ago committed by Beat Küng
parent
commit
c87e124f13
  1. 16
      src/modules/commander/Commander.cpp
  2. 3
      src/modules/commander/Commander.hpp

16
src/modules/commander/Commander.cpp

@ -1138,7 +1138,6 @@ Commander::run() @@ -1138,7 +1138,6 @@ Commander::run()
param_t _param_rc_arm_hyst = param_find("COM_RC_ARM_HYST");
param_t _param_min_stick_change = param_find("COM_RC_STICK_OV");
param_t _param_geofence_action = param_find("GF_ACTION");
param_t _param_disarm_land = param_find("COM_DISARM_LAND");
param_t _param_offboard_loss_timeout = param_find("COM_OF_LOSS_T");
param_t _param_arm_without_gps = param_find("COM_ARM_WO_GPS");
param_t _param_arm_switch_is_button = param_find("COM_ARM_SWISBTN");
@ -1383,8 +1382,6 @@ Commander::run() @@ -1383,8 +1382,6 @@ Commander::run()
float ef_time_thres = 1000.0f;
uint64_t timestamp_engine_healthy = 0; /**< absolute time when engine was healty */
float disarm_when_landed_timeout = 0.f;
/* check which state machines for changes, clear "changed" flag */
bool main_state_changed = false;
bool failsafe_old = false;
@ -1481,17 +1478,8 @@ Commander::run() @@ -1481,17 +1478,8 @@ Commander::run()
param_get(_param_ef_current2throttle_thres, &ef_current2throttle_thres);
param_get(_param_ef_time_thres, &ef_time_thres);
param_get(_param_geofence_action, &geofence_action);
param_get(_param_disarm_land, &disarm_when_landed_timeout);
param_get(_param_flight_uuid, &flight_uuid);
// If we update parameters the first time
// make sure the hysteresis time gets set.
// After that it will be set in the main state
// machine based on the arming state.
if (param_init_forced) {
auto_disarm_hysteresis.set_hysteresis_time_from(false, disarm_when_landed_timeout * 1_s);
}
param_get(_param_offboard_loss_timeout, &offboard_loss_timeout);
param_get(_param_offboard_loss_act, &offboard_loss_act);
param_get(_param_offboard_loss_rc_act, &offboard_loss_rc_act);
@ -1724,11 +1712,11 @@ Commander::run() @@ -1724,11 +1712,11 @@ Commander::run()
// pilot has ten seconds time to take off
auto_disarm_hysteresis.set_hysteresis_time_from(false, 10_s);
} else {
auto_disarm_hysteresis.set_hysteresis_time_from(false, disarm_when_landed_timeout * 1_s);
auto_disarm_hysteresis.set_hysteresis_time_from(false, _disarm_when_landed_timeout.get() * 1_s);
}
// Check for auto-disarm
if (armed.armed && land_detector.landed && disarm_when_landed_timeout > FLT_EPSILON) {
if (armed.armed && land_detector.landed && _disarm_when_landed_timeout.get() > FLT_EPSILON) {
auto_disarm_hysteresis.set_state_and_update(true);
} else {

3
src/modules/commander/Commander.hpp

@ -107,7 +107,8 @@ private: @@ -107,7 +107,8 @@ private:
(ParamInt<px4::params::COM_POS_FS_PROB>) _failsafe_pos_probation,
(ParamInt<px4::params::COM_POS_FS_GAIN>) _failsafe_pos_gain,
(ParamInt<px4::params::COM_LOW_BAT_ACT>) _low_bat_action
(ParamInt<px4::params::COM_LOW_BAT_ACT>) _low_bat_action,
(ParamFloat<px4::params::COM_DISARM_LAND>) _disarm_when_landed_timeout
)
const int64_t POSVEL_PROBATION_MIN = 1_s; /**< minimum probation duration (usec) */

Loading…
Cancel
Save