From 29807a5e502fcde9810b1a9ac4b9709295f8a4e0 Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Wed, 6 Dec 2023 14:57:41 +0100 Subject: [PATCH] Replace CBRK_AIRSPD_CHK with SYS_HAS_NUM_ASPD Signed-off-by: Silvan Fuhrer --- ROMFS/px4fmu_common/init.d-posix/rcS | 1 - .../init.d/airframes/13013_deltaquad | 2 +- ROMFS/px4fmu_common/init.d/rc.fw_defaults | 2 ++ ROMFS/px4fmu_common/init.d/rc.rover_defaults | 3 --- ROMFS/px4fmu_common/init.d/rc.uuv_defaults | 3 --- ROMFS/px4fmu_common/init.d/rc.vtol_defaults | 2 ++ src/lib/circuit_breaker/circuit_breaker.h | 1 - src/lib/circuit_breaker/circuit_breaker_params.c | 15 --------------- src/lib/parameters/param_translation.cpp | 15 +++++++++++++++ src/lib/systemlib/system_params.c | 13 +++++++++++++ .../checks/airspeedCheck.cpp | 6 +++--- .../checks/airspeedCheck.hpp | 4 ++-- 12 files changed, 38 insertions(+), 29 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d-posix/rcS b/ROMFS/px4fmu_common/init.d-posix/rcS index 4421c3c389..dbd837d40b 100644 --- a/ROMFS/px4fmu_common/init.d-posix/rcS +++ b/ROMFS/px4fmu_common/init.d-posix/rcS @@ -153,7 +153,6 @@ fi param set-default BAT1_N_CELLS 4 -param set-default CBRK_AIRSPD_CHK 0 param set-default CBRK_SUPPLY_CHK 894281 # disable check, no CPU load reported on posix yet diff --git a/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad b/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad index bea4333607..a6d97aedc1 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad +++ b/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad @@ -28,7 +28,7 @@ param set-default BAT1_CAPACITY 23000 param set-default BAT1_N_CELLS 4 param set-default BAT1_R_INTERNAL 0.0025 -param set-default CBRK_AIRSPD_CHK 162128 +param set-default SYS_HAS_NUM_ASPD 0 param set-default CBRK_IO_SAFETY 22027 param set-default EKF2_GPS_POS_X -0.12 diff --git a/ROMFS/px4fmu_common/init.d/rc.fw_defaults b/ROMFS/px4fmu_common/init.d/rc.fw_defaults index 99e802456b..f63c1901b1 100644 --- a/ROMFS/px4fmu_common/init.d/rc.fw_defaults +++ b/ROMFS/px4fmu_common/init.d/rc.fw_defaults @@ -54,3 +54,5 @@ param set-default MIS_TKO_LAND_REQ 2 # FW takeoff acceleration can easily exceed ublox GPS 2G default. # param set-default GPS_UBX_DYNMODEL 8 + +param set-default SYS_HAS_NUM_ASPD 1 # by default require an airspeed sensor diff --git a/ROMFS/px4fmu_common/init.d/rc.rover_defaults b/ROMFS/px4fmu_common/init.d/rc.rover_defaults index c4cd9d35a3..2e03de6597 100644 --- a/ROMFS/px4fmu_common/init.d/rc.rover_defaults +++ b/ROMFS/px4fmu_common/init.d/rc.rover_defaults @@ -10,9 +10,6 @@ set VEHICLE_TYPE rover # MAV_TYPE_GROUND_ROVER 10 param set-default MAV_TYPE 10 -# Enable Airspeed check circuit breaker because Rovers will have no airspeed sensor -param set-default CBRK_AIRSPD_CHK 162128 - param set-default MIS_TAKEOFF_ALT 0.01 param set-default NAV_ACC_RAD 2 diff --git a/ROMFS/px4fmu_common/init.d/rc.uuv_defaults b/ROMFS/px4fmu_common/init.d/rc.uuv_defaults index 344cfff7cd..3398fac3f5 100644 --- a/ROMFS/px4fmu_common/init.d/rc.uuv_defaults +++ b/ROMFS/px4fmu_common/init.d/rc.uuv_defaults @@ -9,6 +9,3 @@ set VEHICLE_TYPE uuv # MAV_TYPE_SUBMARINE 12 param set-default MAV_TYPE 12 - -# UUV don't have an airspeed sensor, so disable checks around it -param set-default CBRK_AIRSPD_CHK 162128 diff --git a/ROMFS/px4fmu_common/init.d/rc.vtol_defaults b/ROMFS/px4fmu_common/init.d/rc.vtol_defaults index 2c273e9109..5e6d041221 100644 --- a/ROMFS/px4fmu_common/init.d/rc.vtol_defaults +++ b/ROMFS/px4fmu_common/init.d/rc.vtol_defaults @@ -42,4 +42,6 @@ param set-default MPC_MAN_Y_MAX 90 param set-default RTL_TYPE 1 +param set-default SYS_HAS_NUM_ASPD 1 # by default require an airspeed sensor + param set-default WV_EN 1 diff --git a/src/lib/circuit_breaker/circuit_breaker.h b/src/lib/circuit_breaker/circuit_breaker.h index 9487278bc8..dbc54edede 100644 --- a/src/lib/circuit_breaker/circuit_breaker.h +++ b/src/lib/circuit_breaker/circuit_breaker.h @@ -53,7 +53,6 @@ #define CBRK_BUZZER_KEY 782097 #define CBRK_SUPPLY_CHK_KEY 894281 #define CBRK_IO_SAFETY_KEY 22027 -#define CBRK_AIRSPD_CHK_KEY 162128 #define CBRK_FLIGHTTERM_KEY 121212 #define CBRK_USB_CHK_KEY 197848 #define CBRK_VTOLARMING_KEY 159753 diff --git a/src/lib/circuit_breaker/circuit_breaker_params.c b/src/lib/circuit_breaker/circuit_breaker_params.c index f33159943a..e71b4fd59b 100644 --- a/src/lib/circuit_breaker/circuit_breaker_params.c +++ b/src/lib/circuit_breaker/circuit_breaker_params.c @@ -69,21 +69,6 @@ PARAM_DEFINE_INT32(CBRK_SUPPLY_CHK, 0); */ PARAM_DEFINE_INT32(CBRK_IO_SAFETY, 22027); -/** - * Circuit breaker for airspeed sensor - * - * Setting this parameter to 162128 will disable the check for an airspeed sensor. - * The sensor driver will not be started and it cannot be calibrated. - * WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK - * - * @reboot_required true - * @min 0 - * @max 162128 - * @category Developer - * @group Circuit Breaker - */ -PARAM_DEFINE_INT32(CBRK_AIRSPD_CHK, 0); - /** * Circuit breaker for flight termination * diff --git a/src/lib/parameters/param_translation.cpp b/src/lib/parameters/param_translation.cpp index bd574475ec..4f83be01aa 100644 --- a/src/lib/parameters/param_translation.cpp +++ b/src/lib/parameters/param_translation.cpp @@ -58,5 +58,20 @@ bool param_modify_on_import(bson_node_t node) } } + // 2023-12-06: translate CBRK_AIRSPD_CHK-> SYS_HAS_NUM_ASPD + { + if (strcmp("CBRK_AIRSPD_CHK", node->name) == 0) { + if (node->i32 == 162128) { + node->i32 = 0; + + strcpy(node->name, "SYS_HAS_NUM_ASPD"); + PX4_INFO("copying %s -> %s", "CBRK_AIRSPD_CHK", "SYS_HAS_NUM_ASPD"); + + } + + return true; + } + } + return false; } diff --git a/src/lib/systemlib/system_params.c b/src/lib/systemlib/system_params.c index bf7a680990..1417cd37b4 100644 --- a/src/lib/systemlib/system_params.c +++ b/src/lib/systemlib/system_params.c @@ -216,6 +216,19 @@ PARAM_DEFINE_INT32(SYS_HAS_MAG, 1); */ PARAM_DEFINE_INT32(SYS_HAS_BARO, 1); +/** + * Control if the vehicle has an airspeed sensor + * + * Set this to 0 if the board has no airspeed sensor. + * If set to 0, the preflight checks will not check for the presence of an + * airspeed sensor. + * + * @group System + * @min 0 + * @max 1 + */ +PARAM_DEFINE_INT32(SYS_HAS_NUM_ASPD, 0); + /** * Number of distance sensors to check being available * diff --git a/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.cpp b/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.cpp index 090110624e..f766c6dd21 100644 --- a/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.cpp +++ b/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.cpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2019 PX4 Development Team. All rights reserved. + * Copyright (c) 2019-2023 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 @@ -43,7 +43,7 @@ AirspeedChecks::AirspeedChecks() void AirspeedChecks::checkAndReport(const Context &context, Report &reporter) { - if (circuit_breaker_enabled_by_val(_param_cbrk_airspd_chk.get(), CBRK_AIRSPD_CHK_KEY) || + if (_param_sys_has_num_aspd.get() <= 0 || (context.status().vehicle_type != vehicle_status_s::VEHICLE_TYPE_FIXED_WING && !context.status().is_vtol)) { return; } @@ -102,7 +102,7 @@ void AirspeedChecks::checkAndReport(const Context &context, Report &reporter) * @description * * Most likely the airspeed selector module is not running. - * This check can be configured via CBRK_AIRSPD_CHK parameter. + * This check can be configured via SYS_HAS_NUM_ASPD parameter. * */ reporter.healthFailure(NavModes::All, health_component_t::differential_pressure, diff --git a/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.hpp b/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.hpp index bbafa5dd9a..9b369c73f8 100644 --- a/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.hpp +++ b/src/modules/commander/HealthAndArmingChecks/checks/airspeedCheck.hpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2022 PX4 Development Team. All rights reserved. + * Copyright (c) 2022-2023 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 @@ -52,6 +52,6 @@ private: const param_t _param_fw_airspd_max_handle; DEFINE_PARAMETERS_CUSTOM_PARENT(HealthAndArmingCheckBase, - (ParamInt) _param_cbrk_airspd_chk + (ParamInt) _param_sys_has_num_aspd ) };