diff --git a/interfaces/GenericSensor/GenericSensor.proto b/interfaces/GenericSensor/GenericSensor.proto index a47a7fd37672a1898c055659c153bcd0575a37f8..7b62e70b5c29299d65240c814ed05063e2bdb11d 100644 --- a/interfaces/GenericSensor/GenericSensor.proto +++ b/interfaces/GenericSensor/GenericSensor.proto @@ -1,5 +1,17 @@ syntax = "proto3"; +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; + repeated BarcodeRawDataEvent barcodeRawDataEvent = 3; + repeated OtherProxRawDataEvent otherProxRawDataEvent = 4; + repeated BluetoothRawDataEvent bluetoothRawDataEvent = 5; + repeated UWBRawDataEvent uwbRawDataEvent = 6; + repeated OtherBeaconRawDataEvent otherBeaconRawDataEvent = 7; + repeated IMURawDataEvent imuRawDataEvent = 8; + repeated SensorPositionEvent sensorPositionEvent = 9; +} + message RFIDRawDataEvent { string timestamp = 1; // https://en.wikipedia.org/wiki/ISO_8601 string tagId = 2; @@ -66,9 +78,11 @@ message IMURawDataEvent { float z = 8; } -message PositionEvent { - string timestamp = 1; - IposPosition position = 2; +message SensorPositionEvent { + string sensorId = 1; //unique + IposPosition position = 2; + IposSimpleOrientation orientation = 3; + string lastPosUpdate = 4; // https://en.wikipedia.org/wiki/ISO_8601 } message IposPosition { @@ -82,3 +96,10 @@ message IposPoint3D { 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 7414919f75f3bf8f0b07bcd0be60e11897e6266d..ee5dbb9926b620474b90a1a27357aa9995185a43 100644 --- a/interfaces/SimpleScene/SimpleScene.proto +++ b/interfaces/SimpleScene/SimpleScene.proto @@ -1,9 +1,11 @@ syntax = "proto3"; -message IposConfig { - repeated IposFrame frame = 1; +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; } message IposObjectConfig { @@ -12,22 +14,21 @@ message IposObjectConfig { 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 IposPositionUpdate { - repeated IposObject object = 1; -} - -message IposExitNotification { +message IposPositionEvent { repeated IposObject object = 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 - IposPosition position = 4; - IposSimpleOrientation orientation = 5; - string lastPosUpdate = 6; // https://en.wikipedia.org/wiki/ISO_8601 + 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 { @@ -43,26 +44,20 @@ message RefSystem { message IposMonitoringRequest { string frameId = 1; - float delta = 2; // min. change in position to trigger a position update + 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 requestorId = 9; // a requestor is, e.g., the OSM-App; FW requires this info to contact the requestor using a certain communication protocol. + 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 frameId = 1; - string monitoringTaskId = 2; - string error = 3; -} - -message IposMonitoringUpdateRequest { string monitoringTaskId = 1; - IposMonitoringRequest monitoringRequest = 2; // setting delta and updateFrequency to -1 cancels the monitoring task + string status = 2; // success- or error-Message } message IposPosition { @@ -94,9 +89,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 -} - -message SensorRegistrationRequest { - IposObjectConfig objectConfig = 1; // depending on sensorTyp a type-specific information will be sent -} -// note: 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 \ No newline at end of file +} \ No newline at end of file