From 77d55a27b84cfc8251efac8297596a526ad8dad4 Mon Sep 17 00:00:00 2001 From: Raphael Grimm <raphael.grimm@kit.edu> Date: Fri, 25 Sep 2020 13:46:31 +0200 Subject: [PATCH] Turn the number of errors until a client gets removed from streaming into a property --- .../RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp | 4 +++- .../RobotUnit/RobotUnitModules/RobotUnitModuleLogging.h | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp index 0994896f9..8bcf83387 100644 --- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp +++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp @@ -322,6 +322,8 @@ namespace armarx::RobotUnitModule RobotUnitDataStreaming::DataStreamingDescription result; DataStreamingEntry& streamingEntry = rtDataStreamingEntry[receiver]; + getProperty(streamingEntry.rtStreamMaxClientErrors, + "RTLogging_StreamingDataMaxClientConnectionFailures"); ARMARX_INFO << "start data streaming to " << receiver->ice_getIdentity().name << ". Values: " << config.loggingNames; @@ -870,7 +872,7 @@ namespace armarx::RobotUnitModule { ARMARX_TRACE; ++connectionFailures; - if (connectionFailures > 10) ///TODO make property + if (connectionFailures > rtStreamMaxClientErrors) { stopStreaming = true; ARMARX_WARNING_S << "DataStreaming Receiver was not reachable for " diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.h b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.h index 2df9d88d2..6271ef178 100644 --- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.h +++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.h @@ -69,6 +69,10 @@ namespace armarx::RobotUnitModule "RTLogging_KeepIterationsForMs", 60 * 1000, "All logging data (SensorValues, ControlTargets, Messages) is keept for this duration " "and can be dunped in case of an error."); + + defineOptionalProperty<std::size_t>( + "RTLogging_StreamingDataMaxClientConnectionFailures", 10, + "If sending data to a client fails this often, the client is removed from the list"); } }; @@ -223,6 +227,7 @@ namespace armarx::RobotUnitModule bool onlyNewestFrame = false; std::size_t connectionFailures = 0; + std::size_t rtStreamMaxClientErrors = 0; std::vector<std::vector<OutVal>> sensDevs; std::vector<std::vector<std::vector<OutVal>>> ctrlDevs; -- GitLab