Skip to content
Snippets Groups Projects
Select Git revision
  • d14c591919ed455faef3d6a9b97f291cb5fc54ef
  • main default protected
  • feature/extended-communication
3 results

SimpleScene.proto

Blame
  • 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