diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index 24ee4bb608..f29a8bac13 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -94,6 +94,8 @@ MavlinkReceiver::MavlinkReceiver(Mavlink *parent) : _handle_sens_flow_maxr = param_find("SENS_FLOW_MAXR"); _handle_sens_flow_minhgt = param_find("SENS_FLOW_MINHGT"); _handle_sens_flow_rot = param_find("SENS_FLOW_ROT"); + _handle_ekf2_min_rng = param_find("EKF2_MIN_RNG"); + _handle_ekf2_rng_a_hmax = param_find("EKF2_RNG_A_HMAX"); } void @@ -829,8 +831,8 @@ MavlinkReceiver::handle_message_optical_flow_rad(mavlink_message_t *msg) device_id.devid_s.address = msg->sysid; d.timestamp = f.timestamp; - d.min_distance = _param_ekf2_min_rng.get(); - d.max_distance = _param_ekf2_rng_a_hmax.get(); + d.min_distance = _param_ekf2_min_rng; + d.max_distance = _param_ekf2_rng_a_hmax; d.current_distance = flow.distance; /* both are in m */ d.type = distance_sensor_s::MAV_DISTANCE_SENSOR_ULTRASOUND; d.device_id = device_id.devid; @@ -3448,6 +3450,14 @@ MavlinkReceiver::updateParams() if (_handle_sens_flow_rot != PARAM_INVALID) { param_get(_handle_sens_flow_rot, &_param_sens_flow_rot); } + + if (_handle_ekf2_min_rng != PARAM_INVALID) { + param_get(_handle_ekf2_min_rng, &_param_ekf2_min_rng); + } + + if (_handle_ekf2_rng_a_hmax != PARAM_INVALID) { + param_get(_handle_ekf2_rng_a_hmax, &_param_ekf2_rng_a_hmax); + } } void *MavlinkReceiver::start_trampoline(void *context) diff --git a/src/modules/mavlink/mavlink_receiver.h b/src/modules/mavlink/mavlink_receiver.h index d81c361d53..2a929ea594 100644 --- a/src/modules/mavlink/mavlink_receiver.h +++ b/src/modules/mavlink/mavlink_receiver.h @@ -394,18 +394,20 @@ private: param_t _handle_sens_flow_maxr{PARAM_INVALID}; param_t _handle_sens_flow_minhgt{PARAM_INVALID}; param_t _handle_sens_flow_rot{PARAM_INVALID}; + param_t _handle_ekf2_min_rng{PARAM_INVALID}; + param_t _handle_ekf2_rng_a_hmax{PARAM_INVALID}; float _param_sens_flow_maxhgt{-1.0f}; float _param_sens_flow_maxr{-1.0f}; float _param_sens_flow_minhgt{-1.0f}; int32_t _param_sens_flow_rot{0}; + float _param_ekf2_min_rng{NAN}; + float _param_ekf2_rng_a_hmax{NAN}; DEFINE_PARAMETERS( (ParamFloat) _param_bat_crit_thr, (ParamFloat) _param_bat_emergen_thr, - (ParamFloat) _param_bat_low_thr, - (ParamFloat) _param_ekf2_min_rng, - (ParamFloat) _param_ekf2_rng_a_hmax + (ParamFloat) _param_bat_low_thr ); // Disallow copy construction and move assignment.