diff --git a/interfaces/GenericSensor/GenericSensor.proto b/interfaces/GenericSensor/GenericSensor.proto index 7b62e70b5c29299d65240c814ed05063e2bdb11d..bff038ddbc540d50f8b0ba0ec9aaf5c1c9dd1f71 100644 --- a/interfaces/GenericSensor/GenericSensor.proto +++ b/interfaces/GenericSensor/GenericSensor.proto @@ -1,5 +1,9 @@ syntax = "proto3"; +package ipos.models; + +import "SimpleScene.proto"; + message SensorEventWrapper{ // mqtt-like protocols: just une kind of protobuf-message shall be sent over a topic, therefore wrapper-messages are used to encapsulate different kinds of protobuf-messages repeated RFIDRawDataEvent rfidRawDataEvent = 1; repeated NFCRawDataEvent nfcRawDataEvent = 2; @@ -85,21 +89,3 @@ message SensorPositionEvent { string lastPosUpdate = 4; // https://en.wikipedia.org/wiki/ISO_8601 } -message IposPosition { - string refSystemId = 1; // e.g., "WGS84" if absolute position; Ipos-FW should communicate ids of local reference systems to the position sensor during intialization - IposPoint3D point = 2; - float accuracy = 3; // object is with 95% probability within x metres of this point (gaussian distribution) -} - -message IposPoint3D { - float x = 1; // pos in x direction in m - float y = 2; // pos in y direction in m - float z = 3; // pos in z direction in m (up) -} - -message IposSimpleOrientation { - float x = 1; // quaternion notation - float y = 2; // if the quaternion is (0,0,0,0) - float z = 3; // there is no orientation - float w = 4; // available -} diff --git a/interfaces/SimpleScene/SimpleScene.proto b/interfaces/SimpleScene/SimpleScene.proto index ee5dbb9926b620474b90a1a27357aa9995185a43..79aa262ba9416e19aec32aa3f097b9e0a15e98d5 100644 --- a/interfaces/SimpleScene/SimpleScene.proto +++ b/interfaces/SimpleScene/SimpleScene.proto @@ -1,18 +1,21 @@ syntax = "proto3"; +package ipos.models; + message IposConfigWrapper { // wrapper-message for configuration-topic - repeated IposFrameConfig frame = 1; - repeated IposObject object = 2; // an object must be either in this list - repeated IposObjectConfig objectConfig = 3; // or in this list, not in both - repeated POI poi = 4; - repeated RefSystem refsystem = 5; + 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 id = 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... + string id = 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 @@ -38,26 +41,26 @@ message IposFrameConfig { } message RefSystem { - string id = 1; - IposPosition position = 2; // position of origin of RefSystem. May be relative or absolute + string id = 1; + IposPosition position = 2; // position of origin of RefSystem. May be relative or absolute } message IposMonitoringRequest { - string frameId = 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 + string frameId = 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 + string monitoringTaskId = 1; + string status = 2; // success- or error-Message } message IposPosition { @@ -73,9 +76,9 @@ message IposPoint3D { } message POI { // point-of-interest - string description = 1; // e.g., "tag" - map<string, string> data = 2; // e.g., "id" -> tag-id; "type" -> "nfc" - IposPosition position = 3; + string description = 1; // e.g., "tag" + map<string, string> data = 2; // e.g., "id" -> tag-id; "type" -> "nfc" + IposPosition position = 3; } message IposSpace { @@ -89,4 +92,4 @@ message IposSimpleOrientation { float y = 2; // if the quaternion is (0,0,0,0) float z = 3; // there is no orientation float w = 4; // available -} \ No newline at end of file +}