diff --git a/Aircraft.proto b/Aircraft.proto new file mode 100644 index 0000000..5c47705 --- /dev/null +++ b/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 +} diff --git a/AircraftReport.proto b/AircraftReport.proto new file mode 100644 index 0000000..53577d0 --- /dev/null +++ b/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 +} diff --git a/AircraftSchedule.proto b/AircraftSchedule.proto new file mode 100644 index 0000000..0dafbaa --- /dev/null +++ b/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 +} diff --git a/BaseTypes.proto b/BaseTypes.proto new file mode 100644 index 0000000..02a14f3 --- /dev/null +++ b/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 +}