瀏覽代碼

上传文件至 'src'

wang 2 周之前
父節點
當前提交
c9f99e05d5
共有 1 個文件被更改,包括 56 次插入0 次删除
  1. 56 0
      src/cameraClass.h

+ 56 - 0
src/cameraClass.h

@@ -0,0 +1,56 @@
+#ifndef CAMERA_H
+#define CAMERA_H
+
+#include <QString>
+#include <QImage>
+#include <QVariant>
+
+class CameraClass
+{
+public:
+    enum CameraBrand {
+        DEFAULT_BRAND,
+        HIKVISION,
+        BASLER
+    };
+
+    enum CameraType {
+        USB_CAMERA,
+        GIGE_CAMERA,
+        NETWORK_CAMERA,
+        CAMERA_LINK,
+        HIKVISION_CAMERA,
+        BASLER_CAMERA
+    };
+
+    CameraClass() {}
+    CameraClass(const QString &name) : m_name(name) {}
+    virtual ~CameraClass() {}
+
+
+    virtual bool connectCamera() = 0;
+    virtual bool disconnectCamera() = 0;
+    virtual bool startCapture() = 0;
+    virtual bool stopCapture() = 0;
+    virtual QImage getImage() = 0;
+    virtual bool setParameter(const QString &paramName, const QVariant &value) = 0;
+    virtual QVariant getParameter(const QString &paramName) = 0;
+
+
+    QString getName() const { return m_name; }
+    void setName(const QString &name) { m_name = name; }
+    CameraType getType() const { return m_type; }
+    CameraBrand getBrand() const { return m_brand; }
+    void setBrand(CameraBrand brand) { m_brand = brand; }
+    bool isConnected() const { return m_connected; }
+    bool isCapturing() const { return m_capturing; }
+
+protected:
+    QString m_name;
+    CameraType m_type;
+    CameraBrand m_brand;
+    bool m_connected;
+    bool m_capturing;
+};
+
+#endif // CAMERA_H