Browse Source

define the first version of the protocol buffers

Sven Czarnian 3 years ago
parent
commit
2f7a1d1e19
4 changed files with 62 additions and 0 deletions
  1. 19 0
      Aircraft.proto
  2. 13 0
      AircraftReport.proto
  3. 12 0
      AircraftSchedule.proto
  4. 18 0
      BaseTypes.proto

+ 19 - 0
Aircraft.proto

@@ -0,0 +1,19 @@
+syntax = "proto3";
+package vatger.aman;
+
+message Aircraft {
+    enum EngineType {
+        UNKNOWN   = 0;
+        ELECTRIC  = 1;
+        TURBOPROB = 2;
+        JET       = 3;
+    }
+
+    string     callsign    = 1; // aircraft's callsign
+    string     airline     = 2; // corresponding airline
+    string     type        = 3; // aircraft ICAO type
+    string     wtc         = 4; // WTC
+    string     wakeRecat   = 5; // wake recatogization category
+    Int32      engineCount = 6; // number of engines
+    EngineType engineType  = 7; // engine type
+}

+ 13 - 0
AircraftReport.proto

@@ -0,0 +1,13 @@
+syntax = "proto3";
+package vatger.aman;
+
+import "Aircraft.proto";
+import "BaseTypes.proto";
+
+message AircraftReport {
+    Aircraft   aircraft           = 1; // aircraft information
+    string     initialApproachFix = 2; // last waypoint of the route
+    Coordinate position           = 3; // current WGS84 position
+    Dynamics   dynamics           = 4; // current aircraft dynamics
+    Time       timeAtIAF          = 5; // UTC time when aircraft is at IAF
+}

+ 12 - 0
AircraftSchedule.proto

@@ -0,0 +1,12 @@
+syntax = "proto3";
+package vatger.aman;
+
+import "Aircraft.proto";
+import "BaseTypes.proto";
+
+message AircraftSchedule {
+    Aircraft aircraft       = 1; // aircraft information
+    string   arrivalRoute   = 2; // planned arrival route
+    string   arrivalRunway  = 3; // planned arrival runway
+    Time     reachIafAtTime = 4; // UTC time when the aircraft needs to pass IAF
+}

+ 18 - 0
BaseTypes.proto

@@ -0,0 +1,18 @@
+syntax = "proto3";
+package vatger.aman;
+
+message Coordinate {
+    string latitude  = 1; // WGS84 latitude in degrees
+    string longitude = 2; // WGS84 longitude in degrees
+}
+
+message Dynamics {
+    int32 groundSpeed   = 1; // given in knots
+    int32 altitude      = 2; // given in feet
+    int32 verticalSpeed = 3; // given in feet/min
+}
+
+message Time {
+    int32 hour   = 1; // hours in 24-format
+    int32 minute = 2; // minutes
+}