lock.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef LOCK_H
  2. #define LOCK_H
  3. #include <QObject>
  4. #include <QThread>
  5. #include <QDebug>
  6. #include <QSerialPort>
  7. #include <QSerialPortInfo>
  8. #include <QHash>
  9. #include <QMutex>
  10. #include "define.h"
  11. enum class lockWorkStat {
  12. init,
  13. readLockStat,
  14. controlLock,
  15. controlLight,
  16. };
  17. class lock : public QThread
  18. {
  19. Q_OBJECT
  20. public:
  21. explicit lock(QObject *parent = nullptr);
  22. public slots:
  23. void slot_uartinfo_change(void);
  24. bool slot_openLock(void); // 开锁
  25. void slot_set_thread_stop(void);
  26. private:
  27. bool threadstatus = true;
  28. QSerialPort *devserial;
  29. bool openPort = false;
  30. lockWorkStat workstat = lockWorkStat::init;
  31. bool rightLockStat = true;
  32. bool leftLockStat = true;
  33. bool setRightlightStat = false;
  34. bool setLeftlightStat = false;
  35. bool openSerial(void);
  36. void sendData(QByteArray &sendData);
  37. bool readData(QByteArray *data, quint16 timeout);
  38. quint16 uiCrc16Cal(QByteArray &data, quint8 count);
  39. void getBoardType(void);
  40. void openLock(void);
  41. void openLight(void);
  42. void readLockStat(void);
  43. signals:
  44. void signal_lock_run(bool stat);
  45. void signal_lockStat(bool leftStat, bool rightStat); // 锁状态改变
  46. protected:
  47. void run() override;
  48. };
  49. #endif // LOCK_H