From 7ca75e9f42135a8b486a9b206488104ecd54e0e4 Mon Sep 17 00:00:00 2001
From: bav6096 <benedikt.deike@informatik.uni-hamburg.de>
Date: Mon, 1 Nov 2021 23:38:11 +0100
Subject: [PATCH] fixed loading animations from file
---
CMakeLists.txt | 1 +
nodes/monitor_distance | 34 ++++++++++++++++++++++++++++++++++
src/monitoring/watchdog.py | 3 +++
3 files changed, 38 insertions(+)
create mode 100755 nodes/monitor_distance
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8ec28b3..550792c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -164,6 +164,7 @@ include_directories(
## in contrast to setup.py, you can choose the destination
catkin_install_python(PROGRAMS
nodes/watchdog
+ nodes/monitor_distance
nodes/monitor_test2
nodes/monitor_test
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
diff --git a/nodes/monitor_distance b/nodes/monitor_distance
new file mode 100755
index 0000000..7eee550
--- /dev/null
+++ b/nodes/monitor_distance
@@ -0,0 +1,34 @@
+#!/usr/bin/env pyhton
+
+import rospy
+from monitoring.monitor import Monitor
+from sensor_msgs.msg import LaserScan
+
+
+def scan_callback(msg):
+ global range_ahead
+ range_ahead = msg.ranges[int(len(msg.ranges) / 2)]
+
+
+if __name__ == '__main__':
+ try:
+ range_ahead = 10
+ scan_sub = rospy.Subscriber("scan", LaserScan, scan_callback)
+ rospy.init_node("monitor_distance")
+ monitor = Monitor(1, 1)
+
+ rate = rospy.Rate(10)
+ while not rospy.is_shutdown():
+ print(range_ahead)
+ if range_ahead > 0.8:
+ critical = 0
+ else:
+ if range_ahead > 0.35:
+ critical = 0.5
+ else:
+ critical = 1.0
+
+ monitor.update_metric("scan", "distance", range_ahead, "unit", critical)
+ rate.sleep()
+ except rospy.ROSInterruptException:
+ pass
diff --git a/src/monitoring/watchdog.py b/src/monitoring/watchdog.py
index 3529bfd..2d8080f 100755
--- a/src/monitoring/watchdog.py
+++ b/src/monitoring/watchdog.py
@@ -21,6 +21,7 @@ class Watchdog:
rospy.Subscriber("monitoring", Monitoring, self.logging)
+ # TODO: Think about efficiency!
def logging(self, monitoring):
origin = monitoring.origin
metric = monitoring.metric
@@ -42,6 +43,7 @@ class Watchdog:
self.observing[component][origin] = {}
self.observing[component][origin][label] = {"value": value, "unit": unit, "critical": critical}
+ # TODO: Add more modes!
def update_states(self, event):
for component in self.observing:
# Mode 1: Take the average critical level for a component
@@ -59,6 +61,7 @@ class Watchdog:
self.publish_states()
+ # TODO: Update names!
def publish_states(self):
topic = States()
for component in self.component_states:
--
GitLab