86 lines
2.8 KiB
C++
86 lines
2.8 KiB
C++
#ifndef ISTATUSUPDATE_H
|
||
#define ISTATUSUPDATE_H
|
||
|
||
#include <string>
|
||
#include <functional>
|
||
#include <vector>
|
||
#include <QImage>
|
||
#include <QMetaType>
|
||
#include <QDateTime>
|
||
|
||
// 皮带撕裂检测工作状态枚举
|
||
class BeltTearingWorkStatus {
|
||
public:
|
||
enum Type {
|
||
InitIng, // 初始化中
|
||
Ready, // 准备就绪
|
||
Working, // 正在检测
|
||
Completed, // 检测完成
|
||
Error, // 设备异常
|
||
Disconnected // 连接断开
|
||
};
|
||
|
||
BeltTearingWorkStatus() : value(InitIng) {}
|
||
BeltTearingWorkStatus(Type v) : value(v) {}
|
||
operator Type() const { return value; }
|
||
Type operator()() const { return value; }
|
||
|
||
private:
|
||
Type value;
|
||
};
|
||
|
||
// 工作状态转换为字符串的工具函数
|
||
inline std::string BeltTearingWorkStatusToString(BeltTearingWorkStatus status) {
|
||
switch (status) {
|
||
case BeltTearingWorkStatus::InitIng: return "初始化中";
|
||
case BeltTearingWorkStatus::Ready: return "准备就绪";
|
||
case BeltTearingWorkStatus::Working: return "正在检测";
|
||
case BeltTearingWorkStatus::Completed: return "检测完成";
|
||
case BeltTearingWorkStatus::Error: return "设备异常";
|
||
case BeltTearingWorkStatus::Disconnected: return "连接断开";
|
||
default: return "未知状态";
|
||
}
|
||
}
|
||
|
||
// 皮带撕裂检测结果结构体
|
||
struct BeltTearingResult {
|
||
QImage image; // 检测图像
|
||
bool bImageValid = false;
|
||
QString result; // 检测结果描述
|
||
double confidence = 0.0; // 置信度
|
||
QString serverName; // 服务器名称
|
||
QDateTime timestamp; // 时间戳
|
||
};
|
||
|
||
|
||
// 皮带撕裂检测状态更新接口
|
||
class IStatusUpdate {
|
||
public:
|
||
virtual ~IStatusUpdate() = default;
|
||
|
||
// 状态文字回调
|
||
virtual void OnStatusUpdate(const QString& statusMessage) = 0;
|
||
|
||
// 回调需要显示几个图像
|
||
virtual void OnNeedShowImageCount(int count) = 0;
|
||
|
||
// 撕裂检测结果回调
|
||
virtual void OnTearingResult(const BeltTearingResult& result) = 0;
|
||
|
||
// 服务器连接状态回调
|
||
virtual void OnServerConnected(const QString& serverName) = 0;
|
||
virtual void OnServerDisconnected(const QString& serverName) = 0;
|
||
|
||
// 工作状态回调
|
||
virtual void OnWorkStatusChanged(BeltTearingWorkStatus status) = 0;
|
||
|
||
// 错误信息回调
|
||
virtual void OnErrorOccurred(const QString& errorMessage) = 0;
|
||
};
|
||
|
||
// 声明Qt元类型,使这些结构体能够在信号槽中传递
|
||
Q_DECLARE_METATYPE(BeltTearingWorkStatus)
|
||
Q_DECLARE_METATYPE(BeltTearingResult)
|
||
|
||
#endif // ISTATUSUPDATE_H
|