#ifndef SERIALTOOL_H #define SERIALTOOL_H #include #include #include #include #include #include #include class SerialTool : public QObject { Q_OBJECT public: static SerialTool* getInstance(QObject *parent = nullptr, bool* success = nullptr); SerialTool(QObject *parent = nullptr); ~SerialTool(); static SerialTool* instance; void setupSerialPort(); void openSerialPort(); void closeSerialPort(); void readData(); bool sendData(const QByteArray &data); void releaseInstance(); bool isInUse = false; bool getIsInUse(); signals: void openCloseButtonTextChanged(const QString& text); void openError(); void dataReceived(const QByteArray& data); void serialPortOpened(); // 新增信号 // 新增三个信号 void disableButtonReceived(); void buttonPressedReceived(); void enableButtonReceived(); public slots: void handleSendDataReques(const QByteArray &data); private: QByteArray buffer; // 确保这里声明了 buffer 变量 QSerialPort serialPort; static QMutex globalMutex; }; #endif // SERIALTOOL_H