processaircraft.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "processaircraft.h"
  2. #include "src/database/tailentry.h"
  3. void ProcessAircraft::parseRawData()
  4. {
  5. QStringList tail_details;
  6. // relevant colums: {reg,company,make,model,variant,multipilot,multiengine,engineType,weightClass}
  7. int relevant_cols[9] = {79, 36, 76, 77, 78, 83, 84, 92, 96};
  8. for (const auto &row : std::as_const(rawData)) {
  9. for (const auto &col : relevant_cols) {
  10. tail_details.append(row[col]);
  11. }
  12. if (!(unique_tails.contains(tail_details)))
  13. unique_tails.append(tail_details);
  14. tail_details.clear();
  15. }
  16. }
  17. void ProcessAircraft::processParsedData()
  18. {
  19. // init counter
  20. int unique_tail_id = 1;
  21. QHash<QString, QVariant> new_tail_data;
  22. for (const auto &list : std::as_const(unique_tails)) {
  23. new_tail_data.insert(OPL::TailEntry::REGISTRATION, list[0]);
  24. new_tail_data.insert(OPL::TailEntry::COMPANY, list[1]);
  25. new_tail_data.insert(OPL::TailEntry::MAKE, list[2]);
  26. new_tail_data.insert(OPL::TailEntry::MODEL, list[3]);
  27. new_tail_data.insert(OPL::TailEntry::VARIANT, list[4]);
  28. if (list[5] == "TRUE")
  29. new_tail_data.insert(OPL::TailEntry::MULTI_PILOT, 1);
  30. else
  31. new_tail_data.insert(OPL::TailEntry::MULTI_PILOT, 0);
  32. if (list[6] == "TRUE")
  33. new_tail_data.insert(OPL::TailEntry::MULTI_ENGINE, 1);
  34. else
  35. new_tail_data.insert(OPL::TailEntry::MULTI_ENGINE, 0);
  36. if (list[7] == "Piston") // other values need to be added as needed, do later
  37. new_tail_data.insert(OPL::TailEntry::ENGINE_TYPE, 1);
  38. else if (list[7] == "Turbine (jet-fan)")
  39. new_tail_data.insert(OPL::TailEntry::ENGINE_TYPE, 3);
  40. if (list[8] == "TRUE") // this is a above 7.5t switch in MCC, so default to medium for now
  41. new_tail_data.insert(OPL::TailEntry::WEIGHT_CLASS, 1);
  42. else
  43. new_tail_data.insert(OPL::TailEntry::WEIGHT_CLASS, 0);
  44. new_tail_data.insert(QStringLiteral("tail_id"), unique_tail_id);
  45. processedTailIds.insert(list[0], unique_tail_id);
  46. processedTailMaps.insert(list[0], new_tail_data);
  47. unique_tail_id ++;
  48. new_tail_data.clear();
  49. }
  50. }
  51. QHash<QString, int> ProcessAircraft::getProcessedTailIds() const
  52. {
  53. return processedTailIds;
  54. }
  55. QHash<QString, QHash<QString, QVariant> > ProcessAircraft::getProcessedTailMaps() const
  56. {
  57. return processedTailMaps;
  58. }