From 417fd767578d65a6eaed96cf74bea0dec11acd94 Mon Sep 17 00:00:00 2001
From: ARMAR-User <armar@user>
Date: Wed, 5 Mar 2025 11:50:49 +0100
Subject: [PATCH] fix: Check that device exists

---
 .../RobotUnitModules/RobotUnitModuleControlThread.cpp  | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp
index 6b65c43ba..56713b984 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp
@@ -40,6 +40,7 @@
 #include <RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleRobotData.h>
 #include <RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleUnits.h>
 #include <RobotAPI/components/units/RobotUnit/SensorValues/SensorValueHolonomicPlatform.h>
+#include <RobotAPI/components/units/RobotUnit/util/ControlThreadOutputBuffer.h>
 #include <RobotAPI/components/units/RobotUnit/util/DynamicsHelper.h>
 
 #include "../Devices/RTThreadTimingsSensorDevice.h"
@@ -536,7 +537,14 @@ namespace armarx::RobotUnitModule
         rtGetThreadTimingsSensorDevice().rtMarkRtReadSensorDeviceValuesStart();
         for (const SensorDevicePtr& device : rtGetSensorDevices())
         {
-            device->rtReadSensorValues(sensorValuesTimestamp, timeSinceLastIteration);
+            if (device)
+            {
+                device->rtReadSensorValues(sensorValuesTimestamp, timeSinceLastIteration);
+            }
+            else
+            {
+                ARMARX_RT_LOGF_ERROR("Device is null!");
+            }
         }
         DevicesAttorneyForControlThread::UpdateRobotWithSensorValues(this, rtRobot, rtRobotNodes);
         rtPostReadSensorDeviceValues(sensorValuesTimestamp, timeSinceLastIteration);
-- 
GitLab