From 855d2ff6cdba3d65b7bc9fb4347aae1c04966521 Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Thu, 13 Sep 2018 10:18:49 +0200
Subject: [PATCH] Add more verbose output to RobotUnitModuleControlThread

---
 .../RobotUnitModuleControlThread.cpp          | 28 +++++++++++++++----
 1 file changed, 23 insertions(+), 5 deletions(-)

diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp
index 78ef92cb4..5be64094f 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControlThread.cpp
@@ -272,11 +272,12 @@ namespace armarx
         {
             rtGetThreadTimingsSensorDevice().rtMarkRtHandleInvalidTargetsStart();
             bool oneIsInvalid = 0;
-            for (std::size_t i = 0; i < rtGetControlDevices().size(); ++i)
+            const auto& cdevs = rtGetControlDevices();
+            for (std::size_t i = 0; i < cdevs.size(); ++i)
             {
                 if (!rtGetActivatedJointControllers().at(i)->rtIsTargetVaild())
                 {
-                    ARMARX_ERROR << "INVALID TARGET: " << rtGetControlDevices().at(i)->getDeviceName();
+                    ARMARX_RT_LOGF_ERROR("INVALID TARGET for JointController (idx = %lu) '%s'", i, cdevs.at(i)->rtGetDeviceName().c_str());
                     rtDeactivateAssignedNJointControllerBecauseOfError(i, false);
                     oneIsInvalid = true;
                 }
@@ -322,6 +323,10 @@ namespace armarx
                     {
                         if (nJointCtrl->rtGetErrorState())
                         {
+                            ARMARX_RT_LOGF_ERROR(
+                                "NJointController '%s' requested deactivation while activating it",
+                                nJointCtrl->rtGetInstanceName().c_str()
+                            );
                             rtDeactivateNJointControllerBecauseOfError(nJointCtrlIndex, false);
                             activeControllersChanged = true;
                         }
@@ -332,16 +337,28 @@ namespace armarx
                         auto duration = TimeUtil::GetTime(true) - start;
                         if (nJointCtrl->rtGetErrorState())
                         {
+                            ARMARX_RT_LOGF_ERROR(
+                                "NJointController '%s' requested deactivation while running it",
+                                nJointCtrl->rtGetInstanceName().c_str()
+                            );
                             rtDeactivateNJointControllerBecauseOfError(nJointCtrlIndex, false);
                             activeControllersChanged = true;
                         }
                         if (static_cast<std::size_t>(duration.toMicroSeconds()) > nJointCtrl->rtGetNumberOfUsedControlDevices() * usPerDevUntilError)
                         {
-                            ARMARX_ERROR << deactivateSpam(5) << "The NJointController " << nJointCtrl->getClassName() << " took " << duration.toMicroSeconds() << " µs to run!";
+                            ARMARX_RT_LOGF_ERROR(
+                                "The NJointController '%s' took %ld µs to run!",
+                                nJointCtrl->rtGetInstanceName().c_str(),
+                                duration.toMicroSeconds()
+                            ).deactivateSpam(5);
                         }
                         else if (static_cast<std::size_t>(duration.toMicroSeconds()) > nJointCtrl->rtGetNumberOfUsedControlDevices() * usPerDevUntilWarn)
                         {
-                            ARMARX_WARNING << deactivateSpam(5) << "The NJointController " << nJointCtrl->getClassName() << " took " << duration.toMicroSeconds() << " µs to run!";
+                            ARMARX_RT_LOGF_WARNING(
+                                "The NJointController '%s' took %ld µs to run!",
+                                nJointCtrl->rtGetInstanceName().c_str(),
+                                duration.toMicroSeconds()
+                            ).deactivateSpam(5);
                         }
                     }
                 }
@@ -434,7 +451,7 @@ namespace armarx
                 ": no NJoint controller controls this device (name = "
                 << rtGetControlDevices().at(ctrlDevIndex)->getDeviceName()
                 << ", ControlMode = " << rtGetActivatedJointControllers().at(ctrlDevIndex)->getControlMode() << ")!" << "\n"
-                << VAROUT(ctrlDevIndex) << "\n"
+                << VAROUT(ctrlDevIndex) << "\nrtGetActivatedJointControllers\n"
                 << ARMARX_STREAM_PRINTER
             {
                 for (std::size_t i = 0; i < rtGetActivatedJointControllers().size(); ++i)
@@ -590,6 +607,7 @@ namespace armarx
 
         void ControlThread::rtCommitActivatedControllers()
         {
+            ARMARX_RT_LOGF_DEBUG("RT: activated controllers changed");
             ControlThreadDataBufferAttorneyForControlThread::CommitActivatedControllers(this);
         }
 
-- 
GitLab