#ifndef PARAMETERHANDLER_H #define PARAMETERHANDLER_H #include #include #include #include // <-- 增加此头文件 #include class ParameterHandler : public QObject { Q_OBJECT public: // 构造函数:接受父对象 explicit ParameterHandler(QObject *parent = nullptr); // 析构函数 ~ParameterHandler(); static QStringList getAvailablePortNames(); // <-- 新增的静态函数声明 /** * @brief 尝试打开并配置串口 * @param portName 要打开的串口名称 (例如 "COM3" 或 "/dev/ttyUSB0") * @return 成功返回 true,失败返回 false */ bool openPort(const QString &portName); // 关闭串口 void closePort(); // 检查串口是否已打开 bool isPortOpen() const; /** * @brief 写入数据到串口 * @param data 要发送的 QByteArray 数据 * @return 成功写入的字节数,失败返回 -1 */ qint64 writeData(const QByteArray &data); // 获取当前串口名称 QString portName() const; signals: /** * @brief 接收到新数据时发出的信号 * @param data 接收到的数据 */ void dataReceived(const QByteArray &data); /** * @brief 串口出错时发出的信号 * @param errorString 错误描述字符串 */ void errorOccurred(const QString &errorString); private slots: // 处理串口发出的 readyRead 信号,读取数据 void handleReadyRead(); // 处理串口发出的 errorOccurred 信号,报告错误 void handleError(QSerialPort::SerialPortError error); private: QSerialPort *m_serialPort; }; #endif // PARAMETERHANDLER_H