GrabBag/App/WheelMeasure/WheelMeasureApp/IWheelMeasureStatus.h

138 lines
3.9 KiB
C
Raw Normal View History

2025-12-27 09:34:02 +08:00
#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