From 1fe5cf25a96dbec1295fd33a55c28de58bd5aee1 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Fri, 5 Aug 2022 07:29:08 +0200
Subject: [PATCH] kinematic unit interface: new method to get all data at once
 (to reduce number of required network calls)

---
 .../units/KinematicUnitInterface.ice          | 35 ++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/source/RobotAPI/interface/units/KinematicUnitInterface.ice b/source/RobotAPI/interface/units/KinematicUnitInterface.ice
index 8b7a24356..3cc99f54c 100644
--- a/source/RobotAPI/interface/units/KinematicUnitInterface.ice
+++ b/source/RobotAPI/interface/units/KinematicUnitInterface.ice
@@ -140,6 +140,24 @@ module armarx
 	/**
 	* Implements an interface to an KinematicUnit.
 	**/
+
+
+    struct DebugInfo
+    {
+        NameControlModeMap jointModes;
+
+        NameValueMap jointAngles;
+        NameValueMap jointVelocities;
+        NameValueMap jointAccelerations;
+
+        NameValueMap jointTorques;
+        NameValueMap jointCurrents;
+
+        NameValueMap jointMotorTemperatures;
+
+        NameStatusMap jointStatus;
+    };
+
     interface KinematicUnitInterface extends SensorActorUnitInterface
     {
         /**
@@ -223,7 +241,23 @@ module armarx
          * NYI
          */
         //void set Trajectory(...);
+
+
+        /**
+         * @brief This is a 'all-in-one' function to retrieve all info that the kinematic unit can provide.
+         * 
+         * This reduces the number of required network calls for, e.g., the KinematicUnitGui.
+         * 
+         * @return 
+         *
+         */
+        ["cpp:const"]
+        DebugInfo getDebugInfo();
     };
+
+
+    
+
 	/**
 	* Implements an interface to an KinematicUnitListener.
 	**/
@@ -303,4 +337,3 @@ module armarx
     };*/
 
 };
-
-- 
GitLab