VOXL2 board support updates (#21426)

This commit is contained in:
Eric Katzfey
2023-04-19 11:21:02 -04:00
committed by GitHub
parent cb66c48876
commit 018ca6b49d
17 changed files with 755 additions and 141 deletions
+18 -14
View File
@@ -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("");
+1 -3
View File
@@ -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, &param);
/* low priority */
param.sched_priority = SCHED_PRIORITY_DEFAULT - 50;
pthread_attr_setschedparam(&low_prio_attr, &param);
#endif
int ret = pthread_create(&_thread_handle, &low_prio_attr, &threadEntryTrampoline, this);
pthread_attr_destroy(&low_prio_attr);
+17 -50
View File
@@ -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;
}