#ifndef PROMEMORY_H #define PROMEMORY_H #include <QMutex> #include <QStack> #include "CasicBioRecConst.h" #include "casic/face/CasicFaceInfo.h" #include "casic/iris/CasicIrisInfo.h" #include "dao/FaceDataDao.h" #include "dao/IrisDataDao.h" #include "device/FaceCameraController.h" #include "device/IrisCameraController.h" #include "device/face/FaceRegistProcess.h" #include "device/face/FaceRecogProcess.h" #include "device/iris/IrisRegistProcess.h" #include "device/iris/IrisRecogProcess.h" #include "device/MotoController.h" #include "device/CameraPositionController.h" class FaceCameraController; class IrisCameraController; class FaceRegistProcess; class FaceRecogProcess; class IrisRegistProcess; class IrisRecogProcess; class MotoController; class CameraPositionController; class ProMemory { public: ~ProMemory(); ProMemory(const ProMemory&)=delete; ProMemory& operator=(const ProMemory&)=delete; static ProMemory& getInstance() { static ProMemory instance; return instance; } void pushCasicFace(CasicFaceInfo faceInfo); CasicFaceInfo popCasicFace(); int getFaceQueueSize(); bool isFaceQueueEmpty(); void clearFaceQueue(); void pushCasicIris(CasicIrisInfo irisInfo); CasicIrisInfo popCasicIris(); int getIrisQueueSize(); bool isIrisQueueEmpty(); void clearIrisQueue(); volatile int widgeFrame = 0; // 当前显示的界面 volatile int appState = 0; // 当前程序所处的状态 QString capFaceOrIris; // 注册虹膜或者人脸 void initFaceFeatures(); // 初始化人脸特征值集合 void initIrisFeatures(QString personId = ""); // 初始化虹膜特征值集合 QVector<QVariantMap> getFaceFeatures(); FaceCameraController * faceCam; FaceRegistProcess * faceRegistPro; FaceRecogProcess * faceRecogPro; IrisCameraController * irisCam; IrisRegistProcess * irisRegistPro; IrisRecogProcess * irisRecogPro; MotoController * moto; CameraPositionController * camPosCtrl; private: ProMemory(); QStack<CasicFaceInfo> faceQueue; // 人脸信息队列 QStack<CasicIrisInfo> irisQueue; // 虹膜信息队列 QVector<QVariantMap> faceFeatures; // 人脸特征值集合 QVector<QVariantMap> irisFeatures; // 虹膜特征值集合 }; #endif // PROMEMORY_H