mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-09-26 04:38:19 +08:00
feat(actuators): increase servo channel count from 8 to 15
Bumps NUM_CONTROLS/MAX_ACTUATORS from 8 to 15 across all layers. Signed-off-by: alexcekay <alexander@auterion.com>
This commit is contained in:
committed by
Alexander Lerach
parent
9e27a3c5e1
commit
13868013d2
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <translation_util.h>
|
||||
|
||||
#include "translation_actuator_servos_v1.h"
|
||||
#include "translation_airspeed_validated_v1.h"
|
||||
#include "translation_aux_global_position_v1.h"
|
||||
#include "translation_arming_check_reply_v1.h"
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 2026 PX4 Development Team.
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
****************************************************************************/
|
||||
#pragma once
|
||||
|
||||
// Translate ActuatorServos v0 <--> v1
|
||||
#include <px4_msgs_old/msg/actuator_servos_v0.hpp>
|
||||
#include <px4_msgs/msg/actuator_servos.hpp>
|
||||
|
||||
class ActuatorServosV1Translation {
|
||||
public:
|
||||
using MessageOlder = px4_msgs_old::msg::ActuatorServosV0;
|
||||
static_assert(MessageOlder::MESSAGE_VERSION == 0);
|
||||
|
||||
using MessageNewer = px4_msgs::msg::ActuatorServos;
|
||||
static_assert(MessageNewer::MESSAGE_VERSION == 1);
|
||||
|
||||
static constexpr const char* kTopic = "fmu/in/actuator_servos";
|
||||
|
||||
static void fromOlder(const MessageOlder &msg_older, MessageNewer &msg_newer) {
|
||||
msg_newer.timestamp = msg_older.timestamp;
|
||||
msg_newer.timestamp_sample = msg_older.timestamp_sample;
|
||||
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
msg_newer.control[i] = msg_older.control[i];
|
||||
}
|
||||
|
||||
// Channels 8-14 did not exist in v0; treat as disarmed
|
||||
for (int i = 8; i < 15; ++i) {
|
||||
msg_newer.control[i] = NAN;
|
||||
}
|
||||
}
|
||||
|
||||
static void toOlder(const MessageNewer &msg_newer, MessageOlder &msg_older) {
|
||||
msg_older.timestamp = msg_newer.timestamp;
|
||||
msg_older.timestamp_sample = msg_newer.timestamp_sample;
|
||||
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
msg_older.control[i] = msg_newer.control[i];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
REGISTER_TOPIC_TRANSLATION_DIRECT(ActuatorServosV1Translation);
|
||||
Reference in New Issue
Block a user