Skip to content

Commit

Permalink
feat: add autoware_system_monitor package (autowarefoundation#14)
Browse files Browse the repository at this point in the history
* release v0.4.0

* Fixed uninitialized variable. (autowarefoundation#763)

* Fixed various bugs. (autowarefoundation#768)

* Fixed various bugs.

* Fixed wrong status report of NIC.

* Added the mode of CPU Usage to check statistics calculated as averages among all processors by default. (autowarefoundation#788)

* fix uninitialized variables (autowarefoundation#816)

* remove ROS1 packages temporarily

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Revert "remove ROS1 packages temporarily"

This reverts commit a9436882d50dc09fa5b8d6c0a151a10def76b242.

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* add COLCON_IGNORE to ros1 packages

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Rename launch files to launch.xml (autowarefoundation#28)

* Port system monitor to ros2 (autowarefoundation#71)

* Implement a utility function that spins and updates a monitor node.

* Port cpu monitor

* Port hdd monitor.

* Port mem_monitor to ROS2

* Port  net_monitor to ROS2

* Port  ntp_monitor to ROS2

* Port  process_monitor to ROS2

* Port GPU_monitor to ROS2

* Port msr_reader and hdd_reader to ROS2

* Clean up the build and launch files:

* Clean up and comment on CMake and package files.
* Port the launch file to ROS2

* Rename h files to hpp (autowarefoundation#142)

* Change includes

* Rename files

* Adjustments to make things compile

* Other packages

* Adjust copyright notice on 532 out of 699 source files (autowarefoundation#143)

* Use quotes for includes where appropriate (autowarefoundation#144)

* Use quotes for includes where appropriate

* Fix lint tests

* Make tests pass hopefully

* Run uncrustify on the entire Pilot.Auto codebase (autowarefoundation#151)

* Run uncrustify on the entire Pilot.Auto codebase

* Exclude open PRs

* ROS2 Linting: system_monitor (autowarefoundation#207)

* Add linters

* Fix clang-tidy error in util.hpp

* Ros2 v0.8.0 system monitor (autowarefoundation#276)

* fix dependency of system_monitor

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Rename ROS-related .yaml to .param.yaml (autowarefoundation#352)

* Rename ROS-related .yaml to .param.yaml

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Remove prefix 'default_' of yaml files

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Rename vehicle_info.yaml to vehicle_info.param.yaml

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Rename diagnostic_aggregator's param files

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix overlooked parameters

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Exclude SwPowerCap as an error. (autowarefoundation#1146) (autowarefoundation#364)

Co-authored-by: ito-san <57388357+ito-san@users.noreply.github.com>

* [Update v0.9.0] system monitor (autowarefoundation#365)

* Disable CPU Load Average warning. (autowarefoundation#1147)

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Fix cpu_monitor respawning forever. (autowarefoundation#1150)

* Disable cpu_temperature in planning simulation (autowarefoundation#1151)

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Net Monitor: Handle as an error if specified device not exist. (autowarefoundation#1152)

* Handled as an error if specified device not exist.

* Disable network diags in simulation

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

Co-authored-by: Kenji Miyake <kenji.miyake@tier4.jp>

* apply ament_uncrustify

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Disable resource monitoring in planning_simulator (autowarefoundation#1172)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Treat logging errors as safe faults (autowarefoundation#1164)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix test code of system_monitor (autowarefoundation#1178)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

Co-authored-by: ito-san <57388357+ito-san@users.noreply.github.com>
Co-authored-by: Kenji Miyake <kenji.miyake@tier4.jp>
Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>

* Use thread for ntpdate. (autowarefoundation#1160) (autowarefoundation#375)

* Use thread for ntpdate. (autowarefoundation#1160)

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* removed unused variable

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Import v0.9.1 (autowarefoundation#431)

* add local optimal solution ocillation check to ndt_scan_matcher (autowarefoundation#1182)

* Add obstacle_crush diagnostic (autowarefoundation#1186)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix diagnostics api (autowarefoundation#1185)

* Fix diagnostics api

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Don't overwrite level

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Overwrite level of No Fault diagnostics

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Add missing diag in autoware_error_monitor.yaml (autowarefoundation#1187)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Filter hazard_status (autowarefoundation#1191)

* Filter hazard_status

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Filter leaf diagnostics

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix wrong calculation of available memory. (autowarefoundation#1168)

* Fixed wrong calculation of available memory.

* Added comments about output example of free -tb command.

* Change monitoring method to get HDD temperature and usage per specified device. (autowarefoundation#1195)

* Changed monitoring method to get temperature and usage per specified device.

* Fixed test codes.

* Removed unnecessary (void) parameter.

* return input pointcloud when ground plane not found (autowarefoundation#1190)

* fix yaw-smoothing bug (autowarefoundation#1198)

* Fix lint

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

Co-authored-by: Taichi Higashide <taichi.higashide@tier4.jp>
Co-authored-by: ito-san <57388357+ito-san@users.noreply.github.com>
Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp>

* Fix typo in system module (autowarefoundation#434)

* Fix typo in system module

* Change variable name

* Move comments

* Apply uncrustify

* Split system_monitor config (autowarefoundation#452)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Remove unnecessary diagnostic update. (autowarefoundation#455)

* add use_sim-time option (autowarefoundation#454)

* Sync public repo (autowarefoundation#1228)

* [simple_planning_simulator] add readme (autowarefoundation#424)

* add readme of simple_planning_simulator

Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com>

* Update simulator/simple_planning_simulator/README.md

* set transit_margin_time to intersect. planner (autowarefoundation#460)

* Fix pose2twist (autowarefoundation#462)

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Ros2 vehicle info param server (autowarefoundation#447)

* add vehicle_info_param_server

* update vehicle info

* apply format

* fix bug

* skip unnecessary search

* delete vehicle param file

* fix bug

* Ros2 fix topic name part2 (autowarefoundation#425)

* Fix topic name of traffic_light_classifier

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix topic name of traffic_light_visualization

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix topic name of traffic_light_ssd_fine_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix topic name of traffic_light_map_based_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_recognition

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_ssd_fine_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_classifier

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_classifier

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_ssd_fine_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix issues in hdd_reader (autowarefoundation#466)

* Fix some issues detected by Coverity Scan and Clang-Tidy

* Update launch command

* Add more `close(new_sock)`

* Simplify the definitions of struct

* fix: re-construct laneletMapLayer for reindex RTree (autowarefoundation#463)

* Rviz overlay render fix (autowarefoundation#461)

* Moved painiting in SteeringAngle plugin to update()

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* super class now back to MFD

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* uncrustified

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* acquire data in mutex

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* back to RTD as superclass

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* Rviz overlay render in update (autowarefoundation#465)

* Moved painiting in SteeringAngle plugin to update()

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* super class now back to MFD

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* uncrustified

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* acquire data in mutex

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* removed unnecessary includes and some dead code

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* Adepted remaining vehicle plugin classes to render-in-update concept. Returned to MFD superclass

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* restored RTD superclass

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

Co-authored-by: Takamasa Horibe <horibe.takamasa@gmail.com>
Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp>
Co-authored-by: Takagi, Isamu <43976882+isamu-takagi@users.noreply.github.com>
Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>
Co-authored-by: Makoto Tokunaga <vios-fish@users.noreply.github.com>
Co-authored-by: Adam Dąbrowski <adam.dabrowski@robotec.ai>

* Fix issues in gpu_monitor (autowarefoundation#1248)

* Fix issues in gpu_monitor
* Fix uninitialized variables
* Use range-based for loop
* Fix compile errors of tegra_gpu_monitor
* Replace C-style to C++-style

* Make iterators const

* Fix fmt::format() usage error

* Unify Apache-2.0 license name (autowarefoundation#1242)

* Remove use_sim_time for set_parameter (autowarefoundation#1260)

Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp>

* [system_monitor] change some nodes into components (autowarefoundation#1234)

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>
Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp>

Co-authored-by: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com>
Co-authored-by: Takeshi Miura <takeshi.miura@tier4.jp>
Co-authored-by: wep21 <border_goldenmarket@yahoo.co.jp>

* add system_monitor.launch.py (autowarefoundation#1238)

* add system_monitor.launch.py

* refactor system_monitor.launch.py

* fix launch bug

* fix typo

* fix launch py

* fix param loading

* format code

* fix system monitor executor to publish diagnostics asynclonously (autowarefoundation#1283)

* Fix lint errors (autowarefoundation#1378)

* Fix lint errors

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix variable names

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Add kernel CPU usage. (autowarefoundation#1465)

* Add kernel CPU usage.

* Change CPU x: usage to CPU x: total.

* Changed variable name.

* Add markdownlint and prettier (autowarefoundation#1661)

* Add markdownlint and prettier

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Ignore .param.yaml

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Apply format

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* suppress warnings for system monitor (autowarefoundation#1723)

* fix for hdd_monitor

* fix no initialization and warning

* change command for ntp_monitor (autowarefoundation#1705)

* [EVT4-403] change command for ntp_monitor

* [EVT4-403] fixed CI build error

* [EVT4-403] fixed cpplint error

* delete executeChronyc thread, fix error topic and log output code

* fix cpplint error and code style divergence

* fix cpplint error(missing correction)

* Fix MD029 (autowarefoundation#1813)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix -Wunused-parameter (autowarefoundation#1836)

* Fix -Wunused-parameter

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix mistake

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* fix spell

* Fix lint issues

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Ignore flake8 warnings

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

Co-authored-by: Hiroki OTA <hiroki.ota@tier4.jp>

* add gpu usage per process (autowarefoundation#1798)

* add gpu usage per process

* change illegal usage(4294967295%) to 0%, and fix CI running errors

* Replace gettimeofday with rclcpp::Node::now().

* Fix uncrustify error.

* Replace rclcpp::Node::now() with rclcpp::Clock(RCL_SYSTEM_TIME).

Co-authored-by: ito-san <fumihito.ito@tier4.jp>

* fix some typos (autowarefoundation#1941)

* fix some typos

* fix typo

* Fix typo

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

Co-authored-by: Kenji Miyake <kenji.miyake@tier4.jp>

* suppress warnings for system directory autowarefoundation#2046

* add sort-package-xml hook in pre-commit (autowarefoundation#1881)

* add sort xml hook in pre-commit

* change retval to exit_status

* rename

* add prettier plugin-xml

* use early return

* add license note

* add tier4 license

* restore prettier

* change license order

* move local hooks to public repo

* move prettier-xml to pre-commit-hooks-ros

* update version for bug-fix

* apply pre-commit

* Add execution time logging. (autowarefoundation#2066)

* Add markdown-link-check pre-commit (autowarefoundation#2215)

* add markdown-lint-check pre-commit

* delete files argument

* add optional hook

* modify comment

* add comment

* delete hook

* add retry option

* add option

* add files arg

* Fix links in hdd_reader.md

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Ignore 403

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Ignore tier4 github url

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Update link

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

Co-authored-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Change formatter to clang-format and black (autowarefoundation#2332)

* Revert "Temporarily comment out pre-commit hooks"

This reverts commit 748e9cdb145ce12f8b520bcbd97f5ff899fc28a3.

* Replace ament_lint_common with autoware_lint_common

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Remove ament_cmake_uncrustify and ament_clang_format

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Apply Black

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Apply clang-format

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix build errors

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix for cpplint

* Fix include double quotes to angle brackets

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Apply clang-format

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix build errors

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Add COLCON_IGNORE (autowarefoundation#500)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* remove COLCON_IGNORE in system_packages and map_tf_generator (autowarefoundation#532)

Co-authored-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>
Co-authored-by: ito-san <57388357+ito-san@users.noreply.github.com>
Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>
Co-authored-by: Nikolai Morin <nnmmgit@gmail.com>
Co-authored-by: Yunus Emre Çalışkan <yunus.ec@gmail.com>
Co-authored-by: Jilada Eccleston <jilada.eccleston@gmail.com>
Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com>
Co-authored-by: Takagi, Isamu <isamu.takagi@tier4.jp>
Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>
Co-authored-by: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com>
Co-authored-by: Kenji Miyake <kenji.miyake@tier4.jp>
Co-authored-by: Taichi Higashide <taichi.higashide@tier4.jp>
Co-authored-by: Takamasa Horibe <horibe.takamasa@gmail.com>
Co-authored-by: Takagi, Isamu <43976882+isamu-takagi@users.noreply.github.com>
Co-authored-by: Makoto Tokunaga <vios-fish@users.noreply.github.com>
Co-authored-by: Adam Dąbrowski <adam.dabrowski@robotec.ai>
Co-authored-by: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com>
Co-authored-by: Takeshi Miura <takeshi.miura@tier4.jp>
Co-authored-by: wep21 <border_goldenmarket@yahoo.co.jp>
Co-authored-by: Hiroki OTA <hiroki.ota@tier4.jp>
Co-authored-by: v-kitahara8153 <86092199+v-kitahara8153@users.noreply.github.com>
Co-authored-by: ito-san <fumihito.ito@tier4.jp>
Co-authored-by: Keisuke Shima <19993104+KeisukeShima@users.noreply.github.com>
Co-authored-by: taikitanaka3 <65527974+taikitanaka3@users.noreply.github.com>
  • Loading branch information
25 people authored Dec 3, 2021
1 parent bb816a6 commit e0fc816
Show file tree
Hide file tree
Showing 105 changed files with 13,246 additions and 0 deletions.
8 changes: 8 additions & 0 deletions system/system_monitor/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package system_monitor
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.1x.0 (2020-xx-xx)
-------------------
* Initial commit
* Contributors: Fumihito Ito
315 changes: 315 additions & 0 deletions system/system_monitor/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,315 @@
cmake_minimum_required(VERSION 3.5)
project(system_monitor)

## Compile as C++14, supported in ROS Melodic and newer
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic -Werror)
endif()

find_package(ament_cmake_auto REQUIRED)
ament_auto_find_build_dependencies()

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
find_package(NVML)
find_package(fmt REQUIRED)
set(LIBRARIES fmt)

###########
## Build ##
###########

## Specify additional locations of header files

find_path(LIBNL3_INCLUDE_DIRS
NAMES netlink/netlink.h
PATH_SUFFIXES libnl3
)

if(NVML_FOUND)
include_directories(
include
${LIBNL3_INCLUDE_DIRS}
${NVML_INCLUDE_DIRS}
)
else()
include_directories(
include
${LIBNL3_INCLUDE_DIRS}
)
endif()

## Declare a C++ executable

if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(CMAKE_CPU_PLATFORM "intel")
add_definitions(-D_CPU_INTEL_)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "arm")
if(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*raspi.*")
set(CMAKE_CPU_PLATFORM "raspi")
add_definitions(-D_CPU_RASPI_)
elseif(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*tegra.*")
set(CMAKE_CPU_PLATFORM "tegra")
add_definitions(-D_CPU_TEGRA_)
else()
set(CMAKE_CPU_PLATFORM "arm")
add_definitions(-D_CPU_ARM_)
endif()
else()
set(CMAKE_CPU_PLATFORM "unknown")
endif()

if(NVML_FOUND)
set(CMAKE_GPU_PLATFORM "nvml")
add_definitions(-D_GPU_NVML_)
set(GPU_LIBRARY ${NVML_LIBRARIES})
else()
if(CMAKE_CPU_PLATFORM STREQUAL "tegra")
set(CMAKE_GPU_PLATFORM "tegra")
add_definitions(-D_GPU_TEGRA_)
else()
set(CMAKE_GPU_PLATFORM "unknown")
endif()
endif()

message(STATUS "HOST_SYSTEM_VERSION: " ${CMAKE_HOST_SYSTEM_VERSION})
message(STATUS "SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR})
message(STATUS "CPU PLATFORM: " ${CMAKE_CPU_PLATFORM})
message(STATUS "GPU PLATFORM: " ${CMAKE_GPU_PLATFORM})

set(CPU_MONITOR_SOURCE
src/cpu_monitor/cpu_monitor_base.cpp
src/cpu_monitor/${CMAKE_CPU_PLATFORM}_cpu_monitor.cpp
)

ament_auto_add_library(cpu_monitor_lib SHARED
${CPU_MONITOR_SOURCE}
)

ament_auto_add_library(hdd_monitor_lib SHARED
src/hdd_monitor/hdd_monitor.cpp
)

ament_auto_add_library(mem_monitor_lib SHARED
src/mem_monitor/mem_monitor.cpp
)

ament_auto_add_library(net_monitor_lib SHARED
src/net_monitor/net_monitor.cpp
src/net_monitor/nl80211.cpp
)

ament_auto_add_library(ntp_monitor_lib SHARED
src/ntp_monitor/ntp_monitor.cpp
)

ament_auto_add_library(process_monitor_lib SHARED
src/process_monitor/process_monitor.cpp
)

set(GPU_MONITOR_SOURCE
src/gpu_monitor/gpu_monitor_base.cpp
src/gpu_monitor/${CMAKE_GPU_PLATFORM}_gpu_monitor.cpp
)
ament_auto_add_library(gpu_monitor_lib SHARED
${GPU_MONITOR_SOURCE}
)

ament_auto_add_executable(msr_reader
reader/msr_reader/msr_reader.cpp
)

ament_auto_add_executable(hdd_reader
reader/hdd_reader/hdd_reader.cpp
)

find_library(NL3 nl-3 REQUIRED)
find_library(NLGENL3 nl-genl-3 REQUIRED)
list(APPEND NL_LIBS ${NL3} ${NLGENL3})

find_package(Boost REQUIRED COMPONENTS
serialization
thread
filesystem
regex
)

## Specify libraries to link a library or executable target against
target_link_libraries(cpu_monitor_lib ${Boost_LIBRARIES} ${LIBRARIES})
target_link_libraries(hdd_monitor_lib ${Boost_LIBRARIES} ${LIBRARIES})
target_link_libraries(mem_monitor_lib ${LIBRARIES})
target_link_libraries(net_monitor_lib ${NL_LIBS} ${LIBRARIES})
target_link_libraries(ntp_monitor_lib ${Boost_LIBRARIES} ${LIBRARIES})
target_link_libraries(process_monitor_lib ${LIBRARIES})
target_link_libraries(gpu_monitor_lib ${GPU_LIBRARY} ${Boost_LIBRARIES} ${LIBRARIES})
target_link_libraries(msr_reader ${Boost_LIBRARIES} ${LIBRARIES})
target_link_libraries(hdd_reader ${Boost_LIBRARIES} ${LIBRARIES})

rclcpp_components_register_node(cpu_monitor_lib
PLUGIN "CPUMonitor"
EXECUTABLE cpu_monitor
)

rclcpp_components_register_node(hdd_monitor_lib
PLUGIN "HDDMonitor"
EXECUTABLE hdd_monitor
)

rclcpp_components_register_node(mem_monitor_lib
PLUGIN "MemMonitor"
EXECUTABLE mem_monitor
)

rclcpp_components_register_node(net_monitor_lib
PLUGIN "NetMonitor"
EXECUTABLE net_monitor
)

rclcpp_components_register_node(ntp_monitor_lib
PLUGIN "NTPMonitor"
EXECUTABLE ntp_monitor
)

rclcpp_components_register_node(process_monitor_lib
PLUGIN "ProcessMonitor"
EXECUTABLE process_monitor
)

rclcpp_components_register_node(gpu_monitor_lib
PLUGIN "GPUMonitor"
EXECUTABLE gpu_monitor
)

# TODO(yunus.caliskan): Port the tests to ROS2, robustify the tests.
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()

# ament_add_gtest(test_cpu_monitor
# test/src/cpu_monitor/test_${CMAKE_CPU_PLATFORM}_cpu_monitor.cpp
# ${CPU_MONITOR_SOURCE}
# )

# ament_target_dependencies(test_cpu_monitor
# "rclcpp"
# "diagnostic_msgs"
# )

# target_include_directories(test_cpu_monitor
# PRIVATE "include"
# )

# target_link_libraries(test_cpu_monitor ${Boost_LIBRARIES} ${LIBRARIES})

# ament_add_gtest(test_hdd_monitor
# test/src/hdd_monitor/test_hdd_monitor.cpp
# src/hdd_monitor/hdd_monitor.cpp
# )

# ament_target_dependencies(test_hdd_monitor
# "rclcpp"
# "diagnostic_msgs"
# )

# target_include_directories(test_hdd_monitor
# PRIVATE "include"
# )

# target_link_libraries(test_hdd_monitor ${Boost_LIBRARIES} ${LIBRARIES}
# )

# ament_add_gtest(test_mem_monitor
# test/src/mem_monitor/test_mem_monitor.cpp
# src/mem_monitor/mem_monitor.cpp
# )

# ament_target_dependencies(test_mem_monitor
# "rclcpp"
# "diagnostic_msgs"
# )

# target_include_directories(test_mem_monitor
# PRIVATE "include"
# )

# target_link_libraries(test_mem_monitor ${Boost_LIBRARIES} ${LIBRARIES})

# ament_add_gtest(test_net_monitor
# test/src/net_monitor/test_net_monitor.cpp
# src/net_monitor/net_monitor.cpp
# src/net_monitor/nl80211.cpp
# )

# ament_target_dependencies(test_net_monitor
# "rclcpp"
# "diagnostic_msgs"
# )

# target_include_directories(test_net_monitor
# PRIVATE "include"
# )

# target_link_libraries(test_net_monitor ${Boost_LIBRARIES} ${NL_LIBS} ${LIBRARIES})

# ament_add_gtest(test_ntp_monitor
# test/src/ntp_monitor/test_ntp_monitor.cpp
# src/ntp_monitor/ntp_monitor.cpp
# )

# ament_target_dependencies(test_ntp_monitor
# "rclcpp"
# "diagnostic_msgs"
# )

# target_include_directories(test_ntp_monitor
# PRIVATE "include"
# )

# target_link_libraries(test_ntp_monitor ${Boost_LIBRARIES} ${LIBRARIES})

# ament_add_gtest(test_process_monitor
# test/src/process_monitor/test_process_monitor.cpp
# src/process_monitor/process_monitor.cpp
# )

# ament_target_dependencies(test_process_monitor
# "rclcpp"
# "diagnostic_msgs"
# )

# target_include_directories(test_process_monitor
# PRIVATE "include"
# )

# target_link_libraries(test_process_monitor ${Boost_LIBRARIES} ${LIBRARIES})

# ament_add_gtest(test_gpu_monitor
# test/src/gpu_monitor/test_${CMAKE_GPU_PLATFORM}_gpu_monitor.cpp
# ${GPU_MONITOR_SOURCE}
# )

# ament_target_dependencies(test_gpu_monitor
# "rclcpp"
# "diagnostic_msgs"
# )

# target_include_directories(test_gpu_monitor
# PRIVATE "include"
# )

# target_link_libraries(test_gpu_monitor ${GPU_LIBRARY} ${LIBRARIES})

endif()

#############
## Install ##
#############

ament_auto_package(INSTALL_TO_SHARE
launch
config
)
Loading

0 comments on commit e0fc816

Please sign in to comment.