Skip to content
Snippets Groups Projects
Commit 404653f4 authored by FrankR's avatar FrankR
Browse files

.proto-files update

parent 164fab5a
Branches
No related tags found
No related merge requests found
syntax = "proto3"; 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 { message RFIDRawDataEvent {
string timestamp = 1; // https://en.wikipedia.org/wiki/ISO_8601 string timestamp = 1; // https://en.wikipedia.org/wiki/ISO_8601
string tagId = 2; string tagId = 2;
...@@ -66,9 +78,11 @@ message IMURawDataEvent { ...@@ -66,9 +78,11 @@ message IMURawDataEvent {
float z = 8; float z = 8;
} }
message PositionEvent { message SensorPositionEvent {
string timestamp = 1; string sensorId = 1; //unique
IposPosition position = 2; IposPosition position = 2;
IposSimpleOrientation orientation = 3;
string lastPosUpdate = 4; // https://en.wikipedia.org/wiki/ISO_8601
} }
message IposPosition { message IposPosition {
...@@ -82,3 +96,10 @@ message IposPoint3D { ...@@ -82,3 +96,10 @@ message IposPoint3D {
float y = 2; // pos in y direction in m float y = 2; // pos in y direction in m
float z = 3; // pos in z direction in m (up) 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
}
syntax = "proto3"; syntax = "proto3";
message IposConfig { message IposConfigWrapper { // wrapper-message for configuration-topic
repeated IposFrame frame = 1; repeated IposFrameConfig frame = 1;
repeated IposObject object = 2; // an object must be either in this list repeated IposObject object = 2; // an object must be either in this list
repeated IposObjectConfig objectConfig = 3; // or in this list, not in both repeated IposObjectConfig objectConfig = 3; // or in this list, not in both
repeated POI poi = 4;
repeated RefSystem refsystem = 5;
} }
message IposObjectConfig { message IposObjectConfig {
...@@ -12,22 +14,21 @@ message IposObjectConfig { ...@@ -12,22 +14,21 @@ message IposObjectConfig {
string agentType = 3; // CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER string agentType = 3; // CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
string sensorType = 4; // BLUETOOTH, UWB, NFC, RFID, IMU... 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 { message IposPositionEvent {
repeated IposObject object = 1;
}
message IposExitNotification {
repeated IposObject object = 1; repeated IposObject object = 1;
string type = 2; // may be ExitNotification or EntryNotification
} }
message IposObject { message IposObject {
string id = 1; // unique for each object, but there may be multiple sensors string id = 1; // unique for each object, but there may be multiple sensors
string sensorId = 2; //unique string sensorId = 2; //unique
string type = 3; // Applications may send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER string type = 3; // Applications may send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
IposPosition position = 4; string sensorType = 4; // BLUETOOTH, UWB, NFC, RFID, IMU
IposSimpleOrientation orientation = 5; IposPosition position = 5;
string lastPosUpdate = 6; // https://en.wikipedia.org/wiki/ISO_8601 IposSimpleOrientation orientation = 6;
string lastPosUpdate = 7; // https://en.wikipedia.org/wiki/ISO_8601
} }
message IposFrameConfig { message IposFrameConfig {
...@@ -43,26 +44,20 @@ message RefSystem { ...@@ -43,26 +44,20 @@ message RefSystem {
message IposMonitoringRequest { message IposMonitoringRequest {
string frameId = 1; 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 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 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 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 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 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 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 string requestorProtocol = 10; // communication protocol, e.g., "mqtt"; Assumption: requestor = receiver
} }
message IposMonitoringResponse { message IposMonitoringResponse {
string frameId = 1;
string monitoringTaskId = 2;
string error = 3;
}
message IposMonitoringUpdateRequest {
string monitoringTaskId = 1; 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 { message IposPosition {
...@@ -95,8 +90,3 @@ message IposSimpleOrientation { ...@@ -95,8 +90,3 @@ message IposSimpleOrientation {
float z = 3; // there is no orientation float z = 3; // there is no orientation
float w = 4; // available float w = 4; // available
} }
\ No newline at end of file
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment