drivers/uavcannode: Add a simple parameter server (simpler version for merging) (#16649)

* drivers/uavcannode: Add a simple parameter server

Added a simple parameter server using the libuavcan ParamServer class.
The parameter server exposes a selection of PX4 parameters via UAVCAN.
Also, Increased the stack size of the uavcan work queue in order to
prevent a stack overflow.

* uavcannode: fetch all active PX4 parameters

Co-authored-by: Kenneth Thompson <ken@flyvoly.com>
This commit is contained in:
Daniel Agar
2021-01-26 10:19:20 -08:00
committed by GitHub
co-authored by Kenneth Thompson
parent 525361cbc7
commit e656c9c13f
6 changed files with 198 additions and 1 deletions
+3
View File
@@ -83,6 +83,7 @@ UavcanNode::UavcanNode(uavcan::ICanDriver &can_driver, uavcan::ISystemClock &sys
_raw_air_data_publisher(_node),
_range_sensor_measurement(_node),
_flow_measurement_publisher(_node),
_param_server(_node),
_cycle_perf(perf_alloc(PC_ELAPSED, MODULE_NAME": cycle time")),
_interval_perf(perf_alloc(PC_INTERVAL, MODULE_NAME": cycle interval")),
_reset_timer(_node)
@@ -290,6 +291,7 @@ void UavcanNode::Run()
if (!_initialized) {
get_node().setRestartRequestHandler(&restart_request_handler);
_param_server.start(&_param_manager);
init_indication_controller(get_node());
@@ -313,6 +315,7 @@ void UavcanNode::Run()
_sensor_baro_sub.registerCallback();
_sensor_gps_sub.registerCallback();
_sensor_mag_sub.registerCallback();
_sensor_gps_sub.registerCallback();
_initialized = true;
}