define the first version of the protocol buffers

This commit is contained in:
Sven Czarnian
2021-08-08 20:50:50 +02:00
parent d8219d8d8f
commit 2f7a1d1e19
4 changed files with 62 additions and 0 deletions

19
Aircraft.proto Normal file
View File

@@ -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
AircraftReport.proto Normal file
View File

@@ -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
AircraftSchedule.proto Normal file
View File

@@ -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
BaseTypes.proto Normal file
View File

@@ -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
}