px4_main_t: fix method declaration throughout the code base

px4_main_t is defined as:
typedef int (*px4_main_t)(int argc, char *argv[]);
which matches with the definition in NuttX, given to task_create
This commit is contained in:
Beat Küng
2018-05-09 07:59:46 +02:00
parent 9772380779
commit 13ab5ed0d0
16 changed files with 43 additions and 31 deletions
@@ -122,7 +122,7 @@ private:
unsigned _tail; unsigned _tail;
uint8_t _buf[BUF_LEN]; uint8_t _buf[BUF_LEN];
static void task_main_trampoline(int argc, char *argv[]); static int task_main_trampoline(int argc, char *argv[]);
void task_main(); void task_main();
bool read_and_parse(uint8_t *buf, int len, float *range); bool read_and_parse(uint8_t *buf, int len, float *range);
@@ -299,10 +299,11 @@ Radar::init()
return ret; return ret;
} }
void int
Radar::task_main_trampoline(int argc, char *argv[]) Radar::task_main_trampoline(int argc, char *argv[])
{ {
radar::g_dev->task_main(); radar::g_dev->task_main();
return 0;
} }
int int
+3 -2
View File
@@ -134,7 +134,7 @@ public:
/** /**
* task spawn trampoline for the secondary GPS * task spawn trampoline for the secondary GPS
*/ */
static void run_trampoline_secondary(int argc, char *argv[]); static int run_trampoline_secondary(int argc, char *argv[]);
/** @see ModuleBase::run() */ /** @see ModuleBase::run() */
void run() override; void run() override;
@@ -997,7 +997,7 @@ int GPS::task_spawn(int argc, char *argv[], Instance instance)
return 0; return 0;
} }
void GPS::run_trampoline_secondary(int argc, char *argv[]) int GPS::run_trampoline_secondary(int argc, char *argv[])
{ {
#ifdef __PX4_NUTTX #ifdef __PX4_NUTTX
@@ -1014,6 +1014,7 @@ void GPS::run_trampoline_secondary(int argc, char *argv[])
_secondary_instance = nullptr; _secondary_instance = nullptr;
delete gps; delete gps;
} }
return 0;
} }
GPS *GPS::instantiate(int argc, char *argv[]) GPS *GPS::instantiate(int argc, char *argv[])
{ {
+3 -2
View File
@@ -158,7 +158,7 @@ private:
/** /**
* Shim for calling task_main from task_create. * Shim for calling task_main from task_create.
*/ */
static void task_main_trampoline(int argc, char *argv[]); static int task_main_trampoline(int argc, char *argv[]);
}; };
namespace bottle_drop namespace bottle_drop
@@ -868,10 +868,11 @@ BottleDrop::answer_command(struct vehicle_command_s *cmd, unsigned result)
} }
} }
void int
BottleDrop::task_main_trampoline(int argc, char *argv[]) BottleDrop::task_main_trampoline(int argc, char *argv[])
{ {
bottle_drop::g_bottle_drop->task_main(); bottle_drop::g_bottle_drop->task_main();
return 0;
} }
static void usage() static void usage()
@@ -91,7 +91,7 @@ public:
*/ */
int start(); int start();
static void task_main_trampoline(int argc, char *argv[]); static int task_main_trampoline(int argc, char *argv[]);
void task_main(); void task_main();
@@ -243,9 +243,10 @@ int AttitudeEstimatorQ::start()
return OK; return OK;
} }
void AttitudeEstimatorQ::task_main_trampoline(int argc, char *argv[]) int AttitudeEstimatorQ::task_main_trampoline(int argc, char *argv[])
{ {
attitude_estimator_q::instance->task_main(); attitude_estimator_q::instance->task_main();
return 0;
} }
void AttitudeEstimatorQ::task_main() void AttitudeEstimatorQ::task_main()
@@ -83,7 +83,7 @@ public:
*/ */
int start(); int start();
static void do_temperature_calibration(int argc, char *argv[]); static int do_temperature_calibration(int argc, char *argv[]);
void task_main(); void task_main();
@@ -320,9 +320,10 @@ void TemperatureCalibration::task_main()
PX4_INFO("Exiting temperature calibration task"); PX4_INFO("Exiting temperature calibration task");
} }
void TemperatureCalibration::do_temperature_calibration(int argc, char *argv[]) int TemperatureCalibration::do_temperature_calibration(int argc, char *argv[])
{ {
temperature_calibration::instance->task_main(); temperature_calibration::instance->task_main();
return 0;
} }
int TemperatureCalibration::start() int TemperatureCalibration::start()
@@ -174,10 +174,11 @@ GroundRoverAttitudeControl::battery_status_poll()
} }
} }
void int
GroundRoverAttitudeControl::task_main_trampoline(int argc, char *argv[]) GroundRoverAttitudeControl::task_main_trampoline(int argc, char *argv[])
{ {
att_gnd_control::g_control->task_main(); att_gnd_control::g_control->task_main();
return 0;
} }
void void
@@ -136,7 +136,7 @@ private:
void vehicle_attitude_setpoint_poll(); void vehicle_attitude_setpoint_poll();
void battery_status_poll(); void battery_status_poll();
static void task_main_trampoline(int argc, char *argv[]); static int task_main_trampoline(int argc, char *argv[]);
void task_main(); void task_main();
}; };
@@ -479,27 +479,27 @@ GroundRoverPositionControl::task_main()
_control_task = -1; _control_task = -1;
} }
void int
GroundRoverPositionControl::task_main_trampoline(int argc, char *argv[]) GroundRoverPositionControl::task_main_trampoline(int argc, char *argv[])
{ {
gnd_control::g_control = new GroundRoverPositionControl(); gnd_control::g_control = new GroundRoverPositionControl();
if (gnd_control::g_control == nullptr) { if (gnd_control::g_control == nullptr) {
warnx("OUT OF MEM"); warnx("OUT OF MEM");
return; return -1;
} }
/* only returns on exit */ /* only returns on exit */
gnd_control::g_control->task_main(); gnd_control::g_control->task_main();
delete gnd_control::g_control; delete gnd_control::g_control;
gnd_control::g_control = nullptr; gnd_control::g_control = nullptr;
return 0;
} }
int int
GroundRoverPositionControl::start() GroundRoverPositionControl::start()
{ {
ASSERT(_control_task == -1); ASSERT(_control_task == -1);
warn("Starting by marco");
/* start the task */ /* start the task */
_control_task = px4_task_spawn_cmd("gnd_pos_ctrl", _control_task = px4_task_spawn_cmd("gnd_pos_ctrl",
@@ -508,7 +508,6 @@ GroundRoverPositionControl::start()
1700, 1700,
(px4_main_t)&GroundRoverPositionControl::task_main_trampoline, (px4_main_t)&GroundRoverPositionControl::task_main_trampoline,
nullptr); nullptr);
warn("done");
if (_control_task < 0) { if (_control_task < 0) {
warn("task start failed"); warn("task start failed");
@@ -202,7 +202,7 @@ private:
/** /**
* Shim for calling task_main from task_create. * Shim for calling task_main from task_create.
*/ */
static void task_main_trampoline(int argc, char *argv[]); static int task_main_trampoline(int argc, char *argv[]);
/** /**
* Main sensor collection task. * Main sensor collection task.
@@ -412,7 +412,7 @@ private:
/** /**
* Shim for calling task_main from task_create. * Shim for calling task_main from task_create.
*/ */
static void task_main_trampoline(int argc, char *argv[]); static int task_main_trampoline(int argc, char *argv[]);
/** /**
* Main sensor collection task. * Main sensor collection task.
@@ -768,10 +768,11 @@ MulticopterPositionControl::throttle_curve(float ctl, float ctr)
} }
} }
void int
MulticopterPositionControl::task_main_trampoline(int argc, char *argv[]) MulticopterPositionControl::task_main_trampoline(int argc, char *argv[])
{ {
pos_control::g_control->task_main(); pos_control::g_control->task_main();
return 0;
} }
void void
+4 -3
View File
@@ -136,7 +136,7 @@ private:
/** /**
* Trampoline to the worker task * Trampoline to the worker task
*/ */
static void task_main_trampoline(void *arg); static int task_main_trampoline(int argc, char *argv[]);
/** /**
@@ -273,10 +273,11 @@ GPSSIM::devIOCTL(unsigned long cmd, unsigned long arg)
return ret; return ret;
} }
void int
GPSSIM::task_main_trampoline(void *arg) GPSSIM::task_main_trampoline(int argc, char *argv[])
{ {
g_dev->task_main(); g_dev->task_main();
return 0;
} }
int int
@@ -401,7 +401,7 @@ int uORBTest::UnitTest::test_multi()
int uORBTest::UnitTest::pub_test_multi2_entry(char *const argv[]) int uORBTest::UnitTest::pub_test_multi2_entry(int argc, char *argv[])
{ {
uORBTest::UnitTest &t = uORBTest::UnitTest::instance(); uORBTest::UnitTest &t = uORBTest::UnitTest::instance();
return t.pub_test_multi2_main(); return t.pub_test_multi2_main();
@@ -707,7 +707,7 @@ int uORBTest::UnitTest::test_queue()
} }
int uORBTest::UnitTest::pub_test_queue_entry(char *const argv[]) int uORBTest::UnitTest::pub_test_queue_entry(int argc, char *argv[])
{ {
uORBTest::UnitTest &t = uORBTest::UnitTest::instance(); uORBTest::UnitTest &t = uORBTest::UnitTest::instance();
return t.pub_test_queue_main(); return t.pub_test_queue_main();
@@ -842,7 +842,7 @@ int uORBTest::UnitTest::test_note(const char *fmt, ...)
return OK; return OK;
} }
int uORBTest::UnitTest::pubsubtest_threadEntry(char *const argv[]) int uORBTest::UnitTest::pubsubtest_threadEntry(int argc, char *argv[])
{ {
uORBTest::UnitTest &t = uORBTest::UnitTest::instance(); uORBTest::UnitTest &t = uORBTest::UnitTest::instance();
return t.pubsublatency_main(); return t.pubsublatency_main();
@@ -86,10 +86,10 @@ private:
// Disallow copy // Disallow copy
UnitTest(const uORBTest::UnitTest & /*unused*/) = delete; UnitTest(const uORBTest::UnitTest & /*unused*/) = delete;
static int pubsubtest_threadEntry(char *const argv[]); static int pubsubtest_threadEntry(int argc, char *argv[]);
int pubsublatency_main(); int pubsublatency_main();
static int pub_test_multi2_entry(char *const argv[]); static int pub_test_multi2_entry(int argc, char *argv[]);
int pub_test_multi2_main(); int pub_test_multi2_main();
volatile bool _thread_should_exit; volatile bool _thread_should_exit;
@@ -111,7 +111,7 @@ private:
/* queuing tests */ /* queuing tests */
int test_queue(); int test_queue();
static int pub_test_queue_entry(char *const argv[]); static int pub_test_queue_entry(int argc, char *argv[]);
int pub_test_queue_main(); int pub_test_queue_main();
int test_queue_poll_notify(); int test_queue_poll_notify();
volatile int _num_messages_sent = 0; volatile int _num_messages_sent = 0;
@@ -572,10 +572,11 @@ void VtolAttitudeControl::fill_fw_att_rates_sp()
} }
} }
void int
VtolAttitudeControl::task_main_trampoline(int argc, char *argv[]) VtolAttitudeControl::task_main_trampoline(int argc, char *argv[])
{ {
VTOL_att_control::g_control->task_main(); VTOL_att_control::g_control->task_main();
return 0;
} }
void VtolAttitudeControl::task_main() void VtolAttitudeControl::task_main()
@@ -214,7 +214,7 @@ private:
//*****************Member functions*********************************************************************** //*****************Member functions***********************************************************************
void task_main(); //main task void task_main(); //main task
static void task_main_trampoline(int argc, char *argv[]); //Shim for calling task_main from task_create. static int task_main_trampoline(int argc, char *argv[]); //Shim for calling task_main from task_create.
void land_detected_poll(); void land_detected_poll();
void tecs_status_poll(); void tecs_status_poll();
+5 -1
View File
@@ -149,8 +149,9 @@ public:
* @param argc start argument(s) * @param argc start argument(s)
* @param argv start argument(s) * @param argv start argument(s)
*/ */
static void run_trampoline(int argc, char *argv[]) static int run_trampoline(int argc, char *argv[])
{ {
int ret = 0;
#ifdef __PX4_NUTTX #ifdef __PX4_NUTTX
// on NuttX task_create() adds the task name as first argument // on NuttX task_create() adds the task name as first argument
@@ -166,9 +167,12 @@ public:
} else { } else {
PX4_ERR("failed to instantiate object"); PX4_ERR("failed to instantiate object");
ret = -1;
} }
exit_and_cleanup(); exit_and_cleanup();
return ret;
} }
/** /**