qappctrl.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. // qappctrl.h :
  2. //
  3. #if !defined(AGD_QAPPCTRL_H__ADD46467_F628_4A07_8844_613598E359DE__INCLUDED_)
  4. #define AGD_QAPPCTRL_H__ADD46467_F628_4A07_8844_613598E359DE__INCLUDED_
  5. #include <QObject>
  6. #include <QQmlEngine>
  7. #include <QQmlContext>
  8. #include <gfaipc.h>
  9. #ifdef __cplusplus
  10. /////////////////////////////////////////////////////////////////////////////
  11. // qappctrl.h - Declarations:
  12. class QGfaAppInfo : public QObject
  13. {
  14. Q_OBJECT
  15. Q_PROPERTY(int state READ state NOTIFY stateChanged)
  16. Q_PROPERTY(QString stateText READ stateText NOTIFY stateTextChanged)
  17. Q_PROPERTY(QString name READ name NOTIFY nameChanged)
  18. Q_PROPERTY(quint64 cycMin READ cycMin NOTIFY cycMinChanged)
  19. Q_PROPERTY(quint64 cycMax READ cycMax NOTIFY cycMaxChanged)
  20. public:
  21. Q_INVOKABLE bool pause(void);
  22. Q_INVOKABLE bool resume(void);
  23. Q_INVOKABLE bool stop(void);
  24. signals:
  25. void stateChanged(int val);
  26. void stateTextChanged(const QString &val);
  27. void nameChanged(const QString &val);
  28. void sendControlMessage(appid_t nAppID, ctrlmsg_t msg);
  29. void cycMinChanged(quint64 val);
  30. void cycMaxChanged(quint64 val);
  31. public:
  32. explicit QGfaAppInfo(int nIndex, QObject *pParent = NULL);
  33. virtual ~QGfaAppInfo(void);
  34. int state(void) const;
  35. void setState(int val);
  36. QString stateText(void) const;
  37. void setStateText(int val);
  38. QString name(void) const;
  39. void setName(const QString &val);
  40. quint64 cycMin(void) const;
  41. quint64 cycMax(void) const;
  42. void setAppTimes(LPCGFA_APPCTRL_APPTIMES pat);
  43. private:
  44. private:
  45. int m_state;
  46. QString m_stateText;
  47. QString m_name;
  48. int m_nIndex;
  49. appid_t m_nAppID;
  50. quint64 m_cycMin;
  51. quint64 m_cycMax;
  52. };
  53. /////////////////////////////////////////////////////////////////////////////
  54. class QGfaAppCtrl : public QObject
  55. {
  56. Q_OBJECT
  57. Q_PROPERTY(QQmlListProperty<QGfaAppInfo> appInfo READ appInfo CONSTANT)
  58. Q_PROPERTY(int idxRemanent READ idxRemanent CONSTANT)
  59. Q_PROPERTY(int idxDatalogger READ idxDatalogger CONSTANT)
  60. Q_PROPERTY(int idxSummarist READ idxSummarist CONSTANT)
  61. Q_PROPERTY(int idxRest READ idxRest CONSTANT)
  62. Q_PROPERTY(int idxMqttCl READ idxMqttCl CONSTANT)
  63. public:
  64. explicit QGfaAppCtrl(QObject *pParent = NULL);
  65. virtual ~QGfaAppCtrl(void);
  66. bool Create(appid_t nAppID, const char *pszDisplayName, int nTimerIntMs);
  67. void Release(void);
  68. void RegisterQmlTypes(QQmlEngine &rEng, int nVerMajor = 1, int nVerMinor = 0);
  69. bool PresetDisplayName(appid_t nAppID, const char *pszName);
  70. bool SubscribeStateEvents(appid_t nAppMask);
  71. int SetState(int nState);
  72. public:
  73. Q_INVOKABLE int appIndexFromAppID(quint64 nAppID);
  74. QQmlListProperty<QGfaAppInfo> appInfo(void);
  75. int idxRemanent(void) const;
  76. int idxDatalogger(void) const;
  77. int idxSummarist(void) const;
  78. int idxRest(void) const;
  79. int idxMqttCl(void) const;
  80. private slots:
  81. void onSendControlMessage(appid_t nAppID, ctrlmsg_t msg);
  82. private:
  83. void timerEvent(QTimerEvent *event) override;
  84. private:
  85. HAPPCTRL m_hAC;
  86. appid_t m_nAppID;
  87. int m_nTimerID;
  88. QList<QGfaAppInfo*> m_appInfo;
  89. clock64_t m_curPass;
  90. clock64_t m_minPass;
  91. clock64_t m_maxPass;
  92. appid_t m_nEvtSrcs;
  93. };
  94. /////////////////////////////////////////////////////////////////////////////
  95. #endif // __cplusplus
  96. #endif // !defined(AGD_QAPPCTRL_H__ADD46467_F628_4A07_8844_613598E359DE__INCLUDED_)