Standard.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #ifndef STANDARD_H
  2. #define STANDARD_H
  3. #include <QObject>
  4. #include <QString>
  5. #include <QJsonObject>
  6. #include <QMap>
  7. #define MAX_STANDARD_ITEM (8)
  8. #define MAX_STANDARD_NUM (8)
  9. class StandardItem
  10. {
  11. public:
  12. int oilcompartment_volume; // L per unit
  13. double system_threshold; //Kpa
  14. double valve_threshold; //Kpa
  15. };
  16. class Standard
  17. {
  18. public:
  19. QString standard_name;
  20. double positive_target;
  21. double negative_target;
  22. int item_count;
  23. StandardItem item[MAX_STANDARD_ITEM];
  24. };
  25. class StandardManager: public QObject
  26. {
  27. Q_OBJECT
  28. public:
  29. static StandardManager* instance();
  30. ~StandardManager();
  31. bool getStandard(const QString& name, Standard& standard);
  32. //void addStandard(const Standard& standard);
  33. //void removeStandard(const QString& name);
  34. Q_INVOKABLE void init();
  35. //Q_INVOKABLE int getcount();
  36. Q_INVOKABLE QJsonObject get_names();
  37. Q_INVOKABLE QJsonObject get_standard(const QString name);
  38. //add or modify
  39. Q_INVOKABLE bool add_standard(const QString& jsonStr );
  40. //remove
  41. Q_INVOKABLE void remove_standard(const QString name);
  42. private:
  43. explicit StandardManager(QObject* parent = nullptr);
  44. std::vector<Standard> m_standard;
  45. //QMap<QString, QJsonObject> m_standardMap;
  46. void add_GB();
  47. void load_standards();
  48. void save_standards();
  49. };
  50. #define g_StandardManager StandardManager::instance()
  51. #endif // STANDARD_H