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
|