138 lines
3.9 KiB
C
138 lines
3.9 KiB
C
|
|
#ifndef IWHEELMEASURESTATUS_H
|
|||
|
|
#define IWHEELMEASURESTATUS_H
|
|||
|
|
|
|||
|
|
#include "IVisionApplicationStatus.h"
|
|||
|
|
#include "IVrWheelMeasureConfig.h"
|
|||
|
|
#include <QString>
|
|||
|
|
#include <QStringList>
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设备状态枚举
|
|||
|
|
*/
|
|||
|
|
enum class DeviceStatus
|
|||
|
|
{
|
|||
|
|
Unknown = 0, // 未知状态
|
|||
|
|
Online, // 在线
|
|||
|
|
Offline, // 离线
|
|||
|
|
Error // 错误
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 车轮拱高测量状态更新接口
|
|||
|
|
* 继承自IVisionApplicationStatus模板类,用于Presenter向UI层传递状态更新
|
|||
|
|
*/
|
|||
|
|
class IWheelMeasureStatus : public IVisionApplicationStatus<WheelMeasureResult>
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
virtual ~IWheelMeasureStatus() = default;
|
|||
|
|
|
|||
|
|
// ============ 继承自IVisionApplicationStatus的方法 ============
|
|||
|
|
|
|||
|
|
// 状态文字回调 (std::string版本)
|
|||
|
|
void OnStatusUpdate(const std::string& statusMessage) override {
|
|||
|
|
OnStatusUpdate(QString::fromStdString(statusMessage));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 算法监测结果回调 - 映射到OnMeasureResult
|
|||
|
|
void OnDetectionResult(const WheelMeasureResult& result) override {
|
|||
|
|
OnMeasureResult(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 相机1状态回调
|
|||
|
|
void OnCamera1StatusChanged(bool isConnected) override {
|
|||
|
|
OnCameraStatusChanged("Camera1", isConnected);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 相机2状态回调
|
|||
|
|
void OnCamera2StatusChanged(bool isConnected) override {
|
|||
|
|
OnCameraStatusChanged("Camera2", isConnected);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 机械臂连接状态回调 - 默认空实现
|
|||
|
|
void OnRobotConnectionChanged(bool /*isConnected*/) override {}
|
|||
|
|
|
|||
|
|
// 串口连接状态回调 - 默认空实现
|
|||
|
|
void OnSerialConnectionChanged(bool /*isConnected*/) override {}
|
|||
|
|
|
|||
|
|
// 相机个数回调
|
|||
|
|
void OnCameraCountChanged(int cameraCount) override {
|
|||
|
|
Q_UNUSED(cameraCount);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 工作状态回调 (WorkStatus版本) - 直接使用公用WorkStatus
|
|||
|
|
void OnWorkStatusChanged(WorkStatus status) override {
|
|||
|
|
OnWorkStatusChangedImpl(status);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ============ WheelMeasure 特有的接口方法 ============
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 状态信息更新 (QString版本)
|
|||
|
|
* @param statusMessage 状态消息
|
|||
|
|
*/
|
|||
|
|
virtual void OnStatusUpdate(const QString& statusMessage) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 需要显示的相机数量
|
|||
|
|
* @param cameraNames 相机名称列表
|
|||
|
|
*/
|
|||
|
|
virtual void OnNeedShowImageCount(const QStringList& cameraNames) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设备状态改变
|
|||
|
|
* @param deviceName 设备名称
|
|||
|
|
* @param deviceStatus 设备状态
|
|||
|
|
*/
|
|||
|
|
virtual void OnDeviceStatusChanged(const QString& deviceName, int deviceStatus) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 测量结果回调
|
|||
|
|
* @param result 测量结果
|
|||
|
|
*/
|
|||
|
|
virtual void OnMeasureResult(const WheelMeasureResult& result) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 相机连接成功
|
|||
|
|
* @param cameraName 相机名称
|
|||
|
|
*/
|
|||
|
|
virtual void OnCameraConnected(const QString& cameraName) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 相机断开连接
|
|||
|
|
* @param cameraName 相机名称
|
|||
|
|
*/
|
|||
|
|
virtual void OnCameraDisconnected(const QString& cameraName) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 相机状态变化 (通用方法)
|
|||
|
|
* @param cameraName 相机名称
|
|||
|
|
* @param isConnected 是否连接
|
|||
|
|
*/
|
|||
|
|
virtual void OnCameraStatusChanged(const QString& cameraName, bool isConnected) {
|
|||
|
|
if (isConnected) {
|
|||
|
|
OnCameraConnected(cameraName);
|
|||
|
|
} else {
|
|||
|
|
OnCameraDisconnected(cameraName);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 工作状态改变 (纯虚函数,子类实现)
|
|||
|
|
* @param status 工作状态
|
|||
|
|
*/
|
|||
|
|
virtual void OnWorkStatusChangedImpl(WorkStatus status) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 错误发生
|
|||
|
|
* @param errorMessage 错误消息
|
|||
|
|
*/
|
|||
|
|
virtual void OnErrorOccurred(const QString& errorMessage) = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 清空测量数据
|
|||
|
|
*/
|
|||
|
|
virtual void OnClearMeasureData() = 0;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // IWHEELMEASURESTATUS_H
|