Standard.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 interval_time; // s
  23. int item_count;
  24. StandardItem item[MAX_STANDARD_ITEM];
  25. };
  26. class StandardManager: public QObject
  27. {
  28. Q_OBJECT
  29. public:
  30. static StandardManager* instance();
  31. ~StandardManager();
  32. bool getStandard(const QString& name, Standard& standard);
  33. //void addStandard(const Standard& standard);
  34. //void removeStandard(const QString& name);
  35. Q_INVOKABLE void init();
  36. //Q_INVOKABLE int getcount();
  37. Q_INVOKABLE QJsonObject get_names();
  38. Q_INVOKABLE QJsonObject get_standard(const QString name);
  39. //add or modify
  40. Q_INVOKABLE bool add_standard(const QString& jsonStr );
  41. //remove
  42. Q_INVOKABLE void remove_standard(const QString name);
  43. private:
  44. explicit StandardManager(QObject* parent = nullptr);
  45. std::vector<Standard> m_standard;
  46. //QMap<QString, QJsonObject> m_standardMap;
  47. void add_GB();
  48. void load_standards();
  49. void save_standards();
  50. };
  51. #define g_StandardManager StandardManager::instance()
  52. #endif // STANDARD_H