35 defineOptionalProperty<std::uint64_t>(
36 "AdditionalObjectSchedulerCount", 10,
"Number of ObjectSchedulers to be added");
38 defineOptionalProperty<bool>(
39 "HeartbeatRequired",
true,
"Whether the Heatbeat is required.");
40 defineOptionalProperty<long>(
"HeartbeatMaxCycleMS", 100,
"The heartbeats cycle time");
41 defineOptionalProperty<long>(
42 "HeartbeatStartupMarginMS", 1000,
"Startup time for heartbeats");
43 defineOptionalProperty<std::string>(
"AggregatedRobotHealthTopicName",
44 "AggregatedRobotHealthTopic",
45 "Name of the AggregatedRobotHealthTopic");
68 return ModuleBase::Instance<Management>();
76 void _preOnInitRobotUnit();
77 void _postFinishControlThreadInitialization();
87 isRunning(
const Ice::Current& = Ice::emptyCurrent)
const override
93 void aggregatedHeartbeat(RobotHealthState overallHealthState,
const Ice::Current&)
override;
96 isSimulation(
const Ice::Current& = Ice::emptyCurrent)
const override
106 std::int64_t additionalObjectSchedulerCount{0};
107 std::int64_t controlLoopStartTime{0};
108 std::int64_t heartbeatStartupMarginMS{0};
109 std::atomic_bool heartbeatRequired{
false};
110 std::atomic_long heartbeatMaxCycleMS{100};
111 std::atomic_long lastHeartbeat{0};