serialthread.h 773 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef SERIALTHREAD_H
  2. #define SERIALTHREAD_H
  3. #include <QFile>
  4. #include <QObject>
  5. #include <QSerialPort>
  6. #include <QTextStream>
  7. class SerialThread : public QObject
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit SerialThread(QObject *parent = nullptr);
  12. ~SerialThread();
  13. void openSerial(const QString& portname);
  14. private:
  15. bool parseFrame(const QByteArray &frame);
  16. void initCsv();
  17. void writeCsv(const QVector<double>& values);
  18. public slots:
  19. void onReadyRead();
  20. signals:
  21. void sigMessage(const QString& msg);
  22. void sigTemperature(QVector<double> values);
  23. private:
  24. QString m_portName;
  25. QSerialPort *m_port = nullptr;
  26. QByteArray m_buffer; // 接收缓冲区
  27. QFile m_csvFile;
  28. QTextStream m_csvStream;
  29. };
  30. #endif // SERIALTHREAD_H