SkillExecutionRequestSegment.cpp
Go to the documentation of this file.
2 
3 #include <SimoxUtility/algorithm/string.h>
4 
6 #include <RobotAPI/libraries/armem_skills/aron/Skill.aron.generated.h>
9 
11 {
12 
15  Base(iceMemory, CoreSegmentName, skills::arondto::SkillExecutionRequest::ToAronType())
16  {
17  }
18 
19  void
21  const std::string& prefix)
22  {
23  // No properties! (meaning no name and no max size)
24  }
25 
26  void
28  {
29  Base::init();
30  }
31 
34  {
35  // convert ice commitData to aron
36  auto commitDataAron = std::make_shared<aron::data::Dict>(commitData);
37 
38  // we got a skill execution request
39  skills::arondto::SkillExecutionRequest request;
40  request.fromAron(commitDataAron);
41 
43  .skillId = SkillID{.providerId = ProviderID{.providerName = ""}, .skillName = ""},
44  .executorName = ""};
45  armem::fromAron(request, info);
46  return info;
47  }
48 
49  void
52  {
53  // override directly execution to add a request to the memory
54  armem::Commit comm;
55 
56  skills::arondto::SkillExecutionRequest request;
57  armem::toAron(request, info);
58 
59  auto aron = request.toAron();
60 
61  {
62  auto& entityUpdate = comm.add();
63 
64  armem::MemoryID skillExecutionMemID = id();
65  skillExecutionMemID.providerSegmentName = request.skillId.providerId.providerName;
66  skillExecutionMemID.entityName = request.skillId.skillName;
67 
68  entityUpdate.entityID = skillExecutionMemID;
69  entityUpdate.instancesData = {aron};
70  entityUpdate.confidence = 1.0;
71  entityUpdate.referencedTime = armem::Time::Now();
72  }
73 
74  {
75  auto& entityUpdate = comm.add();
76 
77  armem::MemoryID skillExecutionMemID = id();
78  skillExecutionMemID.providerSegmentName = "All Skill Execution Requests";
79  skillExecutionMemID.entityName = "All Skill Execution Requests";
80 
81  entityUpdate.entityID = skillExecutionMemID;
82  entityUpdate.instancesData = {aron};
83  entityUpdate.confidence = 1.0;
84  entityUpdate.referencedTime = armem::Time::Now();
85  }
86 
87 
88  iceMemory.commit(comm);
89  }
90 } // namespace armarx::skills::segment
skills
This file is part of ArmarX.
armarx::skills::SkillExecutionRequest::skillId
skills::SkillID skillId
Definition: SkillExecutionRequest.h:33
armarx::armem::MemoryID::providerSegmentName
std::string providerSegmentName
Definition: MemoryID.h:52
armarx::armem::Commit
A bundle of updates to be sent to the memory.
Definition: Commit.h:89
armarx::armem::server::MemoryToIceAdapter
Helps connecting a Memory server to the Ice interface.
Definition: MemoryToIceAdapter.h:19
armarx::skills::segment::SkillExecutionRequestCoreSegment::SkillExecutionRequestCoreSegment
SkillExecutionRequestCoreSegment(armem::server::MemoryToIceAdapter &iceMemory)
Definition: SkillExecutionRequestSegment.cpp:13
armarx::core::time::DateTime::Now
static DateTime Now()
Definition: DateTime.cpp:55
armarx::skills::segment::SkillExecutionRequestCoreSegment::convertCommit
skills::SkillExecutionRequest convertCommit(const aron::data::dto::DictPtr &commitData)
Definition: SkillExecutionRequestSegment.cpp:33
armarx::armem::toAron
void toAron(arondto::MemoryID &dto, const MemoryID &bo)
Definition: aron_conversions.cpp:19
armarx::skills::ProviderID::providerName
std::string providerName
Definition: ProviderID.h:31
armarx::skills::SkillID::providerId
std::optional< ProviderID > providerId
Definition: SkillID.h:59
armarx::skills::segment::SkillExecutionRequestCoreSegment::init
void init()
Definition: SkillExecutionRequestSegment.cpp:27
NLohmannJSONConverter.h
armarx::skills::segment::SkillExecutionRequestCoreSegment::defineProperties
void defineProperties(PropertyDefinitionsPtr defs, const std::string &prefix)
Definition: SkillExecutionRequestSegment.cpp:20
armarx::skills::SkillExecutionRequest
Definition: SkillExecutionRequest.h:21
armarx::skills::ProviderID
Definition: ProviderID.h:15
armarx::armem::MemoryID
A memory ID.
Definition: MemoryID.h:47
aron_conversions.h
armarx::skills::segment
Definition: ExecutableSkillLibrarySegment.cpp:13
armarx::armem::server::segment::detail::SegmentBase< server::wm::CoreSegment >
armarx::armem::server::segment::SpecializedCoreSegment::init
virtual void init() override
Definition: SpecializedCoreSegment.cpp:49
armarx::armem::MemoryID::entityName
std::string entityName
Definition: MemoryID.h:53
MemoryToIceAdapter.h
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
armarx::armem::fromAron
void fromAron(const arondto::MemoryID &dto, MemoryID &bo)
Definition: aron_conversions.cpp:8
armarx::armem::Commit::add
EntityUpdate & add()
Definition: Commit.cpp:81
armarx::armem::server::segment::detail::SegmentBase< server::wm::CoreSegment >::iceMemory
MemoryToIceAdapter & iceMemory
Definition: SpecializedSegment.h:60
SkillExecutionRequestSegment.h
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::armem::server::segment::detail::SegmentBase< server::wm::CoreSegment >::id
MemoryID & id()
Definition: SpecializedSegment.h:35
armarx::skills::SkillID
Definition: SkillID.h:17
armarx::skills::segment::SkillExecutionRequestCoreSegment::addSkillExecutionRequest
void addSkillExecutionRequest(const skills::SkillExecutionRequest &info)
Definition: SkillExecutionRequestSegment.cpp:50
armarx::armem::server::MemoryToIceAdapter::commit
data::CommitResult commit(const data::Commit &commitIce, Time timeArrived)
Definition: MemoryToIceAdapter.cpp:112