191 lines
8.6 KiB
C++
191 lines
8.6 KiB
C++
#include "logbookEntry.h"
|
|
|
|
namespace germanairlinesva_logbook
|
|
{
|
|
LogbookEntry::LogbookEntry(std::string date,
|
|
std::string flightNumber,
|
|
std::string aircraftType,
|
|
std::string aircraftRegistration,
|
|
std::string departureAirport,
|
|
std::string departureGate,
|
|
std::string departureRunway,
|
|
std::string arrivalAirport,
|
|
std::string arrivalGate,
|
|
std::string arrivalRunway,
|
|
std::string offBlockTime,
|
|
std::string outTime,
|
|
std::string inTime,
|
|
std::string onBlockTime,
|
|
float totalFlightTime,
|
|
float taxiOutFuel,
|
|
float inFlightFuel,
|
|
float taxiInFuel,
|
|
float totalFuel,
|
|
float taxiOutDistance,
|
|
float inFlightDistance,
|
|
float taxiInDistance,
|
|
float totalDistance,
|
|
float maxLandingRate,
|
|
std::uint8_t touchdowns,
|
|
float maxLandingGees,
|
|
std::string recordingFilename,
|
|
float points,
|
|
std::uint8_t flags)
|
|
{
|
|
this->date = date;
|
|
this->flightNumber = flightNumber;
|
|
this->aircraftType = aircraftType;
|
|
this->aircraftRegistration = aircraftRegistration;
|
|
this->departureAirport = departureAirport;
|
|
this->departureGate = departureGate;
|
|
this->departureRunway = departureRunway;
|
|
this->arrivalAirport = arrivalAirport;
|
|
this->arrivalGate = arrivalGate;
|
|
this->arrivalRunway = arrivalRunway;
|
|
this->offBlockTime = offBlockTime;
|
|
this->outTime = outTime;
|
|
this->inTime = inTime;
|
|
this->onBlockTime = onBlockTime;
|
|
this->totalFlightTime = totalFlightTime;
|
|
this->taxiOutFuel = taxiOutFuel;
|
|
this->inFlightFuel = inFlightFuel;
|
|
this->taxiInFuel = taxiInFuel;
|
|
this->totalFuel = totalFuel;
|
|
this->taxiOutDistance = taxiOutDistance;
|
|
this->inFlightDistance = inFlightDistance;
|
|
this->taxiInDistance = taxiInDistance;
|
|
this->totalDistance = totalDistance;
|
|
this->maxLandingRate = maxLandingRate;
|
|
this->touchdowns = touchdowns;
|
|
this->maxLandingGees = maxLandingGees;
|
|
this->recordingFilename = recordingFilename;
|
|
this->points = points;
|
|
this->flags = flags;
|
|
|
|
file = std::vector<std::uint8_t>(
|
|
this->date.length() + 1 + this->flightNumber.length() + 1 +
|
|
this->aircraftType.length() + 1 + this->aircraftRegistration.length() +
|
|
1 + 1 + this->departureAirport.length() + 1 + 1 +
|
|
this->departureGate.length() + 1 + 1 + this->departureRunway.length() +
|
|
1 + 1 + this->arrivalAirport.length() + 1 + 1 +
|
|
this->arrivalGate.length() + 1 + 1 + this->arrivalRunway.length() + 1 +
|
|
this->offBlockTime.length() + 1 + this->outTime.length() + 1 +
|
|
this->inTime.length() + 1 + this->onBlockTime.length() + 1 +
|
|
sizeof(this->totalFlightTime) + sizeof(this->taxiOutFuel) +
|
|
sizeof(this->inFlightFuel) + sizeof(this->taxiInFuel) +
|
|
sizeof(this->totalFuel) + sizeof(this->taxiOutDistance) +
|
|
sizeof(this->inFlightDistance) + sizeof(this->taxiInDistance) +
|
|
sizeof(this->totalDistance) + sizeof(this->maxLandingRate) +
|
|
sizeof(this->touchdowns) + sizeof(this->maxLandingGees) + 1 +
|
|
recordingFilename.length() + 1 + sizeof(this->points) +
|
|
sizeof(this->flags));
|
|
std::uint8_t *bufPtr = file.data();
|
|
std::memcpy(bufPtr, this->date.c_str(), this->date.length());
|
|
bufPtr += this->date.length() + 1;
|
|
std::memcpy(bufPtr,
|
|
this->flightNumber.c_str(),
|
|
this->flightNumber.length());
|
|
bufPtr += this->flightNumber.length() + 1;
|
|
std::memcpy(bufPtr,
|
|
this->aircraftType.c_str(),
|
|
this->aircraftType.length());
|
|
bufPtr += this->aircraftType.length() + 1;
|
|
std::memcpy(bufPtr,
|
|
this->aircraftRegistration.c_str(),
|
|
this->aircraftRegistration.length());
|
|
bufPtr += this->aircraftRegistration.length() + 1;
|
|
std::memset(bufPtr,
|
|
static_cast<std::uint8_t>(this->departureAirport.length()),
|
|
sizeof(std::uint8_t));
|
|
bufPtr++;
|
|
std::memcpy(bufPtr,
|
|
this->departureAirport.c_str(),
|
|
this->departureAirport.length());
|
|
bufPtr += this->departureAirport.length() + 1;
|
|
std::memset(bufPtr,
|
|
static_cast<std::uint8_t>(this->departureGate.length()),
|
|
sizeof(std::uint8_t));
|
|
bufPtr++;
|
|
std::memcpy(bufPtr,
|
|
this->departureGate.c_str(),
|
|
this->departureGate.length());
|
|
bufPtr += this->departureGate.length() + 1;
|
|
std::memset(bufPtr,
|
|
static_cast<std::uint8_t>(this->departureRunway.length()),
|
|
sizeof(std::uint8_t));
|
|
bufPtr++;
|
|
std::memcpy(bufPtr,
|
|
this->departureRunway.c_str(),
|
|
this->departureRunway.length());
|
|
bufPtr += this->departureRunway.length() + 1;
|
|
std::memset(bufPtr,
|
|
static_cast<std::uint8_t>(this->arrivalAirport.length()),
|
|
sizeof(std::uint8_t));
|
|
bufPtr++;
|
|
std::memcpy(bufPtr,
|
|
this->arrivalAirport.c_str(),
|
|
this->arrivalAirport.length());
|
|
bufPtr += this->arrivalAirport.length() + 1;
|
|
std::memset(bufPtr,
|
|
static_cast<std::uint8_t>(this->arrivalGate.length()),
|
|
sizeof(std::uint8_t));
|
|
bufPtr++;
|
|
std::memcpy(bufPtr, this->arrivalGate.c_str(), this->arrivalGate.length());
|
|
bufPtr += this->arrivalGate.length() + 1;
|
|
std::memset(bufPtr,
|
|
static_cast<std::uint8_t>(this->arrivalRunway.length()),
|
|
sizeof(std::uint8_t));
|
|
bufPtr++;
|
|
std::memcpy(bufPtr,
|
|
this->arrivalRunway.c_str(),
|
|
this->arrivalRunway.length());
|
|
bufPtr += this->arrivalRunway.length() + 1;
|
|
std::memcpy(bufPtr,
|
|
this->offBlockTime.c_str(),
|
|
this->offBlockTime.length());
|
|
bufPtr += this->offBlockTime.length() + 1;
|
|
std::memcpy(bufPtr, this->outTime.c_str(), this->outTime.length());
|
|
bufPtr += this->outTime.length() + 1;
|
|
std::memcpy(bufPtr, this->inTime.c_str(), this->inTime.length());
|
|
bufPtr += this->inTime.length() + 1;
|
|
std::memcpy(bufPtr, this->onBlockTime.c_str(), this->onBlockTime.length());
|
|
bufPtr += this->onBlockTime.length() + 1;
|
|
std::memcpy(bufPtr, &this->totalFlightTime, sizeof(this->totalFlightTime));
|
|
bufPtr += sizeof(this->totalFlightTime);
|
|
std::memcpy(bufPtr, &this->taxiOutFuel, sizeof(this->taxiOutFuel));
|
|
bufPtr += sizeof(this->taxiOutFuel);
|
|
std::memcpy(bufPtr, &this->inFlightFuel, sizeof(this->inFlightFuel));
|
|
bufPtr += sizeof(this->inFlightFuel);
|
|
std::memcpy(bufPtr, &this->taxiInFuel, sizeof(this->taxiInFuel));
|
|
bufPtr += sizeof(this->taxiInFuel);
|
|
std::memcpy(bufPtr, &this->totalFuel, sizeof(this->totalFuel));
|
|
bufPtr += sizeof(this->totalFuel);
|
|
std::memcpy(bufPtr, &this->taxiOutDistance, sizeof(this->taxiOutDistance));
|
|
bufPtr += sizeof(this->taxiOutDistance);
|
|
std::memcpy(bufPtr,
|
|
&this->inFlightDistance,
|
|
sizeof(this->inFlightDistance));
|
|
bufPtr += sizeof(this->inFlightDistance);
|
|
std::memcpy(bufPtr, &this->taxiInDistance, sizeof(this->taxiInDistance));
|
|
bufPtr += sizeof(this->taxiInDistance);
|
|
std::memcpy(bufPtr, &this->totalDistance, sizeof(this->totalDistance));
|
|
bufPtr += sizeof(this->totalDistance);
|
|
std::memcpy(bufPtr, &this->maxLandingRate, sizeof(this->maxLandingRate));
|
|
bufPtr += sizeof(this->maxLandingRate);
|
|
std::memcpy(bufPtr, &this->touchdowns, sizeof(this->touchdowns));
|
|
bufPtr += sizeof(this->touchdowns);
|
|
std::memcpy(bufPtr, &this->maxLandingGees, sizeof(this->maxLandingGees));
|
|
bufPtr += sizeof(this->maxLandingGees);
|
|
std::memset(bufPtr,
|
|
static_cast<std::uint8_t>(this->recordingFilename.length()),
|
|
sizeof(std::uint8_t));
|
|
bufPtr++;
|
|
std::memcpy(bufPtr,
|
|
this->recordingFilename.c_str(),
|
|
this->recordingFilename.length());
|
|
bufPtr += this->recordingFilename.length() + 1;
|
|
std::memcpy(bufPtr, &this->points, sizeof(this->points));
|
|
bufPtr += sizeof(this->points);
|
|
std::memcpy(bufPtr, &this->flags, sizeof(this->flags));
|
|
}
|
|
} // namespace germanairlinesva_logbook
|