flight.cpp 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. #include "flight.h"
  2. /*!
  3. * \brief flight::printFlight Displays basic data for debugging
  4. */
  5. void flight::print()
  6. {
  7. QTextStream cout(stdout, QIODevice::WriteOnly);
  8. if(id != -1){
  9. cout << "Flight ID:\t\t" + QString::number(id) + "\n";
  10. }else{
  11. cout << "Flight ID:\t\tnot set\n";
  12. }
  13. if(doft.toString(Qt::ISODate).length()){
  14. cout << "Date of Flight:\t" + doft.toString(Qt::ISODate) + "\n";
  15. }else{
  16. cout << "Date of Flight:\tnot set\n";
  17. }
  18. if(dept != QStringLiteral("INVA")){
  19. cout << "Departure:\t\t" + dept + "\n";
  20. }else{
  21. cout << "Departure:\t\tnot set\n";
  22. }
  23. if(dest != QStringLiteral("INVA")){
  24. cout << "Destination:\t\t" + dest + "\n";
  25. }else{
  26. cout << "Destination:\t\tnot set\n";
  27. }
  28. if(tofb.toString("hh:mm").length()){
  29. cout << "Departure Time:\t" + tofb.toString("hh:mm") + "\n";
  30. }else{
  31. cout << "Departure Time:\tnot set\n";
  32. }
  33. if(tonb.toString("hh:mm").length()){
  34. cout << "Arrival Time:\t" + tonb.toString("hh:mm") + "\n";
  35. }else{
  36. cout << "Arrival Time:\tnot set\n";
  37. }
  38. if(pic != QStringLiteral("INVA")){
  39. cout << "Pilot in Command:\t" + pic + "\n";
  40. }else{
  41. cout << "Pilot in Command:\tnot set\n";
  42. }
  43. if(acft != QStringLiteral("INVA")){
  44. cout << "Aircraft:\t\t" + acft + "\n";
  45. }else{
  46. cout << "Aircraft:\t\tnot set\n";
  47. }
  48. if(tblk.isValid()){
  49. cout << "Blocktime:\t\t" + tblk.toString("hh:mm") + "\n";
  50. }else{
  51. cout << "Blocktime:\t\tnot set\n";
  52. }
  53. if(isValid){
  54. cout << "Object status:\t\033[38;2;0;255;0;48;2;0;0;0m VERIFIED \033[0m\n";
  55. }else{
  56. cout << "Object status:\t\033[38;2;255;0;0;48;2;0;0;0m UNVERIFIED \033[0m\n";
  57. }
  58. if(!invalidItems.isEmpty()){
  59. cout << "Invalid items:\t";
  60. for(auto const& item : invalidItems){
  61. cout << item + QLatin1Char(' ');
  62. }
  63. }
  64. }
  65. /*!
  66. * \brief flight::debug Provides compatibility with qDebug
  67. * \return
  68. */
  69. QString flight::debug()
  70. {
  71. print();
  72. return QString();
  73. }
  74. flight flight::fromVector(QVector<QString> details)
  75. {
  76. if(details.length() != 32){
  77. qWarning() << __PRETTY_FUNCTION__ << "Invalid Input. Aborting.";
  78. return flight();
  79. }
  80. flight object;
  81. object.id = details[1].toInt();
  82. object.doft = QDate::fromString(details[2],Qt::ISODate);
  83. object.dept = details[3];
  84. object.dest = details[4];
  85. object.tofb = QTime::fromString(details[5],"hh:mm");
  86. object.tonb = QTime::fromString(details[6],"hh:mm");
  87. object.pic = details[7];
  88. object.acft = details[8];
  89. object.tblk = QTime::fromString(details[9],"hh:mm");
  90. object.tSPSE = QTime::fromString(details[10],"hh:mm");
  91. object.tSPME = QTime::fromString(details[11],"hh:mm");
  92. object.tMP = QTime::fromString(details[12],"hh:mm");
  93. object.tNIGHT = QTime::fromString(details[13],"hh:mm");
  94. object.tIFR = QTime::fromString(details[14],"hh:mm");
  95. object.tPIC = QTime::fromString(details[15],"hh:mm");
  96. object.tPICUS = QTime::fromString(details[16],"hh:mm");
  97. object.tSIC = QTime::fromString(details[17],"hh:mm");
  98. object.tDUAL = QTime::fromString(details[18],"hh:mm");
  99. object.tFI = QTime::fromString(details[19],"hh:mm");
  100. object.tSIM = QTime::fromString(details[20],"hh:mm");
  101. object.pilotFlying = details[21].toInt();
  102. object.toDay = details[22].toInt();
  103. object.toNight = details[23].toInt();
  104. object.ldgDay = details[24].toInt();
  105. object.ldgNight = details[25].toInt();
  106. object.autoland = details[26].toInt();
  107. object.secondPilot = details[27];
  108. object.thirdPilot = details[28];
  109. object.approachType = details[29];
  110. object.flightNumber = details[30];
  111. object.remarks = details[31];
  112. return object;
  113. }
  114. QVector<QString> flight::toVector(flight object)
  115. {
  116. QVector<QString> vecOut(32);
  117. vecOut [1] = QString::number(object.id);
  118. vecOut [2] = object.doft.toString(Qt::ISODate);
  119. vecOut [3] = object.dept;
  120. vecOut [4] = object.dest;
  121. vecOut [5] = object.tofb.toString("hh:mm");
  122. vecOut [6] = object.tonb.toString("hh:mm");
  123. vecOut [7] = object.pic;
  124. vecOut [8] = object.acft;
  125. vecOut [9] = object.tblk.toString("hh:mm");
  126. vecOut [10] = object.tSPSE.toString("hh:mm");
  127. vecOut [11] = object.tSPME.toString("hh:mm");
  128. vecOut [12] = object.tMP.toString("hh:mm");
  129. vecOut [13] = object.tNIGHT.toString("hh:mm");
  130. vecOut [14] = object.tIFR.toString("hh:mm");
  131. vecOut [15] = object.tPIC.toString("hh:mm");
  132. vecOut [16] = object.tPICUS.toString("hh:mm");
  133. vecOut [17] = object.tSIC.toString("hh:mm");
  134. vecOut [18] = object.tDUAL.toString("hh:mm");
  135. vecOut [19] = object.tFI.toString("hh:mm");
  136. vecOut [20] = object.tSIM.toString("hh:mm");
  137. vecOut [21] = QString::number(object.pilotFlying);
  138. vecOut [22] = QString::number(object.toDay);
  139. vecOut [23] = QString::number(object.toNight);
  140. vecOut [24] = QString::number(object.ldgDay);
  141. vecOut [25] = QString::number(object.ldgNight);
  142. vecOut [26] = QString::number(object.autoland);
  143. vecOut [27] = object.secondPilot;
  144. vecOut [28] = object.thirdPilot;
  145. vecOut [29] = object.approachType;
  146. vecOut [30] = object.flightNumber;
  147. vecOut [31] = object.remarks;
  148. return vecOut;
  149. }