Skip to content
Snippets Groups Projects

Skill-Gui Stability and QOL

Merged Peter Albrecht requested to merge feature/skill-gui-stability into master
3 unresolved threads
2 files
+ 53
1
Compare changes
  • Side-by-side
  • Inline
Files
2
#include "SkillManagerWrapper.h"
#include <mutex>
#include <optional>
#include <SimoxUtility/algorithm/string/string_tools.h>
@@ -241,6 +242,39 @@ namespace armarx::skills::gui
// notify registered widgets of update
emit updateAvailable(filterUpdate(snapshot));
}
std::vector<Parameters> SkillManagerWrapper::getParameterHistoryForSkill(const skills::SkillID& sid)
{
if (not this->skillParameterExecutionHistory.contains(sid))
{
return {};
}
return this->skillParameterExecutionHistory[sid];
}
void SkillManagerWrapper::addParametersToHistory(const skills::SkillID& sid, const Parameters& params)
{
if (not this->skillParameterExecutionHistory.contains(sid))
{
// no history exists for this skill. Assign new
this->skillParameterExecutionHistory.insert({sid, {params}});
}
else
{
// history already exists. Append to list
this->skillParameterExecutionHistory[sid].emplace_back(params);
}
}
std::optional<Parameters> SkillManagerWrapper::getLatestParametersForSkill(const skills::SkillID& sid)
{
auto parameterList = getParameterHistoryForSkill(sid);
if (parameterList.empty())
{
return std::nullopt;
}
return parameterList.back();
}
const std::optional<ProviderID>
SkillManagerWrapper::findFirstProvider(SkillMap const& map, SkillID const& skillId)
@@ -267,7 +301,7 @@ namespace armarx::skills::gui
}
SkillMap
SkillManagerWrapper::getSkills()
SkillManagerWrapper::getSkillsFiltered()
{
std::scoped_lock l(mutex_snapshot);
@@ -275,6 +309,13 @@ namespace armarx::skills::gui
return filtered.skills;
}
SkillMap SkillManagerWrapper::getSkills()
{
std::scoped_lock l(mutex_snapshot);
return snapshot.skills;
}
StatusMap
SkillManagerWrapper::getExecutions()
@@ -384,6 +425,7 @@ namespace armarx::skills::gui
.parameters = params};
ARMARX_CHECK(skillId.isFullySpecified()); // sanity check
ARMARX_IMPORTANT << "Executing skill from GUI: " << skillId << ".";
try
Loading