#ifndef IYJIURUIWORKPIECEPOSESTATUS_H #define IYJIURUIWORKPIECEPOSESTATUS_H #include #include #include #include #include #include "IVisionApplicationStatus.h" // WorkStatus, WorkStatusToString 已在 IVisionApplicationStatus.h 中定义 // 工件信息结构体(来自 Jiurui_getWorkpiecePose 返回的 SSG_pointPose) struct JiuruiWorkpieceInfo { // 工件中心点(Eye坐标系) double centerX = 0.0; double centerY = 0.0; double centerZ = 0.0; // 工件姿态 X 轴方向向量 double poseXx = 0.0; double poseXy = 0.0; double poseXz = 0.0; // 工件姿态 Y 轴方向向量 double poseYx = 0.0; double poseYy = 0.0; double poseYz = 0.0; // 工件姿态 Z 轴方向向量(法向) double poseZx = 0.0; double poseZy = 0.0; double poseZz = 0.0; JiuruiWorkpieceInfo() = default; JiuruiWorkpieceInfo(const JiuruiWorkpieceInfo&) = default; JiuruiWorkpieceInfo& operator=(const JiuruiWorkpieceInfo&) = default; }; // 位置结构体(继承自 PositionData 模板) struct JiuruiWorkpiecePosition : public PositionData { JiuruiWorkpiecePosition() : PositionData() {} JiuruiWorkpiecePosition(double _x, double _y, double _z, double _roll, double _pitch, double _yaw) : PositionData(_x, _y, _z, _roll, _pitch, _yaw) {} JiuruiWorkpiecePosition(const JiuruiWorkpiecePosition&) = default; JiuruiWorkpiecePosition& operator=(const JiuruiWorkpiecePosition&) = default; JiuruiWorkpiecePosition(const PositionData& pos) : PositionData(pos) {} }; // 检测结果结构体 struct DetectionResult : public DetectionResultData { // 工件信息列表 std::vector workpieceInfoList; bool success = true; QString message = "检测成功"; DetectionResult() = default; DetectionResult(const DetectionResult&) = default; DetectionResult& operator=(const DetectionResult&) = default; }; // 状态回调接口 class IYJiuruiWorkpiecePoseStatus : public IVisionApplicationStatus { public: virtual ~IYJiuruiWorkpiecePoseStatus() = default; }; Q_DECLARE_METATYPE(JiuruiWorkpieceInfo) Q_DECLARE_METATYPE(JiuruiWorkpiecePosition) Q_DECLARE_METATYPE(DetectionResult) #endif // IYJIURUIWORKPIECEPOSESTATUS_H