Skip to content
Snippets Groups Projects
SkillExecutionRequestSegment.cpp 3.01 KiB
Newer Older
Fabian Tërnava's avatar
Fabian Tërnava committed
#include "SkillExecutionRequestSegment.h"

#include <SimoxUtility/algorithm/string.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/json/NLohmannJSONConverter.h>
Fabian Tërnava's avatar
Fabian Tërnava committed

namespace armarx::skills::segment
{

    SkillExecutionRequestCoreSegment::SkillExecutionRequestCoreSegment(
        armem::server::MemoryToIceAdapter& iceMemory) :
        Base(iceMemory, CoreSegmentName, skills::arondto::SkillExecutionRequest::ToAronType())
    void
    SkillExecutionRequestCoreSegment::defineProperties(PropertyDefinitionsPtr defs,
                                                       const std::string& prefix)
        this->setDefaultMaxHistorySize(10);
        Base::defineProperties(defs, prefix);
    void
    SkillExecutionRequestCoreSegment::init()
Fabian Tërnava's avatar
Fabian Tërnava committed
    {
        Base::init();
    }

    skills::SkillExecutionRequest
    SkillExecutionRequestCoreSegment::convertCommit(const aron::data::dto::DictPtr& commitData)
        // convert ice commitData to aron
        auto commitDataAron = std::make_shared<aron::data::Dict>(commitData);

        // we got a skill execution request
        skills::arondto::SkillExecutionRequest request;
        request.fromAron(commitDataAron);

        skills::SkillExecutionRequest info{
            .skillId = SkillID{.providerId = ProviderID{.providerName = ""}, .skillName = ""},
            .executorName = ""};
    void
    SkillExecutionRequestCoreSegment::addSkillExecutionRequest(
        const skills::SkillExecutionRequest& info)
        // override directly execution to add a request to the memory
        armem::Commit comm;

        skills::arondto::SkillExecutionRequest request;
Fabian Tërnava's avatar
Fabian Tërnava committed
        {
            auto& entityUpdate = comm.add();

            armem::MemoryID skillExecutionMemID = id();
            skillExecutionMemID.providerSegmentName = request.skillId.providerId.providerName;
            skillExecutionMemID.entityName = request.skillId.skillName;
Fabian Tërnava's avatar
Fabian Tërnava committed

            entityUpdate.entityID = skillExecutionMemID;
Fabian Tërnava's avatar
Fabian Tërnava committed
            entityUpdate.confidence = 1.0;
Fabian Tërnava's avatar
Fabian Tërnava committed
            entityUpdate.referencedTime = armem::Time::Now();
Fabian Tërnava's avatar
Fabian Tërnava committed
        }

        {
            auto& entityUpdate = comm.add();

            armem::MemoryID skillExecutionMemID = id();
            skillExecutionMemID.providerSegmentName = "All Skill Execution Requests";
            skillExecutionMemID.entityName = "All Skill Execution Requests";

            entityUpdate.entityID = skillExecutionMemID;
Fabian Tërnava's avatar
Fabian Tërnava committed
            entityUpdate.confidence = 1.0;
Fabian Tërnava's avatar
Fabian Tërnava committed
            entityUpdate.referencedTime = armem::Time::Now();
} // namespace armarx::skills::segment