Newer
Older
CasicBioRecNew / device / iris / CasicIrisRecState.h
Tan Yue on 7 Jun 2022 1 KB 20220607 虹膜识别
#ifndef CASICIRISRECSTATE_H
#define CASICIRISRECSTATE_H

#include <QDateTime>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>

#include "casic/iris/CasicIrisInfo.h"
#include "utils/UtilInclude.h"

class CasicIrisRecState : public QObject
{
public:
    ~CasicIrisRecState();
    CasicIrisRecState(const CasicIrisRecState&)=delete;
    CasicIrisRecState& operator=(const CasicIrisRecState&)=delete;

    static CasicIrisRecState& getInstance() {
        static CasicIrisRecState instance;
        return instance;
    }

    void initRecognize();
    QString toString();
    QJsonObject toJSON();

    QString recoginzeId; // 识别过程id
    qint64 timeStamp = 0; // 识别开始时间戳
    qint64 timeStampSucc = 0; // 识别成功时的时间戳
    qint64 findEyeTmLast = 0; // 找眼操作耗时

    CasicIrisInfo * irisInfo;

    qint8 tryCount = 0; // 识别尝试次数
    qint8 noEyeCount = 0; // 连续没有找到眼睛次数
    float recogTimeLast = 0.0; // 识别成功耗时

    /**
     * @brief state
     * 0=初始值
     * 1=左眼检测
     * 2=右眼检测
     * 3=质量评估
     * 4=特征值提取
     * 5=虹膜库比对成功
     * 6=虹膜库比对失败
     */
    volatile int state;

    enum IrisRecStateName
    {
        REC_NOT_START = 0,       // 未开始
        REC_LEFT_FIND_EYE = 1,      // 检测左眼, 没找到右眼
        REC_RIGHT_FIND_EYE = 2, // 检测右眼, 没找到左眼
        REC_FIND_EYE = 3, // 找到左眼和右眼
        REC_FEATURE_EXTRACT = 4,  // 特征值提取成功
        REC_SEARCH_SUCC = 5, // 虹膜库比对成功
        REC_SEARCH_FAIL = 6 // 虹膜库比对失败
    };

private:
    CasicIrisRecState();

};

#endif // CASICIRISRECSTATE_H