From 12babb33cb210b75e080535800c6fe2586f58ddc Mon Sep 17 00:00:00 2001 From: Ramon Roche Date: Mon, 2 Mar 2026 09:22:48 -0800 Subject: [PATCH] boards: cuav_x25-super: migrate core_heater to new ModuleBase API The core_heater driver was written against the old CRTP ModuleBase pattern which was removed in ce3e62841fd. Replace with the descriptor-based API matching src/drivers/heater/. Signed-off-by: Ramon Roche --- boards/cuav/x25-super/core_heater/core_heater.cpp | 12 +++++++----- boards/cuav/x25-super/core_heater/core_heater.h | 3 ++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/boards/cuav/x25-super/core_heater/core_heater.cpp b/boards/cuav/x25-super/core_heater/core_heater.cpp index 89e0cc5696..0099f21d4f 100644 --- a/boards/cuav/x25-super/core_heater/core_heater.cpp +++ b/boards/cuav/x25-super/core_heater/core_heater.cpp @@ -47,6 +47,8 @@ # error "To use the heater driver, the board_config.h must define and initialize GPIO_CORE_HEATER_OUTPUT" # endif +ModuleBase::Descriptor Core_Heater::desc{task_spawn, custom_command, print_usage}; + Core_Heater::Core_Heater() : ModuleParams(nullptr), ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::lp_default) @@ -62,7 +64,7 @@ Core_Heater::~Core_Heater() int Core_Heater::custom_command(int argc, char *argv[]) { // Check if the driver is running. - if (!is_running()) { + if (!is_running(desc)) { PX4_INFO("not running"); return PX4_ERROR; } @@ -117,7 +119,7 @@ bool Core_Heater::initialize_topics() void Core_Heater::Run() { if (should_exit()) { - exit_and_cleanup(); + exit_and_cleanup(desc); return; } @@ -216,8 +218,8 @@ int Core_Heater::task_spawn(int argc, char *argv[]) return PX4_ERROR; } - _object.store(core_heater); - _task_id = task_id_is_work_queue; + desc.object.store(core_heater); + desc.task_id = task_id_is_work_queue; core_heater->start(); return 0; @@ -257,5 +259,5 @@ Background process running periodically on the LP work queue to regulate IMU tem extern "C" __EXPORT int core_heater_main(int argc, char *argv[]) { - return Core_Heater::main(argc, argv); + return ModuleBase::main(Core_Heater::desc, argc, argv); } diff --git a/boards/cuav/x25-super/core_heater/core_heater.h b/boards/cuav/x25-super/core_heater/core_heater.h index 942d80c1a9..af97b8770b 100644 --- a/boards/cuav/x25-super/core_heater/core_heater.h +++ b/boards/cuav/x25-super/core_heater/core_heater.h @@ -56,9 +56,10 @@ using namespace time_literals; #define CONTROLLER_PERIOD_DEFAULT 10000 #define TEMPERATURE_TARGET_THRESHOLD 2.5f -class Core_Heater : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem +class Core_Heater : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem { public: + static Descriptor desc; Core_Heater(); virtual ~Core_Heater();