Calibrationpara.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #ifndef CALIBRATIONPARA_H
  2. #define CALIBRATIONPARA_H
  3. #include <QObject>
  4. #include <QString>
  5. #include <QJsonObject>
  6. #include <QMap>
  7. //#define MAX_PARA_ITEM (5)
  8. class ParaItem
  9. {
  10. public:
  11. ParaItem();
  12. ~ParaItem();
  13. int max_volume; // L per unit
  14. int keep_time; // s
  15. double outermax;
  16. double outermin;
  17. double outerkp;
  18. double outerki;
  19. double outerkd;
  20. double innermax;
  21. double innermin;
  22. double innerkp;
  23. double innerki;
  24. double innerkd;
  25. double innermaxI;
  26. double innerIstep;
  27. double innerDstep;
  28. };
  29. class CalibrationPara :public QObject
  30. {
  31. Q_OBJECT
  32. public:
  33. static CalibrationPara* instance();
  34. ~CalibrationPara();
  35. Q_INVOKABLE void init();
  36. Q_INVOKABLE QJsonObject get_paras();
  37. //add or modify
  38. Q_INVOKABLE bool set_paras(const QString& jsonStr);
  39. bool get_pidPara(int volume, ParaItem& item);
  40. private:
  41. explicit CalibrationPara(QObject* parent = nullptr);
  42. void load_parameters();
  43. void save_parameters();
  44. void add_default();
  45. std::vector<ParaItem> m_paras;
  46. };
  47. #define g_CalibrationPara CalibrationPara::instance()
  48. #endif // CALIBRATIONPARA_H