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

Add query and data ice types

parent 0e57dbda
No related branches found
No related tags found
1 merge request!94ArMem Queries
......@@ -107,6 +107,10 @@ set(SLICE_FILES
armem/MemoryInterface.ice
armem/MemoryNameSystemInterface.ice
armem/query.ice
armem/query/query.ice
armem/query/data.ice
components/ObstacleAvoidance/ObstacleAvoidanceInterface.ice
components/ObstacleAvoidance/ObstacleDetectionInterface.ice
components/ObstacleAvoidance/DSObstacleAvoidanceInterface.ice
......
#pragma once
#include <RobotAPI/interface/armem/query/data.ice>
#include <RobotAPI/interface/armem/query/query.ice>
#pragma once
#include <RobotAPI/interface/aron.ice>
module armarx
{
module armem
{
// WIP
module data
{
/// Ice Twin of `armarx::armem::EntityMetadata`.
struct EntityMetadata
{
long timeCreatedMicroSeconds;
long timeSentMicroSeconds;
long timeArrivedMicroSeconds;
float confidence = 1.0;
};
/// Ice Twin of `armarx::armem::EntityData`.
struct EntityData
{
int index;
aron::data::AronData data;
EntityMetadata metadata;
};
sequence<EntityData> EntityDataSeq;
/// Ice Twin of `armarx::armem::EntitySnapshot`.
struct EntitySnapshot
{
long timeMicroSeconds;
EntityDataSeq instances;
};
dictionary<long, EntitySnapshot> EntityHistory;
/// Ice Twin of `armarx::armem::Entity`.
struct Entity
{
string name;
EntityHistory history;
};
dictionary<string, Entity> EntityDict;
/// Ice Twin of `armarx::armem::ProviderSegment`.
struct ProviderSegment
{
string name;
EntityDict entities;
};
dictionary<string, ProviderSegment> ProviderSegmentDict;
/// Ice Twin of `armarx::armem::CoreSegment`.
struct CoreSegment
{
string name;
// aron::type::AronType type;
ProviderSegmentDict providerSegments;
};
dictionary<string, CoreSegment> CoreSegmentDict;
/// Ice Twin of `armarx::armem::Memory`.
struct Memory
{
string name;
// aron::type::AronType type;
CoreSegmentDict coreSegments;
};
dictionary<string, Memory> MemoryDict;
}
};
};
#pragma once
#include <RobotAPI/interface/aron.ice>
module armarx
{
module armem
{
// WIP
module query
{
module data
{
/// Which entity snapshots to get from an entity?
class EntityQuery
{
};
sequence<EntityQuery> EntityQuerySeq;
class AllEntitySnapshotsQuery extends EntityQuery
{
};
class LatestEntitySnapshotQuery extends EntityQuery
{
};
class EntitySnapshotsInRangeQuery extends EntityQuery
{
long minTimestamp = -1; // -1 for oldest
long maxTimestamp = -1; // -1 for latest
};
/// Which entities to get from a provider segment?
class ProviderSegmentQuery
{
EntityQuerySeq entityQueries;
};
sequence<ProviderSegmentQuery> ProviderSegmentQuerySeq;
class AllEntitiesQuery extends ProviderSegmentQuery
{
};
class SingleEntitiesQuery extends ProviderSegmentQuery
{
string entityName;
};
class RegexEntityQuery extends ProviderSegmentQuery
{
string entityNameRegex;
};
/// Which provider segments to get from a core segment?
class CoreSegmentQuery
{
ProviderSegmentQuerySeq providerSegmentQueries;
};
sequence<CoreSegmentQuery> CoreSegmentQuerySeq;
class AllProviderSegmentsQuery extends CoreSegmentQuery
{
};
class SingleProviderSegmentsQuery extends CoreSegmentQuery
{
string providerSegmentName;
};
/// Which core segments to get from a memory?
class MemoryQuery
{
CoreSegmentQuerySeq coreSegmentQueries;
};
class AllCoreSegmentsQuery extends MemoryQuery
{
};
class SingleCoreSegmentsQuery extends MemoryQuery
{
string coreSegmentName;
};
}
}
interface someReadingInterface
{
// data::EntitySnapshotQueryResultList getEntitySnapshots(data::EntitySnapshotQueryList queries);
};
};
};
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