aboutsummaryrefslogtreecommitdiff
path: root/src/modules/uavcan/uavcan_main.hpp
diff options
context:
space:
mode:
authorPavel Kirienko <pavel.kirienko@gmail.com>2014-08-22 01:52:23 +0400
committerPavel Kirienko <pavel.kirienko@gmail.com>2014-08-22 01:52:23 +0400
commit0d9f6b6e2ec86f7fa95bc2e7650256e1392544b2 (patch)
treebf90731a92fe45f271c046af1220a04fad89863c /src/modules/uavcan/uavcan_main.hpp
parentf87860bc96a61c538de50b5b74aba0452f9b5784 (diff)
downloadpx4-firmware-0d9f6b6e2ec86f7fa95bc2e7650256e1392544b2.tar.gz
px4-firmware-0d9f6b6e2ec86f7fa95bc2e7650256e1392544b2.tar.bz2
px4-firmware-0d9f6b6e2ec86f7fa95bc2e7650256e1392544b2.zip
UAVCAN: Refactored and generalized sensor bridge support
Diffstat (limited to 'src/modules/uavcan/uavcan_main.hpp')
-rw-r--r--src/modules/uavcan/uavcan_main.hpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/modules/uavcan/uavcan_main.hpp b/src/modules/uavcan/uavcan_main.hpp
index 05b66fd7b..bca1aa530 100644
--- a/src/modules/uavcan/uavcan_main.hpp
+++ b/src/modules/uavcan/uavcan_main.hpp
@@ -42,8 +42,8 @@
#include <uORB/topics/actuator_outputs.h>
#include <uORB/topics/actuator_armed.h>
-#include "esc_controller.hpp"
-#include "gnss_receiver.hpp"
+#include "actuators/esc.hpp"
+#include "sensors/sensor_bridge.hpp"
/**
* @file uavcan_main.hpp
@@ -77,12 +77,10 @@ public:
static int start(uavcan::NodeID node_id, uint32_t bitrate);
- Node& getNode() { return _node; }
+ Node& get_node() { return _node; }
- static int control_callback(uintptr_t handle,
- uint8_t control_group,
- uint8_t control_index,
- float &input);
+ // TODO: move the actuator mixing stuff into the ESC controller class
+ static int control_callback(uintptr_t handle, uint8_t control_group, uint8_t control_index, float &input);
void subscribe();
@@ -91,6 +89,10 @@ public:
void print_info();
+ int sensor_enable(const char *bridge_name);
+
+ void sensor_print_enabled();
+
static UavcanNode* instance() { return _instance; }
private:
@@ -109,8 +111,11 @@ private:
static UavcanNode *_instance; ///< singleton pointer
Node _node; ///< library instance
+ pthread_mutex_t _node_mutex;
+
UavcanEscController _esc_controller;
- UavcanGnssReceiver _gnss_receiver;
+
+ List<IUavcanSensorBridge*> _sensor_bridges; ///< Append-only list of active sensor bridges
MixerGroup *_mixers = nullptr;