mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-03 09:20:35 +08:00
module_base: remove CRTP template pattern to reduce flash bloat (#26476)
* module_base: claude rewrite to remove CRTP bloat * module_base: apply to all drivers/modules * format * fix build errors * fix missing syntax * remove reference to module.h in files that need module_base.h * remove old ModuleBase<T> * add module_base.cpp to px4_protected_layers.cmake * fix IridiumSBD can_stop() * fix IridiumSBD.cpp * clang-tidy: downcast static cast * get_instance() template accessor, revert clang-tidy global * rename module_base.h to module.h * revert changes in zenoh/Kconfig.topics
This commit is contained in:
@@ -33,6 +33,8 @@
|
||||
|
||||
#include "BatterySimulator.hpp"
|
||||
|
||||
ModuleBase::Descriptor BatterySimulator::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
BatterySimulator::BatterySimulator() :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default),
|
||||
@@ -55,7 +57,7 @@ void BatterySimulator::Run()
|
||||
{
|
||||
if (should_exit()) {
|
||||
ScheduleClear();
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -175,8 +177,8 @@ int BatterySimulator::task_spawn(int argc, char *argv[])
|
||||
BatterySimulator *instance = new BatterySimulator();
|
||||
|
||||
if (instance) {
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init()) {
|
||||
return PX4_OK;
|
||||
@@ -187,8 +189,8 @@ int BatterySimulator::task_spawn(int argc, char *argv[])
|
||||
}
|
||||
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
|
||||
return PX4_ERROR;
|
||||
}
|
||||
@@ -220,5 +222,5 @@ int BatterySimulator::print_usage(const char *reason)
|
||||
|
||||
extern "C" __EXPORT int battery_simulator_main(int argc, char *argv[])
|
||||
{
|
||||
return BatterySimulator::main(argc, argv);
|
||||
return ModuleBase::main(BatterySimulator::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -50,9 +50,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class BatterySimulator : public ModuleBase<BatterySimulator>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
class BatterySimulator : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
BatterySimulator();
|
||||
~BatterySimulator() override;
|
||||
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
ModuleBase::Descriptor GZBridge::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
GZBridge::GZBridge(const std::string &world, const std::string &model_name) :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::rate_ctrl),
|
||||
@@ -170,7 +172,7 @@ void GZBridge::Run()
|
||||
_mixing_interface_wheel.stop();
|
||||
_gimbal.stop();
|
||||
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -983,13 +985,13 @@ int GZBridge::task_spawn(int argc, char *argv[])
|
||||
return PX4_ERROR;
|
||||
}
|
||||
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init() != PX4_OK) {
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
return PX4_ERROR;
|
||||
}
|
||||
|
||||
@@ -1038,5 +1040,5 @@ int GZBridge::print_usage(const char *reason)
|
||||
|
||||
extern "C" __EXPORT int gz_bridge_main(int argc, char *argv[])
|
||||
{
|
||||
return GZBridge::main(argc, argv);
|
||||
return ModuleBase::main(GZBridge::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -84,9 +84,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class GZBridge : public ModuleBase<GZBridge>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
class GZBridge : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
GZBridge(const std::string &world, const std::string &model_name);
|
||||
~GZBridge() override;
|
||||
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
|
||||
#include <px4_platform_common/sem.hpp>
|
||||
|
||||
ModuleBase::Descriptor PWMSim::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
PWMSim::PWMSim(bool hil_mode_enabled) :
|
||||
OutputModuleInterface(MODULE_NAME, px4::wq_configurations::hp_default)
|
||||
{
|
||||
@@ -103,7 +105,7 @@ void PWMSim::Run()
|
||||
ScheduleClear();
|
||||
_mixing_output.unregister();
|
||||
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -146,8 +148,8 @@ int PWMSim::task_spawn(int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
instance->ScheduleNow();
|
||||
return 0;
|
||||
}
|
||||
@@ -195,5 +197,5 @@ It is used in SITL and HITL.
|
||||
|
||||
extern "C" __EXPORT int pwm_out_sim_main(int argc, char *argv[])
|
||||
{
|
||||
return PWMSim::main(argc, argv);
|
||||
return ModuleBase::main(PWMSim::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -52,9 +52,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class PWMSim : public ModuleBase<PWMSim>, public OutputModuleInterface
|
||||
class PWMSim : public ModuleBase, public OutputModuleInterface
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
PWMSim(bool hil_mode_enabled);
|
||||
~PWMSim() override;
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
ModuleBase::Descriptor SensorAgpSim::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
SensorAgpSim::SensorAgpSim() :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default)
|
||||
@@ -87,7 +89,7 @@ void SensorAgpSim::Run()
|
||||
{
|
||||
if (should_exit()) {
|
||||
ScheduleClear();
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -153,8 +155,8 @@ int SensorAgpSim::task_spawn(int argc, char *argv[])
|
||||
SensorAgpSim *instance = new SensorAgpSim();
|
||||
|
||||
if (instance) {
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init()) {
|
||||
return PX4_OK;
|
||||
@@ -165,8 +167,8 @@ int SensorAgpSim::task_spawn(int argc, char *argv[])
|
||||
}
|
||||
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
|
||||
return PX4_ERROR;
|
||||
}
|
||||
@@ -198,5 +200,5 @@ Module to simulate auxiliary global position measurements with optional failure
|
||||
|
||||
extern "C" __EXPORT int sensor_agp_sim_main(int argc, char *argv[])
|
||||
{
|
||||
return SensorAgpSim::main(argc, argv);
|
||||
return ModuleBase::main(SensorAgpSim::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -47,9 +47,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class SensorAgpSim : public ModuleBase<SensorAgpSim>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
class SensorAgpSim : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
SensorAgpSim();
|
||||
~SensorAgpSim() override;
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
ModuleBase::Descriptor SensorAirspeedSim::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
SensorAirspeedSim::SensorAirspeedSim() :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default)
|
||||
@@ -91,7 +93,7 @@ void SensorAirspeedSim::Run()
|
||||
{
|
||||
if (should_exit()) {
|
||||
ScheduleClear();
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -159,8 +161,8 @@ int SensorAirspeedSim::task_spawn(int argc, char *argv[])
|
||||
SensorAirspeedSim *instance = new SensorAirspeedSim();
|
||||
|
||||
if (instance) {
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init()) {
|
||||
return PX4_OK;
|
||||
@@ -171,8 +173,8 @@ int SensorAirspeedSim::task_spawn(int argc, char *argv[])
|
||||
}
|
||||
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
|
||||
return PX4_ERROR;
|
||||
}
|
||||
@@ -204,5 +206,5 @@ int SensorAirspeedSim::print_usage(const char *reason)
|
||||
|
||||
extern "C" __EXPORT int sensor_airspeed_sim_main(int argc, char *argv[])
|
||||
{
|
||||
return SensorAirspeedSim::main(argc, argv);
|
||||
return ModuleBase::main(SensorAirspeedSim::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -55,9 +55,11 @@ static constexpr float PRESSURE_MSL = 101325.0; // pressure at MSL [Pa]
|
||||
static constexpr float LAPSE_RATE = 0.0065; // reduction in temperature with altitude for troposphere [K/m]
|
||||
static constexpr float AIR_DENSITY_MSL = 1.225; // air density at MSL [kg/m^3]
|
||||
|
||||
class SensorAirspeedSim : public ModuleBase<SensorAirspeedSim>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
class SensorAirspeedSim : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
SensorAirspeedSim();
|
||||
~SensorAirspeedSim() override;
|
||||
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
ModuleBase::Descriptor SensorBaroSim::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
SensorBaroSim::SensorBaroSim() :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default)
|
||||
@@ -90,7 +92,7 @@ void SensorBaroSim::Run()
|
||||
{
|
||||
if (should_exit()) {
|
||||
ScheduleClear();
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -183,8 +185,8 @@ int SensorBaroSim::task_spawn(int argc, char *argv[])
|
||||
SensorBaroSim *instance = new SensorBaroSim();
|
||||
|
||||
if (instance) {
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init()) {
|
||||
return PX4_OK;
|
||||
@@ -195,8 +197,8 @@ int SensorBaroSim::task_spawn(int argc, char *argv[])
|
||||
}
|
||||
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
|
||||
return PX4_ERROR;
|
||||
}
|
||||
@@ -228,5 +230,5 @@ int SensorBaroSim::print_usage(const char *reason)
|
||||
|
||||
extern "C" __EXPORT int sensor_baro_sim_main(int argc, char *argv[])
|
||||
{
|
||||
return SensorBaroSim::main(argc, argv);
|
||||
return ModuleBase::main(SensorBaroSim::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -48,9 +48,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class SensorBaroSim : public ModuleBase<SensorBaroSim>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
class SensorBaroSim : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
SensorBaroSim();
|
||||
~SensorBaroSim() override;
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
ModuleBase::Descriptor SensorGpsSim::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
SensorGpsSim::SensorGpsSim() :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default)
|
||||
@@ -91,7 +93,7 @@ void SensorGpsSim::Run()
|
||||
{
|
||||
if (should_exit()) {
|
||||
ScheduleClear();
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -187,8 +189,8 @@ int SensorGpsSim::task_spawn(int argc, char *argv[])
|
||||
SensorGpsSim *instance = new SensorGpsSim();
|
||||
|
||||
if (instance) {
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init()) {
|
||||
return PX4_OK;
|
||||
@@ -199,8 +201,8 @@ int SensorGpsSim::task_spawn(int argc, char *argv[])
|
||||
}
|
||||
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
|
||||
return PX4_ERROR;
|
||||
}
|
||||
@@ -232,5 +234,5 @@ int SensorGpsSim::print_usage(const char *reason)
|
||||
|
||||
extern "C" __EXPORT int sensor_gps_sim_main(int argc, char *argv[])
|
||||
{
|
||||
return SensorGpsSim::main(argc, argv);
|
||||
return ModuleBase::main(SensorGpsSim::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -48,9 +48,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class SensorGpsSim : public ModuleBase<SensorGpsSim>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
class SensorGpsSim : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
SensorGpsSim();
|
||||
~SensorGpsSim() override;
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
ModuleBase::Descriptor SensorMagSim::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
SensorMagSim::SensorMagSim() :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default)
|
||||
@@ -91,7 +93,7 @@ void SensorMagSim::Run()
|
||||
{
|
||||
if (should_exit()) {
|
||||
ScheduleClear();
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -147,8 +149,8 @@ int SensorMagSim::task_spawn(int argc, char *argv[])
|
||||
SensorMagSim *instance = new SensorMagSim();
|
||||
|
||||
if (instance) {
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init()) {
|
||||
return PX4_OK;
|
||||
@@ -159,8 +161,8 @@ int SensorMagSim::task_spawn(int argc, char *argv[])
|
||||
}
|
||||
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
|
||||
return PX4_ERROR;
|
||||
}
|
||||
@@ -192,5 +194,5 @@ int SensorMagSim::print_usage(const char *reason)
|
||||
|
||||
extern "C" __EXPORT int sensor_mag_sim_main(int argc, char *argv[])
|
||||
{
|
||||
return SensorMagSim::main(argc, argv);
|
||||
return ModuleBase::main(SensorMagSim::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -48,9 +48,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class SensorMagSim : public ModuleBase<SensorMagSim>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
class SensorMagSim : public ModuleBase, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
SensorMagSim();
|
||||
~SensorMagSim() override;
|
||||
|
||||
|
||||
@@ -53,6 +53,8 @@ using namespace math;
|
||||
using namespace matrix;
|
||||
using namespace time_literals;
|
||||
|
||||
ModuleBase::Descriptor Sih::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
Sih::Sih() :
|
||||
ModuleParams(nullptr)
|
||||
{}
|
||||
@@ -84,7 +86,7 @@ void Sih::run()
|
||||
#else
|
||||
realtime_loop();
|
||||
#endif
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
}
|
||||
|
||||
#if defined(ENABLE_LOCKSTEP_SCHEDULER)
|
||||
@@ -845,17 +847,24 @@ int Sih::print_status()
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Sih::run_trampoline(int argc, char *argv[])
|
||||
{
|
||||
return ModuleBase::run_trampoline_impl(desc, [](int ac, char *av[]) -> ModuleBase * {
|
||||
return Sih::instantiate(ac, av);
|
||||
}, argc, argv);
|
||||
}
|
||||
|
||||
int Sih::task_spawn(int argc, char *argv[])
|
||||
{
|
||||
_task_id = px4_task_spawn_cmd("sih",
|
||||
SCHED_DEFAULT,
|
||||
SCHED_PRIORITY_MAX,
|
||||
1560,
|
||||
(px4_main_t)&run_trampoline,
|
||||
(char *const *)argv);
|
||||
desc.task_id = px4_task_spawn_cmd("sih",
|
||||
SCHED_DEFAULT,
|
||||
SCHED_PRIORITY_MAX,
|
||||
1560,
|
||||
(px4_main_t)&run_trampoline,
|
||||
(char *const *)argv);
|
||||
|
||||
if (_task_id < 0) {
|
||||
_task_id = -1;
|
||||
if (desc.task_id < 0) {
|
||||
desc.task_id = -1;
|
||||
return -errno;
|
||||
}
|
||||
|
||||
@@ -914,5 +923,5 @@ Most of the variables are declared global in the .hpp file to avoid stack overfl
|
||||
|
||||
extern "C" __EXPORT int simulator_sih_main(int argc, char *argv[])
|
||||
{
|
||||
return Sih::main(argc, argv);
|
||||
return ModuleBase::main(Sih::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -86,15 +86,20 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class Sih : public ModuleBase<Sih>, public ModuleParams
|
||||
class Sih : public ModuleBase, public ModuleParams
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
Sih();
|
||||
virtual ~Sih();
|
||||
|
||||
/** @see ModuleBase */
|
||||
static int task_spawn(int argc, char *argv[]);
|
||||
|
||||
/** @see ModuleBase */
|
||||
static int run_trampoline(int argc, char *argv[]);
|
||||
|
||||
/** @see ModuleBase */
|
||||
static Sih *instantiate(int argc, char *argv[]);
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include "SystemPowerSimulator.hpp"
|
||||
|
||||
ModuleBase::Descriptor SystemPowerSimulator::desc{task_spawn, custom_command, print_usage};
|
||||
|
||||
SystemPowerSimulator::SystemPowerSimulator() :
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default)
|
||||
{
|
||||
@@ -53,7 +55,7 @@ void SystemPowerSimulator::Run()
|
||||
{
|
||||
if (should_exit()) {
|
||||
ScheduleClear();
|
||||
exit_and_cleanup();
|
||||
exit_and_cleanup(desc);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -81,8 +83,8 @@ int SystemPowerSimulator::task_spawn(int argc, char *argv[])
|
||||
SystemPowerSimulator *instance = new SystemPowerSimulator();
|
||||
|
||||
if (instance) {
|
||||
_object.store(instance);
|
||||
_task_id = task_id_is_work_queue;
|
||||
desc.object.store(instance);
|
||||
desc.task_id = task_id_is_work_queue;
|
||||
|
||||
if (instance->init()) {
|
||||
return PX4_OK;
|
||||
@@ -93,8 +95,8 @@ int SystemPowerSimulator::task_spawn(int argc, char *argv[])
|
||||
}
|
||||
|
||||
delete instance;
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
desc.object.store(nullptr);
|
||||
desc.task_id = -1;
|
||||
|
||||
return PX4_ERROR;
|
||||
}
|
||||
@@ -127,5 +129,5 @@ int SystemPowerSimulator::print_usage(const char *reason)
|
||||
|
||||
extern "C" __EXPORT int system_power_simulator_main(int argc, char *argv[])
|
||||
{
|
||||
return SystemPowerSimulator::main(argc, argv);
|
||||
return ModuleBase::main(SystemPowerSimulator::desc, argc, argv);
|
||||
}
|
||||
|
||||
@@ -44,9 +44,11 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
class SystemPowerSimulator : public ModuleBase<SystemPowerSimulator>, public px4::ScheduledWorkItem
|
||||
class SystemPowerSimulator : public ModuleBase, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
static Descriptor desc;
|
||||
|
||||
SystemPowerSimulator();
|
||||
~SystemPowerSimulator() override;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user