GrabBag/GrabBagApp/IYGrabBagStatus.h

88 lines
2.4 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 IYGRABBAGSTATUS_H
#define IYGRABBAGSTATUS_H
#include <string>
#include <functional>
#include <vector>
#include <QImage>
#include <QMetaType>
// 工作状态枚举
enum class WorkStatus {
InitIng, // 初始化中
Ready, // 准备就绪
Working, // 正在工作
Completed, // 监测完成
Error // 设备异常
};
// 工作状态转换为字符串的工具函数
inline std::string WorkStatusToString(WorkStatus status) {
switch (status) {
case WorkStatus::InitIng: return "初始化中";
case WorkStatus::Ready: return "准备就绪";
case WorkStatus::Working: return "正在工作";
case WorkStatus::Completed: return "检测完成";
case WorkStatus::Error: return "设备异常";
default: return "未知状态";
}
}
// 坐标结构体
struct GrabBagPosition {
double x;
double y;
double z;
double roll;
double pitch;
double yaw;
// 默认构造函数
GrabBagPosition() : x(0), y(0), z(0), roll(0), pitch(0), yaw(0) {}
// 拷贝构造函数(编译器会自动生成,但为了明确可以保留)
GrabBagPosition(const GrabBagPosition&) = default;
GrabBagPosition& operator=(const GrabBagPosition&) = default;
};
// 检测结果结构体
struct DetectionResult {
QImage image;
std::vector<GrabBagPosition> positions;
int cameraIndex = 1; // 相机索引默认为1第一个相机
};
// 状态回调接口
class IYGrabBagStatus {
public:
virtual ~IYGrabBagStatus() = default;
// 状态文字回调
virtual void OnStatusUpdate(const std::string& statusMessage) = 0;
// 算法监测结果回调
virtual void OnDetectionResult(const DetectionResult& result) = 0;
// 相机状态回调
virtual void OnCamera1StatusChanged(bool isConnected) = 0;
virtual void OnCamera2StatusChanged(bool isConnected) = 0;
// 机械臂连接状态回调
virtual void OnRobotConnectionChanged(bool isConnected) = 0;
// 相机个数回调
virtual void OnCameraCountChanged(int cameraCount) = 0;
// 工作状态回调
virtual void OnWorkStatusChanged(WorkStatus status) = 0;
};
// 声明Qt元类型使这些结构体能够在信号槽中传递
Q_DECLARE_METATYPE(WorkStatus)
Q_DECLARE_METATYPE(GrabBagPosition)
Q_DECLARE_METATYPE(DetectionResult)
#endif // IYGRABBAGSTATUS_H