Select Git revision
SimpleScene.proto
SimpleScene.proto 4.63 KiB
syntax = "proto3";
package ipos.models;
message IposConfigWrapper { // wrapper-message for configuration-topic
repeated IposFrameConfig frames = 1;
repeated IposObject objects = 2; // an object must be either in this list
repeated IposObjectConfig objectConfigs = 3; // or in this list, not in both
repeated POI pois = 4;
repeated RefSystem refSystems = 5;
repeated IposMonitoringRequest monitoringRequests = 6;
}
message IposObjectConfig {
string agentId = 1; // unique for each object, but there may be multiple positioning sensors for that object
string sensorId = 2; // unique (each sensor localizes a single object)
string agentType = 3; // CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
string sensorType = 4; // BLUETOOTH, UWB, NFC, RFID, IMU...
}
// note: IposObjectConfigs are used to register sensors. Beacon-positions are POIs and should be sent to sensor after registration. Bluetooth/UWB sensor need to know a reference system id. All Beacon-position sent to the Bluetooth/UWB sensor should have the same reference system id
message IposPositionEvent {
repeated IposObject object = 1;
string type = 2; // deprecated may be ExitNotification or EntryNotification
// repeated IposZoneDescriptor zoneDescriptors = 2; // contains information about all zones that this position belongs to
}
message IposZoneDescriptor {
string zoneId = 1;
string type = 2; // may be ExitNotification or EntryNotification
}
message IposObject {
string id = 1; // unique for each object, but there may be multiple sensors
string sensorId = 2; //unique
string type = 3; // Applications may send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
string sensorType = 4; // BLUETOOTH, UWB, NFC, RFID, IMU
IposPosition position = 5;
IposSimpleOrientation orientation = 6;
string lastPosUpdate = 7; // https://en.wikipedia.org/wiki/ISO_8601
}
message IposFrameConfig {
string id = 1; // unique for every frame, used for relative coordinates
repeated IposSpace space = 2; // cube defining the extension, might be (0,0,0)
}
message RefSystem {
string id = 1;
IposPosition position = 2; // position of origin of RefSystem. May be relative or absolute
IposSimpleOrientation orientation = 3;
}
message IposMonitoringRequest {
string frameId = 1; // deprecated
// repeated string frameIds = 1;
float delta = 2; // min. change in position to trigger a position update, setting delta and updateFrequency to -1 cancels the (existing) monitoring task
float updateFrequency = 3; // defines how many times per second a PositionUpdateEvent is sent
repeated string type = 4; // object-types to be observed; CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
repeated string id = 5; // object-ids to be observed
string fusionStrategy = 6; // e.g., "accuracy" for accuracy-optimized monitoring if multiple positions sensors per agent
bool exit_notification = 7; // IPos will notify receiver when object has left the frame
repeated string properties = 8; // properties that shall be monitored: position or id or type
string monitoringTaskId = 9; // unique for each monitoringRequest. IPosFW uses this info for configuring the communication protocol, e.g., for selecting a specific topic for MQTT-communication; a monitoringRequest with the same monitoringTaskId like a previous request updates this request
string requestorProtocol = 10; // communication protocol, e.g., "mqtt"; Assumption: requestor = receiver
}
message IposMonitoringResponse {
string monitoringTaskId = 1;
string status = 2; // success- or error-Message