CameraGrabber/parameterhandler.h

70 lines
1.7 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef PARAMETERHANDLER_H
#define PARAMETERHANDLER_H
#include <QByteArray>
#include <QObject>
#include <QSerialPort>
#include <QSerialPortInfo> // <-- 增加此头文件
#include <QString>
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