mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-04 13:15:08 +08:00
uavcan: optimization
This commit is contained in:
@@ -176,7 +176,7 @@ uint32_t UavcanEscController::get_failures(uint8_t esc_index)
|
|||||||
uint32_t failures = 0;
|
uint32_t failures = 0;
|
||||||
|
|
||||||
// Update device vendor/model information from device_information topic
|
// Update device vendor/model information from device_information topic
|
||||||
device_information_s device_information;
|
device_information_s device_information{};
|
||||||
|
|
||||||
char esc_name[80] {};
|
char esc_name[80] {};
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ uint32_t UavcanEscController::get_failures(uint8_t esc_index)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (esc_report.esc_address < UAVCAN_NODE_ID_MAX && (node_health == dronecan_node_status_s::HEALTH_OK ||
|
if (esc_report.esc_address <= uavcan::NodeID::Max && (node_health == dronecan_node_status_s::HEALTH_OK ||
|
||||||
node_health == dronecan_node_status_s::HEALTH_WARNING)) {
|
node_health == dronecan_node_status_s::HEALTH_WARNING)) {
|
||||||
failures = 0;
|
failures = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -49,17 +49,12 @@
|
|||||||
#include <uavcan/equipment/esc/RawCommand.hpp>
|
#include <uavcan/equipment/esc/RawCommand.hpp>
|
||||||
#include <uavcan/equipment/esc/Status.hpp>
|
#include <uavcan/equipment/esc/Status.hpp>
|
||||||
#include <uavcan/equipment/esc/StatusExtended.hpp>
|
#include <uavcan/equipment/esc/StatusExtended.hpp>
|
||||||
#include <lib/perf/perf_counter.h>
|
|
||||||
#include <uORB/PublicationMulti.hpp>
|
#include <uORB/PublicationMulti.hpp>
|
||||||
#include <uORB/Subscription.hpp>
|
#include <uORB/Subscription.hpp>
|
||||||
#include <uORB/SubscriptionMultiArray.hpp>
|
#include <uORB/SubscriptionMultiArray.hpp>
|
||||||
#include <uORB/topics/actuator_outputs.h>
|
|
||||||
#include <uORB/topics/esc_status.h>
|
#include <uORB/topics/esc_status.h>
|
||||||
#include <uORB/topics/esc_report.h>
|
#include <uORB/topics/esc_report.h>
|
||||||
#include <uORB/topics/dronecan_node_status.h>
|
#include <uORB/topics/dronecan_node_status.h>
|
||||||
#include <uORB/topics/device_information.h>
|
|
||||||
#include <drivers/drv_hrt.h>
|
|
||||||
#include <drivers/uavcan/node_info.hpp>
|
|
||||||
#include "../node_info.hpp"
|
#include "../node_info.hpp"
|
||||||
|
|
||||||
class UavcanEscController
|
class UavcanEscController
|
||||||
@@ -67,7 +62,6 @@ class UavcanEscController
|
|||||||
public:
|
public:
|
||||||
static constexpr int MAX_ACTUATORS = esc_status_s::CONNECTED_ESC_MAX;
|
static constexpr int MAX_ACTUATORS = esc_status_s::CONNECTED_ESC_MAX;
|
||||||
static constexpr unsigned MAX_RATE_HZ = 400;
|
static constexpr unsigned MAX_RATE_HZ = 400;
|
||||||
static constexpr int16_t UAVCAN_NODE_ID_MAX = 128; // UAVCAN supports up to 128 nodes (0-127)
|
|
||||||
|
|
||||||
static_assert(uavcan::equipment::esc::RawCommand::FieldTypes::cmd::MaxSize >= MAX_ACTUATORS, "Too many actuators");
|
static_assert(uavcan::equipment::esc::RawCommand::FieldTypes::cmd::MaxSize >= MAX_ACTUATORS, "Too many actuators");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user