From d6c2dd997be7e41807ae4bc700a915236a30e949 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 17 Jun 2015 06:21:28 -1000 Subject: [PATCH] Conditional inclusion of the Node Allocation and FW Server - default is OFF --- src/modules/uavcan/uavcan_main.cpp | 25 ++++++++++++++++++------- src/modules/uavcan/uavcan_main.hpp | 21 ++++++++++++--------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/modules/uavcan/uavcan_main.cpp b/src/modules/uavcan/uavcan_main.cpp index 2f3e1d57a0..f51d60a8ab 100644 --- a/src/modules/uavcan/uavcan_main.cpp +++ b/src/modules/uavcan/uavcan_main.cpp @@ -53,14 +53,15 @@ #include #include "uavcan_main.hpp" -#include -#include - -#include +#if defined(USE_FW_NODE_SERVER) +# include +# include +# include //todo:The Inclusion of file_server_backend is killing // #include and leaving OK undefined -#define OK 0 +# define OK 0 +#endif /** * @file uavcan_main.cpp @@ -75,20 +76,26 @@ * UavcanNode */ UavcanNode *UavcanNode::_instance; +#if defined(USE_FW_NODE_SERVER) uavcan::dynamic_node_id_server::CentralizedServer *UavcanNode::_server_instance; uavcan_posix::dynamic_node_id_server::FileEventTracer tracer; uavcan_posix::dynamic_node_id_server::FileStorageBackend storage_backend; uavcan_posix::FirmwareVersionChecker fw_version_checker; - +#endif UavcanNode::UavcanNode(uavcan::ICanDriver &can_driver, uavcan::ISystemClock &system_clock) : CDev("uavcan", UAVCAN_DEVICE_PATH), _node(can_driver, system_clock), _node_mutex(), +#if !defined(USE_FW_NODE_SERVER) + _esc_controller(_node) +#else _esc_controller(_node), _fileserver_backend(_node), _node_info_retriever(_node), _fw_upgrade_trigger(_node, fw_version_checker), _fw_server(_node, _fileserver_backend) +#endif + { _control_topics[0] = ORB_ID(actuator_controls_0); _control_topics[1] = ORB_ID(actuator_controls_1); @@ -154,7 +161,10 @@ UavcanNode::~UavcanNode() perf_free(_perfcnt_node_spin_elapsed); perf_free(_perfcnt_esc_mixer_output_elapsed); perf_free(_perfcnt_esc_mixer_total_elapsed); + +#if defined(USE_FW_NODE_SERVER) delete(_server_instance); +#endif } @@ -305,7 +315,7 @@ int UavcanNode::init(uavcan::NodeID node_id) br = br->getSibling(); } - +#if defined(USE_FW_NODE_SERVER) /* Initialize the fw version checker. * giving it it's path */ @@ -373,6 +383,7 @@ int UavcanNode::init(uavcan::NodeID node_id) return ret; } +#endif /* Start the Node */ return _node.start(); diff --git a/src/modules/uavcan/uavcan_main.hpp b/src/modules/uavcan/uavcan_main.hpp index dc81fb57d6..b7222f9d47 100644 --- a/src/modules/uavcan/uavcan_main.hpp +++ b/src/modules/uavcan/uavcan_main.hpp @@ -34,6 +34,7 @@ #pragma once #include + #include #include #include @@ -47,13 +48,13 @@ #include "actuators/esc.hpp" #include "sensors/sensor_bridge.hpp" - -#include -#include -#include -#include -#include - +#if defined(USE_FW_NODE_SERVER) +# include +# include +# include +# include +# include +#endif /** * @file uavcan_main.hpp @@ -147,7 +148,6 @@ private: unsigned _output_count = 0; ///< number of actuators currently available static UavcanNode *_instance; ///< singleton pointer - static uavcan::dynamic_node_id_server::CentralizedServer *_server_instance; ///< server singleton pointer Node _node; ///< library instance pthread_mutex_t _node_mutex; @@ -155,11 +155,14 @@ private: UavcanEscController _esc_controller; +#if defined(USE_FW_NODE_SERVER) + static uavcan::dynamic_node_id_server::CentralizedServer *_server_instance; ///< server singleton pointer + uavcan_posix::BasicFileSeverBackend _fileserver_backend; uavcan::NodeInfoRetriever _node_info_retriever; uavcan::FirmwareUpdateTrigger _fw_upgrade_trigger; uavcan::BasicFileServer _fw_server; - +#endif List _sensor_bridges; ///< List of active sensor bridges MixerGroup *_mixers = nullptr;