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