From 52da1262b05b0f8db68ad872dc890b5fc8874f05 Mon Sep 17 00:00:00 2001 From: Kilian Hofmann Date: Sun, 25 Sep 2022 22:31:05 +0200 Subject: [PATCH] Logbokk fligth type --- file/File Layout.txt | 80 --------------------------- file/include/logbook/logbook.hpp | 4 +- file/include/logbook/logbookEntry.hpp | 13 +++-- file/include/simdata/simDatabase.hpp | 2 +- xplugin/main.cpp | 1 + 5 files changed, 13 insertions(+), 87 deletions(-) delete mode 100644 file/File Layout.txt diff --git a/file/File Layout.txt b/file/File Layout.txt deleted file mode 100644 index b7000a8..0000000 --- a/file/File Layout.txt +++ /dev/null @@ -1,80 +0,0 @@ -VARIABLE STRING (>=3) -********************* -0 1 | 2 ... | -------+-------+ -LEN |STRING | -UINT16|CHAR* | - -LOGBOOK HEADER (28) -*********************************************************************************************************************************************** -0 1 2 3 4 | 5 | 6 7 | 8 9 10 11 | 12 13 14 15 | 16 17 18 19 | 20 21 22 23 | 24 25 26 27 | -------------------+-------+-------------+---------------------+-------------------+-------------------+-------------------+-------------------+ -IDENT |VERSION|TOTAL FLIGHTS|TOTAL TIME |TOTAL PTS |TOTAL FUEL |TOTAL DIST |RATE | -CHAR[5] |UINT8 |UINT16 |FLOAT32, Decimal, min|FLOAT32 |FLOAT32, kgs |FLOAT32, nm |FLOAT32, ft/min | - -FLIGHT PREAMBLE (24) -********************************************************************************************************************** -0 1 2 3 4 5 6 7 8 9 | 10 11 12 13 | 14 15 16 17 | 18 19 20 21 22 23 | ---------------------------------------+----------------------------+-------------------+-----------------------------+ -DATE |FLIGHT NUMBER |AIRCRAFT TYPE |AIRCRAFT REGISTRATION | -CHAR, DD.MM.YYYY |CHAR[4],[0-9][0-9A-z\0]{0,3}|CHAR[4], ICAO code |CHAR[6], D-[A-Z]{4} | - -TIMES (24) -************************************************************************************************************** -0 1 2 3 4 | 5 6 7 8 9 | 10 11 12 13 14 | 15 16 17 18 19 | 20 21 22 23 | -------------------+-------------------+------------------------+------------------------+--------------------+ -OFF BLOCK |TAKEOFF (OUT) |LANDING (ON) |ON BLOCK (IN) |TOTAL | -CHAR[5], HH:MM |CHAR[5], HH:MM |CHAR[5], HH:MM |CHAR[5], HH:MM |FLOAT32, Decimal min| - -FUELS (16) -********************************************************************* -0 1 2 3 | 4 5 6 7 | 8 9 10 11 | 12 13 14 15 | ---------------+---------------+-----------------+-------------------+ -TAXI OUT |IN FLIGHT |TAXI IN |TOTAL | -FLOAT32, kgs |FLOAT32, kgs |FLOAT32, kgs |FLOAT32, kgs | - -DISTANCES (16) -********************************************************************* -0 1 2 3 | 4 5 6 7 | 8 9 10 11 | 12 13 14 15 | ---------------+---------------+-----------------+-------------------+ -TAXI OUT |IN FLIGHT |TAXI IN |TOTAL | -FLOAT32, nm |FLOAT32, nm |FLOAT32, nm |FLOAT32, nm | - -LANDING (9) -******************************************* -0 1 2 3 | 4 | 5 6 7 8 | ----------------+----------+---------------+ -MAX RATE |TOUCHDOWNS|MAX G-FORCE | -FLOAT32, ft/min|CHAR |FLOAT32, g | - -FLIGHT POSTAMBLE (5) -********************* -0 1 2 3 | 5 | ---------------+---------+ -POINTS |FLAGS | -FLOAT32 |BITFIELD | - -FLAGS BITFIELD -********************************** -7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ----+---+---+---+---+---+---+-----+ -NIL|NIL|NIL|NIL|NIL|NIL|NIL|FILED| - -LOGBOOK FILE: -LOGBOOK HEADER -[ - FLIGHT PREAMBLE - VARIABLE STRING (DEPARTURE AIRPORT NAME AND CODE) - VARIABLE STRING (DEPARTURE GATE NAME) - VARIABLE STRING (DEPARTURE RUNWAY DESIGNATOR) - VARIABLE STRING (ARRIVAL AIRPORT NAME AND CODE) - VARIABLE STRING (ARRIVAL GATE NAME) - VARIABLE STRING (ARRIVAL RUNWAY DESIGNATOR) - TIMES - FUELS - DISTANCES - LANDING - VARIABLE STRING (RECORDING FILE NAME) - FLIGHT POSTAMBLE - VARIABLE STRING (FLIGHT RECORDING PATH RELATIVE TO LOGBOOK) -]0..n diff --git a/file/include/logbook/logbook.hpp b/file/include/logbook/logbook.hpp index 9c2eb09..d4cf131 100644 --- a/file/include/logbook/logbook.hpp +++ b/file/include/logbook/logbook.hpp @@ -35,6 +35,7 @@ namespace file inline void readVersion1(std::ifstream &in) { std::string date = readString(in, 10); + std::string flightType = readString(in, 1); std::string flightNumber = readString(in, 4); std::string aircraftType = readString(in, 4); std::string aircraftRegistration = readString(in, 6); @@ -65,6 +66,7 @@ namespace file std::uint8_t flags = read(in); this->addEntry(date, + flightType, flightNumber, aircraftType, aircraftRegistration, @@ -99,7 +101,7 @@ namespace file { std::ifstream in(BASE_DIRECTORY LOGBOOK, std::ifstream::binary); - std::string ident = readString(in, 5); + std::string ident = readString(in, 4); if (ident.compare(LOGBOOK_HEADER) != 0) { throw std::invalid_argument("Wrong file"); } diff --git a/file/include/logbook/logbookEntry.hpp b/file/include/logbook/logbookEntry.hpp index 3160001..20d7122 100644 --- a/file/include/logbook/logbookEntry.hpp +++ b/file/include/logbook/logbookEntry.hpp @@ -15,10 +15,10 @@ namespace file namespace logbook { /* - * Preamble (24) - * CHAR[10] | CHAR[4] | CHAR[4] | CHAR[6] - * ---------+---------------+----------+------------- - * DATE | FLIGHT NUMBER | AIRCRAFT | REGISTRATION + * Preamble (25) + * CHAR[10] | CHAR[1] | CHAR[4] | CHAR[4] | CHAR[6] + * ---------+-------------+---------------+----------+------------- + * DATE | FLIGHT TYPE | FLIGHT NUMBER | AIRCRAFT | REGISTRATION * Departure Airport Name (1...257) * UINT8 | CHAR[] @@ -89,6 +89,7 @@ namespace file { private: std::string date; + std::string flightType; std::string flightNumber; std::string aircraftType; std::string aircraftRegistration; @@ -120,6 +121,7 @@ namespace file public: inline LogbookEntry(std::string date, + std::string flightType, std::string flightNumber, std::string aircraftType, std::string aircraftRegistration, @@ -148,7 +150,7 @@ namespace file std::string recordingFilename, float points, std::uint8_t flags) - : date(date), flightNumber(flightNumber), + : date(date), flightType(flightType), flightNumber(flightNumber), aircraftType(aircraftType), aircraftRegistration(aircraftRegistration), departureAirport(departureAirport), departureGate(departureGate), @@ -170,6 +172,7 @@ namespace file inline void toFile(std::ofstream &out) const { writeString(out, this->date, 10); + writeString(out, this->flightType, 1); writeString(out, this->flightNumber, 4); writeString(out, this->aircraftType, 4); writeString(out, this->aircraftRegistration, 6); diff --git a/file/include/simdata/simDatabase.hpp b/file/include/simdata/simDatabase.hpp index b43d642..79c3dec 100644 --- a/file/include/simdata/simDatabase.hpp +++ b/file/include/simdata/simDatabase.hpp @@ -88,7 +88,7 @@ namespace file { std::ifstream in(BASE_DIRECTORY SIMDATABASE, std::ifstream::binary); - std::string ident = readString(in, 5); + std::string ident = readString(in, 4); if (ident.compare(SIMDATABASE_HEADER) != 0) { throw std::invalid_argument("Wrong file"); } diff --git a/xplugin/main.cpp b/xplugin/main.cpp index e36e450..8ed4e7d 100644 --- a/xplugin/main.cpp +++ b/xplugin/main.cpp @@ -151,6 +151,7 @@ PLUGIN_API int XPluginStart(char *outName, char *outSig, char *outDesc) toLog("Logbook Test"); germanairlinesva::file::logbook::Logbook logbook; logbook.addEntry("08.09.2022", + "F", "1000", "L049", "D-ALFA",