Skip to content

Commit

Permalink
do the reading through a separate node
Browse files Browse the repository at this point in the history
Signed-off-by: M. Fatih Cırıt <mfc@leodrive.ai>
  • Loading branch information
M. Fatih Cırıt committed Jul 20, 2023
1 parent 6bbee43 commit 82bfb89
Show file tree
Hide file tree
Showing 9 changed files with 122 additions and 27 deletions.
7 changes: 6 additions & 1 deletion autoware_version_manager/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,18 @@ autoware_package()
set(NODE_NAME ${PROJECT_NAME}_node)
set(EXEC_NAME ${PROJECT_NAME}_exe)

ament_auto_add_library(autoware_version_reader SHARED
src/autoware_version_reader.cpp)

ament_auto_add_library(${NODE_NAME}
src/include/autoware_version_manager_core.hpp
src/include/parse_version.hpp
src/include/version_types.hpp
src/autoware_version_manager_core.cpp
src/parse_version.cpp)

target_link_libraries(${NODE_NAME}
autoware_version_reader)

rclcpp_components_register_node(${NODE_NAME}
PLUGIN "autoware_version_manager::AutowareVersionManagerNode"
EXECUTABLE ${EXEC_NAME})
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// Copyright 2023 The Autoware Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef AUTOWARE_VERSION_MANAGER__AUTOWARE_VERSION_READER_HPP_
#define AUTOWARE_VERSION_MANAGER__AUTOWARE_VERSION_READER_HPP_

#include "autoware_version_manager/version_types.hpp"

#include <rclcpp/rclcpp.hpp>

namespace autoware_version_manager
{
class AutowareVersionReaderNode : public rclcpp::Node
{
public:
explicit AutowareVersionReaderNode(const rclcpp::NodeOptions & node_options);

private:
VersionAutoware version_autoware_;

public:
const VersionAutoware & get_version_autoware() const;
const VersionInterface & get_version_component_interface() const;

private:
VersionInterface version_component_interface_;
};

} // namespace autoware_version_manager

#endif // AUTOWARE_VERSION_MANAGER__AUTOWARE_VERSION_READER_HPP_
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef VERSION_TYPES_HPP_
#define VERSION_TYPES_HPP_
#ifndef AUTOWARE_VERSION_MANAGER__VERSION_TYPES_HPP_
#define AUTOWARE_VERSION_MANAGER__VERSION_TYPES_HPP_

#include <cstdint>

Expand Down Expand Up @@ -41,4 +41,4 @@ struct VersionInterface

} // namespace autoware_version_manager

#endif // VERSION_TYPES_HPP_
#endif // AUTOWARE_VERSION_MANAGER__VERSION_TYPES_HPP_
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
<?xml version="1.0"?>
<launch>
<arg name="path_version_autoware" default="$(find-pkg-share autoware_version_manager)/data/version-autoware.yaml"/>
<arg name="path_version_component_interface" default="$(find-pkg-share autoware_version_manager)/data/version-component-interface.yaml"/>

<node pkg="autoware_version_manager" exec="autoware_version_manager_exe" name="autoware_version_manager" output="screen">
<param name="path_version_autoware" value="$(var path_version_autoware)"/>
<param name="path_version_component_interface" value="$(var path_version_component_interface)"/>
</node>
<node pkg="autoware_version_manager" exec="autoware_version_manager_exe" name="autoware_version_manager" output="screen"/>
</launch>
17 changes: 4 additions & 13 deletions autoware_version_manager/src/autoware_version_manager_core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

#include "include/autoware_version_manager_core.hpp"

#include "autoware_version_manager/autoware_version_reader.hpp"
#include "include/parse_version.hpp"

#include <ament_index_cpp/get_package_share_directory.hpp>
Expand All @@ -25,20 +26,10 @@ namespace autoware_version_manager
AutowareVersionManagerNode::AutowareVersionManagerNode(const rclcpp::NodeOptions & node_options)
: rclcpp::Node("autoware_version_manager_node", node_options)
{
try {
const std::filesystem::path path_version_autoware =
ament_index_cpp::get_package_share_directory("autoware_version_manager") +
"/data/version-autoware.yaml";
const std::filesystem::path path_version_component_interface =
declare_parameter<std::string>("path_version_component_interface");
AutowareVersionReaderNode autoware_version_reader_node(rclcpp::NodeOptions{});

version_autoware_ = parse_version::parse_autoware_version(path_version_autoware);
version_component_interface_ =
parse_version::parse_interface_version(path_version_component_interface);
} catch (const std::exception & e) {
RCLCPP_ERROR(get_logger(), "Exception: %s", e.what());
exit(EXIT_FAILURE);
}
version_autoware_ = autoware_version_reader_node.get_version_autoware();
version_component_interface_ = autoware_version_reader_node.get_version_component_interface();

srv_get_version_autoware_ = create_service<autoware_system_msgs::srv::GetVersionAutoware>(
"get_version_autoware", std::bind(
Expand Down
63 changes: 63 additions & 0 deletions autoware_version_manager/src/autoware_version_reader.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// Copyright 2023 The Autoware Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include "autoware_version_manager/autoware_version_reader.hpp"

#include "include/parse_version.hpp"

#include <ament_index_cpp/get_package_share_directory.hpp>
#include <rclcpp/rclcpp.hpp>

namespace autoware_version_manager
{

AutowareVersionReaderNode::AutowareVersionReaderNode(const rclcpp::NodeOptions & node_options)
: rclcpp::Node("autoware_version_reader_node", node_options)
{
try {
const std::filesystem::path path_version_autoware =
ament_index_cpp::get_package_share_directory("autoware_version_manager") +
"/data/version-autoware.yaml";
const std::filesystem::path path_version_component_interface =
ament_index_cpp::get_package_share_directory("autoware_version_manager") +
"/data/version-component-interface.yaml";

version_autoware_ = parse_version::parse_autoware_version(path_version_autoware);
version_component_interface_ =
parse_version::parse_interface_version(path_version_component_interface);
} catch (const std::exception & e) {
RCLCPP_ERROR(get_logger(), "Exception: %s", e.what());
exit(EXIT_FAILURE);
}

RCLCPP_INFO(
get_logger(), "Autoware version: %d.%02d.%d", version_autoware_.year, version_autoware_.month,
version_autoware_.micro);

RCLCPP_INFO(
get_logger(), "Component interface version: %d.%d.%d", version_component_interface_.major,
version_component_interface_.minor, version_component_interface_.patch);
}

const VersionAutoware & AutowareVersionReaderNode::get_version_autoware() const
{
return version_autoware_;
}

const VersionInterface & AutowareVersionReaderNode::get_version_component_interface() const
{
return version_component_interface_;
}

} // namespace autoware_version_manager
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#ifndef AUTOWARE_VERSION_MANAGER_CORE_HPP_
#define AUTOWARE_VERSION_MANAGER_CORE_HPP_

#include "version_types.hpp"
#include "autoware_version_manager/version_types.hpp"

#include <rclcpp/rclcpp.hpp>

Expand Down
2 changes: 1 addition & 1 deletion autoware_version_manager/src/include/parse_version.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#ifndef PARSE_VERSION_HPP_
#define PARSE_VERSION_HPP_

#include "version_types.hpp"
#include "autoware_version_manager/version_types.hpp"

#include <yaml-cpp/yaml.h>

Expand Down
2 changes: 1 addition & 1 deletion autoware_version_manager/src/parse_version.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

#include "include/parse_version.hpp"

#include "include/version_types.hpp"
#include "autoware_version_manager/version_types.hpp"

#include <yaml-cpp/yaml.h>

Expand Down

0 comments on commit 82bfb89

Please sign in to comment.