diff --git a/repositories/diagnostics.BUILD.bazel b/repositories/diagnostics.BUILD.bazel index 251e0c5c..075928b2 100644 --- a/repositories/diagnostics.BUILD.bazel +++ b/repositories/diagnostics.BUILD.bazel @@ -4,10 +4,13 @@ load( "ros2_cpp_library", ) load("@com_github_mvukov_rules_ros2//ros2:plugin.bzl", "ros2_plugin") +load("@com_github_mvukov_rules_ros2//ros2:py_defs.bzl", "ros2_py_binary") load("@rules_python//python:defs.bzl", "py_library") +load("@rules_ros2_pip_deps//:requirements.bzl", "requirement") ros2_cpp_library( name = "cpp_diagnostic_updater", + srcs = ["diagnostic_updater/src/diagnostic_updater.cpp"], hdrs = glob(["diagnostic_updater/include/**/*.hpp"]), includes = ["diagnostic_updater/include"], visibility = ["//visibility:public"], @@ -93,3 +96,73 @@ ros2_cpp_binary( "@ros2_rclcpp//:rclcpp", ], ) + +ros2_py_binary( + name = "cpu_monitor_node", + srcs = ["diagnostic_common_diagnostics/diagnostic_common_diagnostics/cpu_monitor.py"], + main = "diagnostic_common_diagnostics/diagnostic_common_diagnostics/cpu_monitor.py", + set_up_ament = False, + visibility = ["//visibility:public"], + deps = [ + ":py_diagnostic_updater", + "@ros2_common_interfaces//:py_diagnostic_msgs", + "@ros2_rclpy//:rclpy", + requirement("psutil"), + ], +) + +# The "hd" in "hd_monitor_node" means "hard drive". We name it "hd_monitor_node" to stay +# consistent with the upstream name. +ros2_py_binary( + name = "hd_monitor_node", + srcs = ["diagnostic_common_diagnostics/diagnostic_common_diagnostics/hd_monitor.py"], + main = "diagnostic_common_diagnostics/diagnostic_common_diagnostics/hd_monitor.py", + set_up_ament = False, + visibility = ["//visibility:public"], + deps = [ + ":py_diagnostic_updater", + "@ros2_common_interfaces//:py_diagnostic_msgs", + "@ros2_rclpy//:rclpy", + ], +) + +ros2_py_binary( + name = "ntp_monitor_node", + srcs = ["diagnostic_common_diagnostics/diagnostic_common_diagnostics/ntp_monitor.py"], + main = "diagnostic_common_diagnostics/diagnostic_common_diagnostics/ntp_monitor.py", + set_up_ament = False, + visibility = ["//visibility:public"], + deps = [ + ":py_diagnostic_updater", + "@ros2_common_interfaces//:py_diagnostic_msgs", + "@ros2_rclpy//:rclpy", + requirement("ntplib"), + ], +) + +ros2_py_binary( + name = "ram_monitor_node", + srcs = ["diagnostic_common_diagnostics/diagnostic_common_diagnostics/ram_monitor.py"], + main = "diagnostic_common_diagnostics/diagnostic_common_diagnostics/ram_monitor.py", + set_up_ament = False, + visibility = ["//visibility:public"], + deps = [ + ":py_diagnostic_updater", + "@ros2_common_interfaces//:py_diagnostic_msgs", + "@ros2_rclpy//:rclpy", + requirement("psutil"), + ], +) + +ros2_py_binary( + name = "sensors_monitor_node", + srcs = ["diagnostic_common_diagnostics/diagnostic_common_diagnostics/sensors_monitor.py"], + main = "diagnostic_common_diagnostics/diagnostic_common_diagnostics/sensors_monitor.py", + set_up_ament = False, + visibility = ["//visibility:public"], + deps = [ + ":py_diagnostic_updater", + "@ros2_common_interfaces//:py_diagnostic_msgs", + "@ros2_rclpy//:rclpy", + ], +) diff --git a/repositories/repositories.bzl b/repositories/repositories.bzl index b389dfa6..5856c8e7 100644 --- a/repositories/repositories.bzl +++ b/repositories/repositories.bzl @@ -301,9 +301,9 @@ def ros2_repositories(): http_archive, name = "ros2_diagnostics", build_file = "@com_github_mvukov_rules_ros2//repositories:diagnostics.BUILD.bazel", - sha256 = "a723dae7acf0f00ee643c076c7c81299be0254919f29225ec7a89dc14cb8ea6f", - strip_prefix = "diagnostics-9f402787ea2c9b3dd4d7e51a9986810e8a3400ba", - urls = ["https://github.com/ros/diagnostics/archive/9f402787ea2c9b3dd4d7e51a9986810e8a3400ba.zip"], + sha256 = "22f3e6cf118bc76bdbd466106f4f0dd94382277d3fc7eb5248d2fcf26be8d411", + strip_prefix = "diagnostics-4.4.6", + urls = ["https://github.com/ros/diagnostics/archive/refs/tags/4.4.6.zip"], ) maybe( diff --git a/requirements.txt b/requirements.txt index fad99e39..301f2a95 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ catkin_pkg coverage empy==3.3.* lark-parser +ntplib numpy~=1.23 packaging psutil diff --git a/requirements_lock.txt b/requirements_lock.txt index 84095de9..55916ae9 100644 --- a/requirements_lock.txt +++ b/requirements_lock.txt @@ -86,6 +86,10 @@ lark-parser==0.12.0 \ --hash=sha256:0eaf30cb5ba787fe404d73a7d6e61df97b21d5a63ac26c5008c78a494373c675 \ --hash=sha256:15967db1f1214013dca65b1180745047b9be457d73da224fcda3d9dd4e96a138 # via -r requirements.txt +ntplib==0.4.0 \ + --hash=sha256:899d8fb5f8c2555213aea95efca02934c7343df6ace9d7628a5176b176906267 \ + --hash=sha256:8d27375329ed7ff38755f7b6d4658b28edc147cadf40338a63a0da8133469d60 + # via -r requirements.txt numpy==1.26.4 \ --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ diff --git a/ros2/test/diagnostics/diagnostic_publisher.cc b/ros2/test/diagnostics/diagnostic_publisher.cc index 4ca6a8e1..c0842560 100644 --- a/ros2/test/diagnostics/diagnostic_publisher.cc +++ b/ros2/test/diagnostics/diagnostic_publisher.cc @@ -20,7 +20,7 @@ class Publisher : public rclcpp::Node { public: - Publisher() : Node("heartbeat_publisher"), diagnostic_updater_{this} { + Publisher() : Node("heartbeat_publisher"), diagnostic_updater_(this) { diagnostic_updater_.setHardwareID("none"); diagnostic_updater_.add("", &diagnostic_heartbeat_, &diagnostic_updater::Heartbeat::run);