Files
eUi/include/interface.h
T

92 lines
2.8 KiB
C++
Raw Normal View History

2025-11-14 10:28:07 +08:00
#pragma once
2025-10-23 17:03:38 +08:00
#include <nlohmannJson.hpp>
2025-07-25 00:29:52 +08:00
#include <sql/qSqlBase.h>
2025-11-12 00:59:22 +08:00
enum initStatus {
NotInit,
InitFailure,
InitOK
};
struct showImgPack {
cv::Mat img;
QString name = "";
QString type;
showImgPack() {};
showImgPack(QString name, QString type) : type(type), name(name) {}
};
enum valueType {
finsShort,
finsFloat
};
2025-11-12 01:24:02 +08:00
// PLC 值查看器的配置结构体
2025-11-12 00:59:22 +08:00
struct PlcValueViewerStruct {
QString valueName;
int valueAddr;
valueType type = finsShort;
QVariant value = -999;
};
class bSignalHub :public QObject{
Q_OBJECT
public:
explicit bSignalHub(QObject* parent = nullptr) : QObject(parent) {}
2025-11-12 01:24:02 +08:00
// 禁止拷贝
2025-11-12 00:59:22 +08:00
Q_DISABLE_COPY(bSignalHub)
signals:
2025-11-12 01:24:02 +08:00
// 汇总数据
2025-11-12 00:59:22 +08:00
void summaryData_addData(QString window, double data);
2025-11-12 01:24:02 +08:00
// 日志相关
2025-11-12 00:59:22 +08:00
void loadingWindow_appendInitLog(const QString& text, const QColor& color);
void loadingWindow_modifyLog(int col, const QString& text, const QColor& color);
void loadingWindow_clearLog();
2025-11-12 01:24:02 +08:00
// 登录结果
2025-11-12 00:59:22 +08:00
void initResult(initStatus result);
2025-11-12 01:24:02 +08:00
// 图像显示
2025-11-12 00:59:22 +08:00
void displayWidget_sendImg(showImgPack pack);
2025-11-12 01:24:02 +08:00
//数据到界面
2025-11-12 00:59:22 +08:00
void pieWidgetAddNG();
void pieWidgetAddOK();
void histogramWidgetAddData(std::vector<std::string>);
void setPlcConnectionError();
void setPlcConnectionOk();
void setCamConnectionError();
void setCamConnectionOk();
void waveFormAddData(QString windowName, double value);
2025-11-12 01:24:02 +08:00
//排障
2025-11-12 00:59:22 +08:00
void runCommand_addBtn(const QString& btnName, const QString& tip, const QString& uuid);
void runCommand_addPlcValueViewer(QString groupName, std::vector<std::pair<QString, int>> viewerNameAndAddress);
void runCommand_refeshPlcValueViewer(int address, QString value);
void saveMissionJson();
2025-11-12 01:24:02 +08:00
//性能监测
2025-11-12 00:59:22 +08:00
void sendTriggerManagerLoopData(int loopCounterPerMin, int maxInterval);
};
2025-10-23 16:50:39 +08:00
class IBackend :public QThread {
2025-10-23 13:31:18 +08:00
Q_OBJECT
public:
2025-11-12 00:59:22 +08:00
bSignalHub _signalHub;
virtual ~IBackend() = default;
2025-11-12 00:59:22 +08:00
virtual void init(SQLiteDB* ,nlohmann::ordered_json& json) = 0;
2025-03-28 18:33:43 +08:00
virtual void cleanup() = 0;
2025-11-12 00:59:22 +08:00
virtual nlohmann::ordered_json getBackendJson() = 0;
2025-10-24 11:16:38 +08:00
public slots:
2025-09-19 12:38:05 +08:00
virtual bool excuteCliCommand(const QString& command) = 0;
virtual bool excuteCliCommandPreset(const QString& uuid) = 0;
2025-10-23 16:50:39 +08:00
virtual void triggerAndCaptureImage(std::string cameraName, std::vector<cv::Mat>* mats) = 0;
2025-10-24 23:47:00 +08:00
virtual void getCameraNames(std::vector<std::string>* cameraNames) = 0;
2025-11-12 15:38:01 +08:00
virtual void getAllParams(std::vector<std::pair<QString, QVariant>>* params) = 0;
2025-11-14 10:28:07 +08:00
virtual void editParam(QString group, QString name, QVariant value) = 0;
};
extern "C" {
__declspec(dllexport) IBackend* CreateBackend();
__declspec(dllexport) void ReleaseBackend(IBackend* backend);
}
typedef IBackend* (*CreateBackendFunc)();
typedef void (*ReleaseBackendFunc)(IBackend*);
2025-11-12 00:59:22 +08:00