appmodel.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #ifndef APPMODEL_H
  2. #define APPMODEL_H
  3. #include "EgoInterface.h"
  4. #include "ImageProvider.h"
  5. #include <QObject>
  6. #include <QtCore/QObject>
  7. #include <QtCore/QString>
  8. #include <QtGui>
  9. #include <QtQml/qqml.h>
  10. class CarData : public QObject {
  11. Q_OBJECT
  12. Q_PROPERTY(QString uid READ uid WRITE setUid NOTIFY dataChanged)
  13. Q_PROPERTY(QString name READ name WRITE setName NOTIFY dataChanged)
  14. Q_PROPERTY(QString type READ type WRITE setType NOTIFY dataChanged)
  15. Q_PROPERTY(QString state READ state WRITE setState NOTIFY dataChanged)
  16. public:
  17. explicit CarData(QObject *parent = 0);
  18. CarData(const CarData &other);
  19. QString uid() const;
  20. QString name() const;
  21. QString type() const;
  22. QString state() const;
  23. void setUid(const QString &value);
  24. void setName(const QString &value);
  25. void setType(const QString &value);
  26. void setState(const QString &value);
  27. signals:
  28. void dataChanged();
  29. private:
  30. QString m_uid;
  31. QString m_name;
  32. QString m_type;
  33. QString m_state;
  34. };
  35. Q_DECLARE_METATYPE(CarData)
  36. class AppModelPrivate;
  37. class AppModel : public QObject {
  38. Q_OBJECT
  39. Q_PROPERTY(bool ready READ ready WRITE setReady NOTIFY readyChanged)
  40. Q_PROPERTY(QQmlListProperty<CarData> car READ car NOTIFY carChanged)
  41. Q_PROPERTY(int32_t radar1 READ radar1 WRITE setRadar1 NOTIFY radar1Changed)
  42. Q_PROPERTY(int32_t radar2 READ radar2 WRITE setRadar2 NOTIFY radar2Changed)
  43. Q_PROPERTY(int32_t radar3 READ radar3 WRITE setRadar3 NOTIFY radar3Changed)
  44. Q_PROPERTY(int32_t radar4 READ radar4 WRITE setRadar4 NOTIFY radar4Changed)
  45. Q_PROPERTY(int32_t radar5 READ radar5 WRITE setRadar5 NOTIFY radar5Changed)
  46. Q_PROPERTY(int32_t radar6 READ radar6 WRITE setRadar6 NOTIFY radar6Changed)
  47. Q_PROPERTY(int32_t ping READ ping WRITE setPing NOTIFY pingChanged)
  48. Q_PROPERTY(int32_t imux READ imux WRITE setImux NOTIFY imuxChanged)
  49. Q_PROPERTY(int32_t imuy READ imuy WRITE setImuy NOTIFY imuyChanged)
  50. Q_PROPERTY(int32_t alertSound READ alertSound NOTIFY playAlertSound)
  51. Q_PROPERTY(QString username READ username WRITE setUsername NOTIFY usernameChanged)
  52. Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged)
  53. public:
  54. explicit AppModel(IEgoNotify *n = 0, IEgoControl *c = 0, QObject *parent = 0);
  55. ~AppModel();
  56. Q_INVOKABLE void userLogin(QString useName, QString password);
  57. Q_INVOKABLE void connectCar(int id);
  58. Q_INVOKABLE void leaveCar();
  59. Q_INVOKABLE void logout();
  60. Q_INVOKABLE void loadUser();
  61. bool ready() const;
  62. int radar1() const;
  63. int radar2() const;
  64. int radar3() const;
  65. int radar4() const;
  66. int radar5() const;
  67. int radar6() const;
  68. int ping() const;
  69. int alertSound() const;
  70. int imux() const;
  71. int imuy() const;
  72. QString username() const;
  73. QString password() const;
  74. void setReady(const bool value);
  75. void setRadar1(const int32_t &value);
  76. void setRadar2(const int32_t &value);
  77. void setRadar3(const int32_t &value);
  78. void setRadar4(const int32_t &value);
  79. void setRadar5(const int32_t &value);
  80. void setRadar6(const int32_t &value);
  81. void setPing(const int32_t &value);
  82. void setImux(const int32_t &value);
  83. void setImuy(const int32_t &value);
  84. void setUsername(const QString &value);
  85. void setPassword(const QString &value);
  86. QQmlListProperty<CarData> car() const;
  87. public slots:
  88. void onLoginRst(bool rst);
  89. void onCarAppend(const UserCamera &info);
  90. void onRadarUpadte(int32_t r0, int32_t r1, int32_t r2, int32_t r3, int32_t r4,
  91. int32_t r5);
  92. void onPing(int32_t value);
  93. void onImuUpdate(int32_t x, int32_t y);
  94. void onNotifyDel();
  95. void onKickoff();
  96. signals:
  97. void readyChanged();
  98. void carChanged();
  99. void radar1Changed();
  100. void radar2Changed();
  101. void radar3Changed();
  102. void radar4Changed();
  103. void radar5Changed();
  104. void radar6Changed();
  105. void pingChanged();
  106. void imuxChanged();
  107. void imuyChanged();
  108. void usernameChanged();
  109. void passwordChanged();
  110. void playAlertSound();
  111. void carConnected();
  112. void closeWin();
  113. private:
  114. IEgoNotify *_notify;
  115. IEgoControl *_control;
  116. AppModelPrivate *d;
  117. int32_t m_radar1;
  118. int32_t m_radar2;
  119. int32_t m_radar3;
  120. int32_t m_radar4;
  121. int32_t m_radar5;
  122. int32_t m_radar6;
  123. int32_t m_ping;
  124. int32_t m_alert;
  125. int32_t m_imux;
  126. int32_t m_imuy;
  127. bool m_ready;
  128. QString m_username;
  129. QString m_password;
  130. };
  131. #endif // APPMODEL_H