From 71c4f5a05be8cf30ea303fd8cf81993076949d10 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 10 Feb 2021 08:47:53 -0800 Subject: [PATCH] UavcanNode:Support Dynamic Node ID allocation --- src/drivers/uavcannode/UavcanNode.cpp | 59 ++++++++++++++++++++++++--- src/drivers/uavcannode/UavcanNode.hpp | 1 + 2 files changed, 55 insertions(+), 5 deletions(-) diff --git a/src/drivers/uavcannode/UavcanNode.cpp b/src/drivers/uavcannode/UavcanNode.cpp index e5c360aca8..6e2e4a2862 100644 --- a/src/drivers/uavcannode/UavcanNode.cpp +++ b/src/drivers/uavcannode/UavcanNode.cpp @@ -274,7 +274,12 @@ void UavcanNode::cb_beginfirmware_update(const uavcan::ReceivedDataStructure uavcan::NodeID::Max || !uavcan::NodeID(node_id).isUnicast()) { + if (board_booted_by_px4() && (node_id < 0 || node_id > uavcan::NodeID::Max || !uavcan::NodeID(node_id).isUnicast())) { PX4_ERR("Invalid Node ID %i", node_id); return 1; } diff --git a/src/drivers/uavcannode/UavcanNode.hpp b/src/drivers/uavcannode/UavcanNode.hpp index 353bf87190..3bee1eb276 100644 --- a/src/drivers/uavcannode/UavcanNode.hpp +++ b/src/drivers/uavcannode/UavcanNode.hpp @@ -58,6 +58,7 @@ #include #include #include +#include #include