Skip to content
Snippets Groups Projects
ExecutableSkillLibrarySegment.cpp 2.31 KiB
Newer Older
#include <SimoxUtility/algorithm/string.h>

#include <ArmarXCore/core/time/ice_conversions.h>

#include <RobotAPI/libraries/armem/server/MemoryToIceAdapter.h>
Fabian Tërnava's avatar
Fabian Tërnava committed
#include <RobotAPI/libraries/armem_skills/aron/Skill.aron.generated.h>
#include <RobotAPI/libraries/armem_skills/aron_conversions.h>
#include <RobotAPI/libraries/aron/converter/datatype/DatatypeConverterVisitor.h>
#include <RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h>
    ExecutableSkillLibraryCoreSegment::ExecutableSkillLibraryCoreSegment(
        armem::server::MemoryToIceAdapter& iceMemory) :
        Base(iceMemory, CoreSegmentName, skills::arondto::SkillDescription::ToAronType())
    void
    ExecutableSkillLibraryCoreSegment::defineProperties(PropertyDefinitionsPtr defs,
                                                        const std::string& prefix)
        this->setDefaultMaxHistorySize(10);
        Base::defineProperties(defs, prefix);
    void
    ExecutableSkillLibraryCoreSegment::init()
    {
        Base::init();
    ExecutableSkillLibraryCoreSegment::addSkillProvider(const skills::ProviderInfo& info)
Fabian Tërnava's avatar
Fabian Tërnava committed
        // add skills
        auto skills = info.providedSkills;
        auto provId = id().withProviderSegmentName(info.providerId.providerName);
            armarx::skills::arondto::SkillDescription skillDescription;
Fabian Tërnava's avatar
Fabian Tërnava committed
            armem::Commit commit;
            auto& entityUpdate = commit.add();
            entityUpdate.confidence = 1.0;
            entityUpdate.referencedTime = armem::Time::Now();
            entityUpdate.sentTime = armem::Time::Now();
            entityUpdate.arrivedTime = armem::Time::Now();
Fabian Tërnava's avatar
Fabian Tërnava committed
            entityUpdate.instancesData = {skillDescription.toAron()};
            entityUpdate.entityID = provId.withEntityName(d.skillId.skillName);
Fabian Tërnava's avatar
Fabian Tërnava committed

            // Commit data to memory and notify
            iceMemory.commit(commit);
        }
    void
    ExecutableSkillLibraryCoreSegment::removeSkillProvider(const std::string& providerName)

        // TODO also add info about removed provider to memory?
} // namespace armarx::skills::segment