Compare commits

...

3 Commits

Author SHA1 Message Date
Nick abb1c5b0c8 Merge branch 'main' into pr-warn-sdlog-ineffective 2026-03-12 11:08:23 +01:00
ttechnick fa42687082 optimization 3 2026-03-11 19:37:01 -07:00
ttechnick 3502205661 feat(logger): add warning for ineffective SDLOG params 2026-03-11 19:37:01 -07:00
2 changed files with 47 additions and 0 deletions
@@ -178,5 +178,45 @@ void SdCardChecks::checkAndReport(const Context &context, Report &reporter)
#endif /* CONFIG_MODULES_TASK_WATCHDOG */
#endif /* __PX4_NUTTX */
// Check if SDLOG parameters are set to non-default values while SD card logging is disabled
int32_t sdlog_backend = 0;
param_get(_param_sdlog_backend, &sdlog_backend);
const bool sdcard_logging_enabled = (sdlog_backend & 1) != 0;
if (!sdcard_logging_enabled) {
// Check if any SDLOG parameter differs from its default
const param_t sdlog_params[] = {_param_sdlog_mode, _param_sdlog_profile, _param_sdlog_mission, _param_sdlog_dirs_max};
bool sdlog_params_changed = false;
for (auto p : sdlog_params) {
int32_t val, def;
if (param_get(p, &val) == 0 && param_get_default_value(p, &def) == 0 && val != def) {
sdlog_params_changed = true;
break;
}
}
if (sdlog_params_changed) {
/* EVENT
* @description
* SD logging parameters (SDLOG_*) have been modified, but SD card logging
* is not enabled in <param>SDLOG_BACKEND</param>.
*
* <profile name="dev">
* These parameters will have no effect.
* </profile>
*/
reporter.healthFailure(NavModes::None, health_component_t::logging,
events::ID("check_sdlog_params_no_sdcard"),
events::Log::Warning, "SDLOG parameters ineffective without SD card logging");
if (reporter.mavlink_log_pub()) {
mavlink_log_warning(reporter.mavlink_log_pub(), "SDLOG parameters set but SD card logging disabled");
}
}
}
#endif /* PX4_STORAGEDIR */
}
@@ -55,6 +55,13 @@ private:
#endif
#endif
// SDLOG parameters are from logger module, access via param_find
param_t _param_sdlog_backend{param_find("SDLOG_BACKEND")};
param_t _param_sdlog_mode{param_find("SDLOG_MODE")};
param_t _param_sdlog_profile{param_find("SDLOG_PROFILE")};
param_t _param_sdlog_mission{param_find("SDLOG_MISSION")};
param_t _param_sdlog_dirs_max{param_find("SDLOG_DIRS_MAX")};
DEFINE_PARAMETERS_CUSTOM_PARENT(HealthAndArmingCheckBase,
(ParamInt<px4::params::COM_ARM_SDCARD>) _param_com_arm_sdcard,
(ParamBool<px4::params::COM_ARM_HFLT_CHK>) _param_com_arm_hardfault_check