diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp index 0994896f9a3510a8c4ce0241d981d0dad2bf03cc..8bcf8338726c29094ada9aa81cc74a69812b7150 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 2df9d88d2d8d497d12985fca320c95a8ea0e5576..6271ef1784a4cd79e8e3b37addcb4e679e946bc2 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;