Skip to content
Snippets Groups Projects
Commit da127e9e authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Add ice interface and conversion (ice file name not final)

parent b52535b7
No related branches found
No related tags found
Loading
......@@ -101,6 +101,7 @@ set(SLICE_FILES
aron.ice
armem.ice
armem/client.ice
test2.ice
components/ObstacleAvoidance/ObstacleAvoidanceInterface.ice
......
#pragma once
#include <RobotAPI/interface/aron.ice>
module armarx
{
module armem
{
module data
{
struct EntityUpdate
{
string entityID;
aron::AronDataList instancesData;
long timeCreatedMicroSeconds;
float importance;
long timeSentMicroSeconds;
};
sequence<EntityUpdate> EntityUpdateList;
struct Commit
{
EntityUpdateList updates;
};
}
interface ArMemMemoryInterface
{
string commit(data::Commit commit);
};
};
};
......@@ -15,6 +15,7 @@ set(LIB_FILES
core/Commit.cpp
core/MemoryID.cpp
core/Time.cpp
core/ice_conversions.cpp
error/ArmemError.cpp
......@@ -33,6 +34,7 @@ set(LIB_HEADERS
core/Commit.h
core/MemoryID.h
core/Time.h
core/ice_conversions.h
error/ArmemError.h
......
#include "ice_conversions.h"
namespace armarx
{
void armem::fromIce(const data::Commit& ice, Commit& commit)
{
commit.updates.clear();
for (const auto& ice_update : ice.updates)
{
EntityUpdate& update = commit.updates.emplace_back(EntityUpdate());
fromIce(ice_update, update);
}
}
void armem::toIce(data::Commit& ice, const Commit& commit)
{
ice.updates.clear();
for (const auto& update : commit.updates)
{
data::EntityUpdate& ice_update = ice.updates.emplace_back(data::EntityUpdate());
toIce(ice_update, update);
}
}
void armem::fromIce(const data::EntityUpdate& ice, EntityUpdate& update)
{
update.entityID = MemoryID::fromString(ice.entityID);
update.instancesData = ice.instancesData;
update.timeCreated = Time::microSeconds(ice.timeCreatedMicroSeconds);
update.importance = ice.importance;
update.timeSent = Time::microSeconds(ice.timeSentMicroSeconds);
}
void armem::toIce(data::EntityUpdate& ice, const EntityUpdate& update)
{
ice.entityID = update.entityID.str();
ice.instancesData = update.instancesData;
ice.timeCreatedMicroSeconds = update.timeCreated.toMicroSeconds();
ice.importance = update.importance;
ice.timeSentMicroSeconds = update.timeSent.toMicroSeconds();
}
}
#pragma once
#include <RobotAPI/interface/armem/client.h>
#include "Commit.h"
namespace armarx::armem
{
void fromIce(const data::Commit& ice, Commit& commit);
void toIce(data::Commit& ice, const Commit& commit);
void fromIce(const data::EntityUpdate& ice, EntityUpdate& update);
void toIce(data::EntityUpdate& ice, const EntityUpdate& update);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment