serialtool.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef SERIALTOOL_H
  2. #define SERIALTOOL_H
  3. #include <QByteArray>
  4. #include <QLineEdit>
  5. #include <QMutex>
  6. #include <QObject>
  7. #include <QPushButton>
  8. #include <QSerialPort>
  9. #include <QTextEdit>
  10. class SerialTool : public QObject {
  11. Q_OBJECT
  12. public:
  13. static SerialTool* getInstance(QObject* parent = nullptr, bool* success = nullptr);
  14. SerialTool(QObject* parent = nullptr);
  15. ~SerialTool();
  16. static SerialTool* instance;
  17. void setupSerialPort();
  18. void openSerialPort();
  19. void closeSerialPort();
  20. void readData();
  21. bool sendData(const QByteArray& data);
  22. void releaseInstance();
  23. bool isInUse = false;
  24. bool getIsInUse();
  25. signals:
  26. void openCloseButtonTextChanged(const QString& text);
  27. void openError();
  28. void dataReceived(const QByteArray& data);
  29. void serialPortOpened(); // 新增信号
  30. // 新增三个信号
  31. void disableButtonReceived();
  32. void triggerButtonPressed();
  33. void triggerButtonEnabled();
  34. public slots:
  35. void handleSendDataReques(const QByteArray& data);
  36. private:
  37. QByteArray buffer; // 确保这里声明了 buffer 变量
  38. QSerialPort serialPort;
  39. static QMutex globalMutex;
  40. };
  41. #endif // SERIALTOOL_H