@@ -978,7 +978,7 @@ void EKF2::VerifyParams()
978978void EKF2::initFusionControl ()
979979{
980980 _sens_en_param = param_find (" EKF2_SENS_EN" );
981- int32_t sens_en = 4095 ; // default: all enabled
981+ int32_t sens_en = 16383 ; // default: all enabled
982982
983983 if (_sens_en_param != PARAM_INVALID) {
984984 param_get (_sens_en_param, &sens_en);
@@ -1001,7 +1001,7 @@ void EKF2::initFusionControl()
10011001 }
10021002 };
10031003
1004- // bit layout: 0..1=GPS0..1 2=OF 3=EV 4..7=AGP0..3 8=BARO 9=RNG 10=DRAG 11=MAG 12=ASPD
1004+ // bit layout: 0..1=GPS0..1 2=OF 3=EV 4..7=AGP0..3 8=BARO 9=RNG 10=DRAG 11=MAG 12=ASPD 13=RNGBCN
10051005#if defined(CONFIG_EKF2_GNSS)
10061006 add (_fc.gps , 0 , vehicle_command_s::FUSION_SOURCE_GPS, -1 , _param_ekf2_gps_ctrl.handle ());
10071007 // TODO: gps[1] reserved — no param yet, add second GPS instance here when multi-GPS CTRL is implemented
@@ -1041,6 +1041,9 @@ void EKF2::initFusionControl()
10411041#if defined(CONFIG_EKF2_AIRSPEED)
10421042 add (_fc.aspd , 12 , vehicle_command_s::FUSION_SOURCE_ASPD, -1 , _param_ekf2_arsp_thr.handle ());
10431043#endif
1044+ #if defined(CONFIG_EKF2_RANGING_BEACON)
1045+ add (_fc.rngbcn , 13 , vehicle_command_s::FUSION_SOURCE_RNGBCN, -1 , _param_ekf2_rngbc_ctrl.handle ());
1046+ #endif
10441047}
10451048
10461049void EKF2::updateFusionIntended ()
@@ -2027,11 +2030,12 @@ void EKF2::PublishFusionControl(const hrt_abstime ×tamp)
20272030 msg.agp_intended [i] = _fc.agp [i].intended ;
20282031 }
20292032
2030- msg.baro_intended = _fc.baro .intended ;
2031- msg.rng_intended = _fc.rng .intended ;
2032- msg.drag_intended = _fc.drag .intended ;
2033- msg.mag_intended = _fc.mag .intended ;
2034- msg.aspd_intended = _fc.aspd .intended ;
2033+ msg.baro_intended = _fc.baro .intended ;
2034+ msg.rng_intended = _fc.rng .intended ;
2035+ msg.drag_intended = _fc.drag .intended ;
2036+ msg.mag_intended = _fc.mag .intended ;
2037+ msg.aspd_intended = _fc.aspd .intended ;
2038+ msg.rngbcn_intended = _fc.rngbcn .intended ;
20352039
20362040 const auto &cs = _ekf.control_status_flags ();
20372041 msg.gps_active = (cs.gnss_pos || cs.gps_hgt || cs.gnss_vel || cs.gnss_yaw ) ? 1u : 0u ; // TODO: per-instance active tracking
@@ -2041,7 +2045,8 @@ void EKF2::PublishFusionControl(const hrt_abstime ×tamp)
20412045 msg.rng_active = cs.rng_hgt ;
20422046 msg.drag_active = (_fc.drag .intended > 0 ) && cs.wind && cs.in_air && !cs.fake_pos ;
20432047 msg.mag_active = cs.mag ;
2044- msg.aspd_active = cs.fuse_aspd ;
2048+ msg.aspd_active = cs.fuse_aspd ;
2049+ // msg.rngbcn_active = cs.rngbcn_fusion; // waiting for RangeBeacon PR
20452050
20462051#if defined(CONFIG_EKF2_AUX_GLOBAL_POSITION)
20472052 msg.agp_active = _ekf.getAgpFusingBitmask ();
0 commit comments