From c6f8d7efd2299f9fd687cda133ee0c84d36ef7c7 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Fri, 5 Aug 2022 07:30:15 +0200
Subject: [PATCH] RobotUnit/KinematicSubUnit: +getDebugInfo

---
 .../RobotUnit/Units/KinematicSubUnit.cpp      | 21 +++++++++++++++++++
 .../units/RobotUnit/Units/KinematicSubUnit.h  |  3 +++
 2 files changed, 24 insertions(+)

diff --git a/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.cpp b/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.cpp
index 0273f0cf6..490154fdd 100644
--- a/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.cpp
@@ -21,6 +21,7 @@
  */
 #include "KinematicSubUnit.h"
 
+#include <RobotAPI/interface/units/KinematicUnitInterface.h>
 #include <RobotAPI/libraries/RobotStatechartHelpers/KinematicUnitHelper.h>
 #include <RobotAPI/components/units/RobotUnit/RobotUnit.h>
 
@@ -392,6 +393,26 @@ Ice::StringSeq armarx::KinematicSubUnit::getJoints(const Ice::Current& c) const
     return getMapKeys(ang);
 }
 
+armarx::DebugInfo armarx::KinematicSubUnit::getDebugInfo(const Ice::Current& c) const
+{
+    std::lock_guard<std::mutex> guard {dataMutex};
+    
+    armarx::DebugInfo debugInfo
+    {
+        .jointModes = ctrlModes,
+        .jointAngles = ang,
+        .jointVelocities = vel,
+        .jointAccelerations = acc,
+        .jointTorques = motorCurrents,
+        .jointCurrents = motorCurrents,
+        .jointMotorTemperatures = motorTemperatures,
+        .jointStatus = statuses
+    };
+
+    return debugInfo;
+}
+
+
 armarx::NJointControllerPtr armarx::KinematicSubUnit::ActuatorData::getController(armarx::ControlMode c) const
 {
     switch (c)
diff --git a/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.h b/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.h
index 2698240de..92a6caf3d 100644
--- a/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.h
+++ b/source/RobotAPI/components/units/RobotUnit/Units/KinematicSubUnit.h
@@ -85,6 +85,9 @@ namespace armarx
         NameValueMap   getJointVelocities(const Ice::Current&) const override;
         Ice::StringSeq getJoints(const Ice::Current& c)        const override;
 
+        DebugInfo getDebugInfo(const Ice::Current& c = Ice::emptyCurrent) const override;
+
+
         void onInitKinematicUnit()  override {}
         void onStartKinematicUnit() override {}
         void onExitKinematicUnit()  override {}
-- 
GitLab