/**************************************************************************** * Copyright (c) 2024 PX4 Development Team. * SPDX-License-Identifier: BSD-3-Clause ****************************************************************************/ #pragma once // Translate ExampleTopic and OtherTopic v1 <--> v2 #include #include #include #include class ExampleTopicOtherTopicV2Translation { public: using MessagesOlder = TypesArray; static constexpr const char* kTopicsOlder[] = { "fmu/out/example_topic", "fmu/out/other_topic", }; static_assert(px4_msgs_old::msg::ExampleTopicV1::MESSAGE_VERSION == 1); static_assert(px4_msgs_old::msg::OtherTopicV1::MESSAGE_VERSION == 1); using MessagesNewer = TypesArray; static constexpr const char* kTopicsNewer[] = { "fmu/out/example_topic", "fmu/out/other_topic", }; static_assert(px4_msgs::msg::ExampleTopic::MESSAGE_VERSION == 2); static_assert(px4_msgs::msg::OtherTopic::MESSAGE_VERSION == 2); static void fromOlder(const MessagesOlder::Type1 &msg_older1, const MessagesOlder::Type2 &msg_older2, MessagesNewer::Type1 &msg_newer1, MessagesNewer::Type2 &msg_newer2) { // Set msg_newer1, msg_newer2 from msg_older1, msg_older2 } static void toOlder(const MessagesNewer::Type1 &msg_newer1, const MessagesNewer::Type2 &msg_newer2, MessagesOlder::Type1 &msg_older1, MessagesOlder::Type2 &msg_older2) { // Set msg_older1, msg_older2 from msg_newer1, msg_newer2 } }; REGISTER_TOPIC_TRANSLATION(ExampleTopicOtherTopicV2Translation);