Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • sw/armarx/robot-api
  • uwkce_singer/robot-api
  • untcg_hofmann/robot-api
  • ulqba_korosakov/RobotAPI
4 results
Show changes
Showing
with 252 additions and 141 deletions
......@@ -85,7 +85,7 @@ namespace armarx::armem::robot_state
toAron(aronDescription, description);
update.instancesData = {aronDescription.toAron()};
update.timeCreated = timestamp;
update.referencedTime = timestamp;
ARMARX_DEBUG << "Committing " << update << " at time " << timestamp;
armem::EntityUpdateResult updateResult = memoryWriter.commit(update);
......@@ -129,7 +129,7 @@ namespace armarx::armem::robot_state
}
update.instancesData = {aronTransform.toAron()};
update.timeCreated = timestamp;
update.referencedTime = timestamp;
ARMARX_DEBUG << "Committing " << update << " at time " << timestamp;
armem::EntityUpdateResult updateResult = memoryWriter.commit(update);
......@@ -163,7 +163,7 @@ namespace armarx::armem::robot_state
aronProprioception.joints.position = jointMap;
update.instancesData = {aronProprioception.toAron()};
update.timeCreated = timestamp;
update.referencedTime = timestamp;
ARMARX_DEBUG << "Committing " << update << " at time " << timestamp;
armem::EntityUpdateResult updateResult = memoryWriter.commit(update);
......
......@@ -98,7 +98,7 @@ namespace armarx::armem::client::robot_state::localization
armem::EntityUpdate update;
update.entityID = entityID;
update.timeCreated = timestamp;
update.referencedTime = timestamp;
arondto::Transform aronTransform;
toAron(aronTransform, transform);
......
......@@ -58,7 +58,7 @@ namespace armarx::armem::server::robot_state::description
EntityUpdate update;
update.entityID = providerID.withEntityName("description");
update.timeArrived = update.timeCreated = update.timeSent = now;
update.arrivedTime = update.referencedTime = update.sentTime = now;
arondto::RobotDescription dto;
robot::toAron(dto, robotDescription);
......
......@@ -187,7 +187,7 @@ namespace armarx::armem::server::robot_state::localization
EntityUpdate update;
update.entityID = providerID.withEntityName(transform.header.parentFrame + "," + transform.header.frame);
update.timeArrived = update.timeCreated = update.timeSent = timestamp;
update.arrivedTime = update.referencedTime = update.sentTime = timestamp;
arondto::Transform aronTransform;
toAron(aronTransform, transform);
......
......@@ -159,7 +159,7 @@ namespace armarx::armem::server::robot_state::proprioception
up.entityID = properties.robotUnitProviderID.withEntityName(
properties.robotUnitProviderID.providerSegmentName);
up.entityID.coreSegmentName =::armarx::armem::robot_state::constants::proprioceptionCoreSegment;
up.timeCreated = data.timestamp;
up.referencedTime = data.timestamp;
up.instancesData = {data.proprioception};
}
......@@ -169,7 +169,7 @@ namespace armarx::armem::server::robot_state::proprioception
up.entityID = properties.robotUnitProviderID.withEntityName(
properties.robotUnitProviderID.providerSegmentName);
up.entityID.coreSegmentName = ::armarx::armem::robot_state::constants::exteroceptionCoreSegment;
up.timeCreated = data.timestamp;
up.referencedTime = data.timestamp;
up.instancesData = {data.exteroception};
}
......
......@@ -13,6 +13,7 @@ armarx_add_library(
RobotAPI::armem_server
RobotAPI::skills
aronjsonconverter
aroncommonconverter
SOURCES
./aron_conversions.cpp
......
......@@ -31,11 +31,11 @@ The memory should look like the following:
</ObjectChild>
<ObjectChild key='timeoutMs'>
<long />
<int64 />
</ObjectChild>
<ObjectChild key='acceptedType'>
<string /> <!-- TODO REPLACE! -->
<AnyObject shared_ptr="1" />
</ObjectChild>
</Object>
......
......@@ -4,6 +4,7 @@
#include <SimoxUtility/algorithm/string.h>
#include <RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h>
#include <RobotAPI/libraries/aron/converter/common/DatatypeConverter.h>
#include <RobotAPI/libraries/armem_skills/aron/Skill.aron.generated.h>
......@@ -43,13 +44,19 @@ namespace armarx::skills::segment
if (desc.acceptedType)
{
auto t = aron::type::Object::FromAronObjectDTO(desc.acceptedType);
skillDescription.acceptedType = aron::converter::AronNlohmannJSONConverter::ConvertToNlohmannJSON(t).dump(2);
aron::converter::DatatypeConverter c;
aron::type::visit(c, t);
skillDescription.acceptedType = aron::data::Dict::DynamicCastAndCheck(c.latest);
}
armem::Commit commit;
auto& entityUpdate = commit.add();
entityUpdate.confidence = 1.0;
entityUpdate.timeCreated = armem::Time::Now();
entityUpdate.referencedTime = armem::Time::Now();
entityUpdate.sentTime = armem::Time::Now();
entityUpdate.arrivedTime = armem::Time::Now();
entityUpdate.instancesData = {skillDescription.toAron()};
entityUpdate.entityID = provId.withEntityName(skillDescription.skillName);
......
......@@ -54,7 +54,7 @@ namespace armarx::skills::segment
armem::Commit comm;
auto& entityUpdate = comm.add();
entityUpdate.confidence = 1.0;
entityUpdate.timeCreated = armem::Time::Now();
entityUpdate.referencedTime = armem::Time::Now();
entityUpdate.instancesData = { aron };
entityUpdate.entityID = commitId;
......
......@@ -66,7 +66,7 @@ namespace armarx::skills::segment
entityUpdate.entityID = skillExecutionMemID;
entityUpdate.instancesData = { aron };
entityUpdate.confidence = 1.0;
entityUpdate.timeCreated = armem::Time::Now();
entityUpdate.referencedTime = armem::Time::Now();
}
{
......@@ -79,7 +79,7 @@ namespace armarx::skills::segment
entityUpdate.entityID = skillExecutionMemID;
entityUpdate.instancesData = { aron };
entityUpdate.confidence = 1.0;
entityUpdate.timeCreated = armem::Time::Now();
entityUpdate.referencedTime = armem::Time::Now();
}
......
......@@ -31,7 +31,7 @@ namespace armarx::skills::segment
armem::EntityUpdate update;
update.entityID = segmentPtr->id().withEntityName(entityName);
update.timeCreated = transitionTime;
update.referencedTime = transitionTime;
skills::arondto::Statechart::Transition data;
armem::toAron(data, t);
update.instancesData.push_back(data.toAron());
......
......@@ -63,7 +63,7 @@ namespace armarx::armem::server::systemstate::segment
EntityUpdate update;
update.entityID = providerId.withEntityName("CurrentCpuLoad");
update.confidence = 1.0;
update.timeCreated = armem::Time::Now();
update.referencedTime = armem::Time::Now();
update.instancesData = { data };
segmentPtr->update(update);
......
......@@ -54,7 +54,7 @@ namespace armarx::armem::server::systemstate::segment
EntityUpdate update;
update.entityID = providerId.withEntityName("CurrentMemoryLoad");
update.confidence = 1.0;
update.timeCreated = armem::Time::Now();
update.referencedTime = armem::Time::Now();
update.instancesData = { data };
segmentPtr->update(update);
......
......@@ -91,7 +91,7 @@ namespace armarx::armem::vision::laser_scanner_features::client
ARMARX_TRACE;
update.instancesData = {dto.toAron()};
update.timeCreated = timestamp;
update.referencedTime = timestamp;
ARMARX_DEBUG << "Committing " << update << " at time " << timestamp;
......
......@@ -41,7 +41,7 @@ namespace armarx::armem::vision::occupancy_grid::client
dict->addElement("grid", toAron(grid.grid));
update.instancesData = {dict};
update.timeCreated = iceTimestamp;
update.referencedTime = iceTimestamp;
ARMARX_DEBUG << "Committing " << update << " at time " << iceTimestamp;
armem::EntityUpdateResult updateResult = memoryWriter().commit(update);
......
......@@ -76,10 +76,18 @@ namespace armarx::aron::codegenerator
std::vector<MetaEnumPtr> typeEnums;
std::string producerName;
std::vector<codegenerator::WriterInfo> dataWriters;
std::vector<codegenerator::ReaderInfo> dataReaders;
std::vector<codegenerator::StaticReaderInfo> staticDataReaders;
std::vector<codegenerator::WriterInfo> initialTypeWriters;
std::vector<codegenerator::WriterInfo> dictDataWriters;
std::vector<codegenerator::WriterInfo> intEnumDataWriters;
std::vector<codegenerator::ReaderInfo> dictDataReaders;
std::vector<codegenerator::ReaderInfo> intEnumDataReaders;
std::vector<codegenerator::StaticReaderInfo> staticDictDataReaders;
std::vector<codegenerator::StaticReaderInfo> staticIntEnumDataReaders;
std::vector<codegenerator::WriterInfo> initialDictTypeWriters;
std::vector<codegenerator::WriterInfo> initialIntEnumTypeWriters;
std::vector<std::string> additionalIncludes;
};
}
......@@ -317,7 +317,7 @@ namespace armarx::aron::codegenerator::cpp
doc << "@brief " << info.methodName << "() - This method returns a new data from the member data types using a writer implementation. \n";
doc << "@return - the result of the writer implementation";
CppMethodPtr m = CppMethodPtr(new CppMethod(info.returnType + " " + info.methodName + "() const", doc.str()));
CppMethodPtr m = CppMethodPtr(new CppMethod(info.returnType + " " + info.methodName + "() const" + (info.override ? " override" : ""), doc.str()));
m->addLine(info.writerClassType + " writer;");
m->addLine("return " + info.enforceConversion + "(this->write(writer))" + info.enforceMemberAccess + ";");
......@@ -331,7 +331,7 @@ namespace armarx::aron::codegenerator::cpp
doc << "@brief " << info.methodName << " - This method sets the struct members to new values given in a reader implementation. \n";
doc << "@return - nothing";
CppMethodPtr m = CppMethodPtr(new CppMethod("void " + info.methodName + "(const " + info.argumentType + "& input)", doc.str()));
CppMethodPtr m = CppMethodPtr(new CppMethod("void " + info.methodName + "(const " + info.argumentType + "& input)" + (info.override ? " override" : ""), doc.str()));
m->addLine(info.readerClassType + " reader;");
m->addLine("this->read(reader, " + info.enforceConversion + "(input)" + info.enforceMemberAccess + ");");
......@@ -395,9 +395,9 @@ namespace armarx::aron::codegenerator::cpp
return {field};
}
std::pair<std::vector<std::pair<std::string, std::string>>, bool> Generator::getCtorInitializers(const std::string&) const
std::pair<std::vector<std::pair<std::string, std::string>>, bool> Generator::getCtorInitializers(const std::string& name) const
{
return {{}, false};
return {{{name, "{}"}}, false};
}
CppBlockPtr Generator::getCtorBlock(const std::string&) const
......@@ -408,7 +408,7 @@ namespace armarx::aron::codegenerator::cpp
std::pair<std::vector<std::pair<std::string, std::string>>, bool> Generator::getCopyCtorInitializers(const std::string& name) const
{
const auto& t = getType();
if (t.getMaybe() == type::Maybe::UNIQUE_PTR || t.getMaybe() == type::Maybe::RAW_PTR)
if (t.getMaybe() == type::Maybe::UNIQUE_PTR) // unique ptrs cant be copied
{
return {{{name, ARON_OTHER_ACCESSOR + "." + name + " ? " + resolveMaybeGenerator("*" + ARON_OTHER_ACCESSOR + "." + name) + " : nullptr"}}, true};
}
......
......@@ -55,6 +55,8 @@ namespace armarx::aron::codegenerator::cpp::generator
// add legacy typedef
fields.push_back(std::make_shared<CppField>("using", std::string(IMPL_ENUM), simox::alg::to_lower(className) + "_details::Enum", "Legacy typedef of enum"));
ARMARX_CHECK(type.getAcceptedValueMap().size() > 0);
enum_to_name << "{" << std::endl;
name_to_enum << "{" << std::endl;
enum_to_value << "{" << std::endl;
......@@ -81,7 +83,7 @@ namespace armarx::aron::codegenerator::cpp::generator
fields.push_back(std::make_shared<CppField>("static inline const std::map<" + std::string(IMPL_ENUM) + ", int>", "EnumToValueMap", enum_to_value.str(), "Mapping enum values to a int value"));
fields.push_back(std::make_shared<CppField>("static inline const std::map<int, " + std::string(IMPL_ENUM) + ">", "ValueToEnumMap", value_to_enum.str(), "Mapping int values to a enum"));
fields.push_back(std::make_shared<CppField>(std::string(IMPL_ENUM), "value", "", "The current value of the enum object"));
fields.push_back(std::make_shared<CppField>(std::string(IMPL_ENUM), "value", type.getAcceptedValueNames()[0], "The current value of the enum object"));
return fields;
}
......@@ -162,11 +164,6 @@ namespace armarx::aron::codegenerator::cpp::generator
return c;
}*/
std::pair<std::vector<std::pair<std::string, std::string>>, bool> IntEnumClass::getCopyCtorInitializers(const std::string&) const
{
return {{{"value", ARON_OTHER_ACCESSOR + ".value"}}, false};
}
CppCtorPtr IntEnumClass::toEnumCtor(const std::string& name) const
{
CppCtorPtr c = std::make_shared<CppCtor>(name + "(const " + std::string(IMPL_ENUM) + " e)");
......
......@@ -43,8 +43,6 @@ namespace armarx::aron::codegenerator::cpp::generator
// virtual implementations
std::vector<CppFieldPtr> getPublicVariableDeclarations(const std::string&) const final;
std::pair<std::vector<std::pair<std::string, std::string>>, bool> getCopyCtorInitializers(const std::string&) const final;
CppBlockPtr getResetHardBlock(const std::string& cppAccessor) const final;
CppBlockPtr getResetSoftBlock(const std::string& cppAccessor) const final;
CppBlockPtr getWriteTypeBlock(const std::string& typeAccessor, const std::string& cppAccessor, const Path&, std::string& variantAccessor) const final;
......