rfid.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef RFID_H
  2. #define RFID_H
  3. #include <QObject>
  4. #include <QThread>
  5. #include <QDebug>
  6. #include <QSerialPort>
  7. #include <QSerialPortInfo>
  8. #include <QHash>
  9. #include <QMutex>
  10. #include <QVariant>
  11. #include "define.h"
  12. enum class readerWorkStat {
  13. init,
  14. setpower,
  15. setant,
  16. startreadtid,
  17. readid,
  18. sleep,
  19. };
  20. class rfid : public QThread
  21. {
  22. Q_OBJECT
  23. public:
  24. explicit rfid(QObject *parent = nullptr);
  25. public slots:
  26. void slot_set_thread_stop(void);
  27. void slot_uartinfo_change(void);
  28. void slot_start_read_tid(void);
  29. void slot_start_read_tid_Ex(const QVariant &user);
  30. private:
  31. bool threadstatus = true;
  32. QSerialPort *devserial;
  33. bool openPort = false;
  34. readerWorkStat workstat = readerWorkStat::init;
  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 getReadType(void);
  40. void setPower(void);
  41. void setAnt(void);
  42. void setStartreadtid(void);
  43. void readTid(void);
  44. quint32 tidCount;
  45. QList<QString> tidList;
  46. signals:
  47. // 返回rfid列表
  48. void signal_tid_update(quint16 count, QList<QString> tidList);
  49. void signal_reader_run(bool stat);
  50. void signal_tid_update_Ex(quint16 count, QList<QString> tidList, const QVariant &user);
  51. protected:
  52. void run() override;
  53. private:
  54. QVariant m_user; // 用户自定义数据
  55. };
  56. #endif // RFID_H