mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-01 03:01:36 +08:00
Conditional inclusion of the Node Allocation and FW Server - default is OFF
This commit is contained in:
@@ -53,14 +53,15 @@
|
|||||||
#include <drivers/drv_pwm_output.h>
|
#include <drivers/drv_pwm_output.h>
|
||||||
|
|
||||||
#include "uavcan_main.hpp"
|
#include "uavcan_main.hpp"
|
||||||
#include <uavcan_posix/dynamic_node_id_server/file_event_tracer.hpp>
|
|
||||||
#include <uavcan_posix/dynamic_node_id_server/file_storage_backend.hpp>
|
|
||||||
|
|
||||||
#include <uavcan_posix/firmware_version_checker.hpp>
|
|
||||||
|
|
||||||
|
#if defined(USE_FW_NODE_SERVER)
|
||||||
|
# include <uavcan_posix/dynamic_node_id_server/file_event_tracer.hpp>
|
||||||
|
# include <uavcan_posix/dynamic_node_id_server/file_storage_backend.hpp>
|
||||||
|
# include <uavcan_posix/firmware_version_checker.hpp>
|
||||||
//todo:The Inclusion of file_server_backend is killing
|
//todo:The Inclusion of file_server_backend is killing
|
||||||
// #include <sys/types.h> and leaving OK undefined
|
// #include <sys/types.h> and leaving OK undefined
|
||||||
#define OK 0
|
# define OK 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file uavcan_main.cpp
|
* @file uavcan_main.cpp
|
||||||
@@ -75,20 +76,26 @@
|
|||||||
* UavcanNode
|
* UavcanNode
|
||||||
*/
|
*/
|
||||||
UavcanNode *UavcanNode::_instance;
|
UavcanNode *UavcanNode::_instance;
|
||||||
|
#if defined(USE_FW_NODE_SERVER)
|
||||||
uavcan::dynamic_node_id_server::CentralizedServer *UavcanNode::_server_instance;
|
uavcan::dynamic_node_id_server::CentralizedServer *UavcanNode::_server_instance;
|
||||||
uavcan_posix::dynamic_node_id_server::FileEventTracer tracer;
|
uavcan_posix::dynamic_node_id_server::FileEventTracer tracer;
|
||||||
uavcan_posix::dynamic_node_id_server::FileStorageBackend storage_backend;
|
uavcan_posix::dynamic_node_id_server::FileStorageBackend storage_backend;
|
||||||
uavcan_posix::FirmwareVersionChecker fw_version_checker;
|
uavcan_posix::FirmwareVersionChecker fw_version_checker;
|
||||||
|
#endif
|
||||||
UavcanNode::UavcanNode(uavcan::ICanDriver &can_driver, uavcan::ISystemClock &system_clock) :
|
UavcanNode::UavcanNode(uavcan::ICanDriver &can_driver, uavcan::ISystemClock &system_clock) :
|
||||||
CDev("uavcan", UAVCAN_DEVICE_PATH),
|
CDev("uavcan", UAVCAN_DEVICE_PATH),
|
||||||
_node(can_driver, system_clock),
|
_node(can_driver, system_clock),
|
||||||
_node_mutex(),
|
_node_mutex(),
|
||||||
|
#if !defined(USE_FW_NODE_SERVER)
|
||||||
|
_esc_controller(_node)
|
||||||
|
#else
|
||||||
_esc_controller(_node),
|
_esc_controller(_node),
|
||||||
_fileserver_backend(_node),
|
_fileserver_backend(_node),
|
||||||
_node_info_retriever(_node),
|
_node_info_retriever(_node),
|
||||||
_fw_upgrade_trigger(_node, fw_version_checker),
|
_fw_upgrade_trigger(_node, fw_version_checker),
|
||||||
_fw_server(_node, _fileserver_backend)
|
_fw_server(_node, _fileserver_backend)
|
||||||
|
#endif
|
||||||
|
|
||||||
{
|
{
|
||||||
_control_topics[0] = ORB_ID(actuator_controls_0);
|
_control_topics[0] = ORB_ID(actuator_controls_0);
|
||||||
_control_topics[1] = ORB_ID(actuator_controls_1);
|
_control_topics[1] = ORB_ID(actuator_controls_1);
|
||||||
@@ -154,7 +161,10 @@ UavcanNode::~UavcanNode()
|
|||||||
perf_free(_perfcnt_node_spin_elapsed);
|
perf_free(_perfcnt_node_spin_elapsed);
|
||||||
perf_free(_perfcnt_esc_mixer_output_elapsed);
|
perf_free(_perfcnt_esc_mixer_output_elapsed);
|
||||||
perf_free(_perfcnt_esc_mixer_total_elapsed);
|
perf_free(_perfcnt_esc_mixer_total_elapsed);
|
||||||
|
|
||||||
|
#if defined(USE_FW_NODE_SERVER)
|
||||||
delete(_server_instance);
|
delete(_server_instance);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -305,7 +315,7 @@ int UavcanNode::init(uavcan::NodeID node_id)
|
|||||||
br = br->getSibling();
|
br = br->getSibling();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(USE_FW_NODE_SERVER)
|
||||||
/* Initialize the fw version checker.
|
/* Initialize the fw version checker.
|
||||||
* giving it it's path
|
* giving it it's path
|
||||||
*/
|
*/
|
||||||
@@ -373,6 +383,7 @@ int UavcanNode::init(uavcan::NodeID node_id)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
/* Start the Node */
|
/* Start the Node */
|
||||||
|
|
||||||
return _node.start();
|
return _node.start();
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <px4_config.h>
|
#include <px4_config.h>
|
||||||
|
|
||||||
#include <uavcan_stm32/uavcan_stm32.hpp>
|
#include <uavcan_stm32/uavcan_stm32.hpp>
|
||||||
#include <drivers/device/device.h>
|
#include <drivers/device/device.h>
|
||||||
#include <systemlib/perf_counter.h>
|
#include <systemlib/perf_counter.h>
|
||||||
@@ -47,13 +48,13 @@
|
|||||||
#include "actuators/esc.hpp"
|
#include "actuators/esc.hpp"
|
||||||
#include "sensors/sensor_bridge.hpp"
|
#include "sensors/sensor_bridge.hpp"
|
||||||
|
|
||||||
|
#if defined(USE_FW_NODE_SERVER)
|
||||||
#include <uavcan/protocol/dynamic_node_id_server/centralized.hpp>
|
# include <uavcan/protocol/dynamic_node_id_server/centralized.hpp>
|
||||||
#include <uavcan/protocol/node_info_retriever.hpp>
|
# include <uavcan/protocol/node_info_retriever.hpp>
|
||||||
#include <uavcan_posix/basic_file_server_backend.hpp>
|
# include <uavcan_posix/basic_file_server_backend.hpp>
|
||||||
#include <uavcan/protocol/firmware_update_trigger.hpp>
|
# include <uavcan/protocol/firmware_update_trigger.hpp>
|
||||||
#include <uavcan/protocol/file_server.hpp>
|
# include <uavcan/protocol/file_server.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file uavcan_main.hpp
|
* @file uavcan_main.hpp
|
||||||
@@ -147,7 +148,6 @@ private:
|
|||||||
unsigned _output_count = 0; ///< number of actuators currently available
|
unsigned _output_count = 0; ///< number of actuators currently available
|
||||||
|
|
||||||
static UavcanNode *_instance; ///< singleton pointer
|
static UavcanNode *_instance; ///< singleton pointer
|
||||||
static uavcan::dynamic_node_id_server::CentralizedServer *_server_instance; ///< server singleton pointer
|
|
||||||
|
|
||||||
Node _node; ///< library instance
|
Node _node; ///< library instance
|
||||||
pthread_mutex_t _node_mutex;
|
pthread_mutex_t _node_mutex;
|
||||||
@@ -155,11 +155,14 @@ private:
|
|||||||
UavcanEscController _esc_controller;
|
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_posix::BasicFileSeverBackend _fileserver_backend;
|
||||||
uavcan::NodeInfoRetriever _node_info_retriever;
|
uavcan::NodeInfoRetriever _node_info_retriever;
|
||||||
uavcan::FirmwareUpdateTrigger _fw_upgrade_trigger;
|
uavcan::FirmwareUpdateTrigger _fw_upgrade_trigger;
|
||||||
uavcan::BasicFileServer _fw_server;
|
uavcan::BasicFileServer _fw_server;
|
||||||
|
#endif
|
||||||
List<IUavcanSensorBridge *> _sensor_bridges; ///< List of active sensor bridges
|
List<IUavcanSensorBridge *> _sensor_bridges; ///< List of active sensor bridges
|
||||||
|
|
||||||
MixerGroup *_mixers = nullptr;
|
MixerGroup *_mixers = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user