mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-15 17:23:33 +08:00
VOXL2 board support updates (#21426)
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include <px4_platform_common/getopt.h>
|
||||
|
||||
#include "modal_io.hpp"
|
||||
@@ -255,7 +257,9 @@ int ModalIo::task_spawn(int argc, char *argv[])
|
||||
PX4_ERR("alloc failed");
|
||||
}
|
||||
|
||||
delete instance;
|
||||
// This will cause a crash on SLPI DSP
|
||||
// delete instance;
|
||||
|
||||
_object.store(nullptr);
|
||||
_task_id = -1;
|
||||
|
||||
@@ -322,7 +326,7 @@ int ModalIo::parse_response(uint8_t *buf, uint8_t len, bool print_feedback)
|
||||
uint32_t voltage = fb.voltage;
|
||||
int32_t current = fb.current * 8;
|
||||
int32_t temperature = fb.temperature / 100;
|
||||
PX4_INFO("[%lld] ID_RAW=%d ID=%d, RPM=%5d, PWR=%3d%%, V=%5dmV, I=%+5dmA, T=%+3dC", tnow, (int)id, motor_idx + 1,
|
||||
PX4_INFO("[%" PRId64 "] ID_RAW=%d ID=%d, RPM=%5d, PWR=%3d%%, V=%5dmV, I=%+5dmA, T=%+3dC", tnow, (int)id, motor_idx + 1,
|
||||
(int)rpm, (int)power, (int)voltage, (int)current, (int)temperature);
|
||||
}
|
||||
|
||||
@@ -1426,21 +1430,21 @@ int ModalIo::print_status()
|
||||
|
||||
PX4_INFO("");
|
||||
|
||||
PX4_INFO("Params: MODAL_IO_CONFIG: %li", _parameters.config);
|
||||
PX4_INFO("Params: MODAL_IO_BAUD: %li", _parameters.baud_rate);
|
||||
PX4_INFO("Params: MODAL_IO_CONFIG: %" PRId32, _parameters.config);
|
||||
PX4_INFO("Params: MODAL_IO_BAUD: %" PRId32, _parameters.baud_rate);
|
||||
|
||||
PX4_INFO("Params: MODAL_IO_FUNC1: %li", _parameters.function_map[0]);
|
||||
PX4_INFO("Params: MODAL_IO_FUNC2: %li", _parameters.function_map[1]);
|
||||
PX4_INFO("Params: MODAL_IO_FUNC3: %li", _parameters.function_map[2]);
|
||||
PX4_INFO("Params: MODAL_IO_FUNC4: %li", _parameters.function_map[3]);
|
||||
PX4_INFO("Params: MODAL_IO_FUNC1: %" PRId32, _parameters.function_map[0]);
|
||||
PX4_INFO("Params: MODAL_IO_FUNC2: %" PRId32, _parameters.function_map[1]);
|
||||
PX4_INFO("Params: MODAL_IO_FUNC3: %" PRId32, _parameters.function_map[2]);
|
||||
PX4_INFO("Params: MODAL_IO_FUNC4: %" PRId32, _parameters.function_map[3]);
|
||||
|
||||
PX4_INFO("Params: MODAL_IO_SDIR1: %li", _parameters.direction_map[0]);
|
||||
PX4_INFO("Params: MODAL_IO_SDIR2: %li", _parameters.direction_map[1]);
|
||||
PX4_INFO("Params: MODAL_IO_SDIR3: %li", _parameters.direction_map[2]);
|
||||
PX4_INFO("Params: MODAL_IO_SDIR4: %li", _parameters.direction_map[3]);
|
||||
PX4_INFO("Params: MODAL_IO_SDIR1: %" PRId32, _parameters.direction_map[0]);
|
||||
PX4_INFO("Params: MODAL_IO_SDIR2: %" PRId32, _parameters.direction_map[1]);
|
||||
PX4_INFO("Params: MODAL_IO_SDIR3: %" PRId32, _parameters.direction_map[2]);
|
||||
PX4_INFO("Params: MODAL_IO_SDIR4: %" PRId32, _parameters.direction_map[3]);
|
||||
|
||||
PX4_INFO("Params: MODAL_IO_RPM_MIN: %li", _parameters.rpm_min);
|
||||
PX4_INFO("Params: MODAL_IO_RPM_MAX: %li", _parameters.rpm_max);
|
||||
PX4_INFO("Params: MODAL_IO_RPM_MIN: %" PRId32, _parameters.rpm_min);
|
||||
PX4_INFO("Params: MODAL_IO_RPM_MAX: %" PRId32, _parameters.rpm_max);
|
||||
|
||||
PX4_INFO("");
|
||||
|
||||
|
||||
@@ -75,15 +75,13 @@ void WorkerThread::startTask(Request request)
|
||||
pthread_attr_init(&low_prio_attr);
|
||||
pthread_attr_setstacksize(&low_prio_attr, PX4_STACK_ADJUSTED(4804));
|
||||
|
||||
#ifndef __PX4_QURT
|
||||
// This is not supported by QURT (yet).
|
||||
struct sched_param param;
|
||||
pthread_attr_getschedparam(&low_prio_attr, ¶m);
|
||||
|
||||
/* low priority */
|
||||
param.sched_priority = SCHED_PRIORITY_DEFAULT - 50;
|
||||
pthread_attr_setschedparam(&low_prio_attr, ¶m);
|
||||
#endif
|
||||
|
||||
int ret = pthread_create(&_thread_handle, &low_prio_attr, &threadEntryTrampoline, this);
|
||||
pthread_attr_destroy(&low_prio_attr);
|
||||
|
||||
|
||||
@@ -35,11 +35,9 @@
|
||||
#include "uORBAppsProtobufChannel.hpp"
|
||||
#include "uORB/uORBManager.hpp"
|
||||
|
||||
extern "C" { __EXPORT int muorb_main(int argc, char *argv[]); }
|
||||
|
||||
static void usage()
|
||||
{
|
||||
PX4_INFO("Usage: muorb 'start', 'test', 'stop', 'status'");
|
||||
extern "C" {
|
||||
__EXPORT int muorb_main(int argc, char *argv[]);
|
||||
__EXPORT int muorb_init();
|
||||
}
|
||||
|
||||
static bool enable_debug = false;
|
||||
@@ -47,52 +45,21 @@ static bool enable_debug = false;
|
||||
int
|
||||
muorb_main(int argc, char *argv[])
|
||||
{
|
||||
if (argc < 2) {
|
||||
usage();
|
||||
return -EINVAL;
|
||||
return muorb_init();
|
||||
}
|
||||
|
||||
int
|
||||
muorb_init()
|
||||
{
|
||||
uORB::AppsProtobufChannel *channel = uORB::AppsProtobufChannel::GetInstance();
|
||||
|
||||
PX4_INFO("Got muorb init command");
|
||||
|
||||
if (channel && channel->Initialize(enable_debug)) {
|
||||
uORB::Manager::get_instance()->set_uorb_communicator(channel);
|
||||
|
||||
if (channel->Test()) { return OK; }
|
||||
}
|
||||
|
||||
// TODO: Add an optional start parameter to control debug messages
|
||||
if (!strcmp(argv[1], "start")) {
|
||||
// Register the protobuf channel with UORB.
|
||||
uORB::AppsProtobufChannel *channel = uORB::AppsProtobufChannel::GetInstance();
|
||||
|
||||
PX4_INFO("Got muorb start command");
|
||||
|
||||
if (channel && channel->Initialize(enable_debug)) {
|
||||
uORB::Manager::get_instance()->set_uorb_communicator(channel);
|
||||
return OK;
|
||||
}
|
||||
|
||||
} else if (!strcmp(argv[1], "test")) {
|
||||
uORB::AppsProtobufChannel *channel = uORB::AppsProtobufChannel::GetInstance();
|
||||
|
||||
PX4_INFO("Got muorb test command");
|
||||
|
||||
if (channel && channel->Initialize(enable_debug)) {
|
||||
uORB::Manager::get_instance()->set_uorb_communicator(channel);
|
||||
|
||||
if (channel->Test()) { return OK; }
|
||||
}
|
||||
|
||||
} else if (!strcmp(argv[1], "stop")) {
|
||||
if (uORB::AppsProtobufChannel::isInstance() == false) {
|
||||
PX4_WARN("muorb not running");
|
||||
}
|
||||
|
||||
return OK;
|
||||
|
||||
} else if (!strcmp(argv[1], "status")) {
|
||||
if (uORB::AppsProtobufChannel::isInstance()) {
|
||||
PX4_INFO("muorb initialized");
|
||||
|
||||
} else {
|
||||
PX4_INFO("muorb not running");
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
usage();
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user