zhangjixing
2019-01-28 1c622cd0d7d95709ab224224af18a22630aede75
QiaoJiaSystem/StructureApp/AppPipeController.cpp
@@ -80,7 +80,9 @@
    leftJudgment(ruleMap[KeepRightSdk]),
    rightJudgment(ruleMap[KeepRightSdk]),
    bRecordVideoEnable(RecordVideoEnable),
    m_sdkRuleMap(ruleMap) {
    m_sdkRuleMap(ruleMap),
    m_bSetWH(false)
{
    DBG("camId" << camId);
    init();
    initPerimeter();
@@ -193,20 +195,29 @@
    // recordInit(40,100);
    videoCaptureElement.registerConnector([&] {
        cv::Mat imageTemp = videoCaptureElement.getImage();
        std::string strNewTime;
        strNewTime = AppUtil::getTimeUSecString();
        if(!m_bSetWH)
        {
            appPref.setIntData(m_camId+"width",imageTemp.cols);
            appPref.setIntData(m_camId+"height",imageTemp.rows);
            m_bSetWH=true;
        }
//        cv::putText(imageTemp, strNewTime, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 5,
//                    cv::Scalar(255, 255, 0), 2);
        std::string  strNewTime = AppUtil::getTimeUSecString();;
        //DBG("m_camId="<<m_camId<<"  strNewTime="<<strNewTime);
        cv::putText(imageTemp, strNewTime, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 5,
                    cv::Scalar(255, 255, 0), 2);
        if (m_camId.size() > 0) {
            if (bRecordVideoEnable) {
                newRecordVideoElement.pushImgBuf(strNewTime, imageTemp);
                newRecordVideoElement.setSdkTrigger(faceRpcElement.getTriggerState() ||//TODO
                                                    personElement.getTrigger() ||
                                                    personElement.getTriggerState() ||
                                                    leftJudgment.getTriggerState() ||
                                                    rightJudgment.getTriggerState() ||
                                                    perimeterElement.getTriggerState() ||
@@ -214,9 +225,6 @@
                                                    perHubElement.getTriggerState() ||
                                                    perStaticElement.getTriggerState()
                );
                if (!newRecordVideoElement.isBusy()) {
                    newRecordVideoElement.submit();
                }
            }
@@ -232,8 +240,10 @@
            strNewTime = newDt.toString("yyyy-MM-dd hh:mm:ss").toStdString();
        }
//        DBG(strNewTime);
//        DBG(strNewTime);
//        std::string tmp1="camId="+m_camId+"strNewTime"+strNewTime;
//        ClockTimer cl1(tmp1);
        if (!faceRpcElement.isBusy()) {
//            faceRpcElement.setProperty("uuid", uuid);
            //#todo
@@ -251,19 +261,19 @@
            yoloRpcElement.submit();
        }
        if (!imageDrawElement.isBusy()) {
            imageDrawElement.setImage(imageTemp);
            imageDrawElement.submit();
        }
//        if (!imageDrawElement.isBusy()) {
//            imageDrawElement.setImage(imageTemp);
//            imageDrawElement.submit();
//        }
        if (bRecordVideoEnable) {
            registerElement(triggerElement);
        }
//        if (bRecordVideoEnable) {
//            registerElement(triggerElement);
//        }
    });
    yoloRpcElement.registerConnector([&] {
        imageDrawElement.setYoloObjects(personElement.getLastScoreRects());
//        imageDrawElement.setYoloObjects(personElement.getLastScoreRects());
        if (!personElement.isBusy()) {
            personElement.setObjsResults(yoloRpcElement.getLastScoreRects());
@@ -272,7 +282,7 @@
    });
    faceRpcElement.registerConnector([&] {
        imageDrawElement.setFaces(faceRpcElement.getLastScoreRects());
//        imageDrawElement.setFaces(faceRpcElement.getLastScoreRects());
    });
    yoloRpcElement.registerConnector("YoloTrigger", [&] {
@@ -291,7 +301,7 @@
    imageDrawElement.registerConnector([&] {
        if (appPref.getIntData("show.image") == 1) {
            ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage());
           ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage());
        }
    });
@@ -304,9 +314,9 @@
        registerElement(faceRpcElement);
        registerElement(faceExtractElement);
    }
    registerElement(imageDrawElement);
    registerElement(newRecordVideoElement);
    videoCaptureElement.setOutPutInterval(5);
//    registerElement(imageDrawElement);
   // registerElement(newRecordVideoElement);
    videoCaptureElement.setOutPutInterval(3);
    faceExtractElement.setProperty("index", to_string(m_index));
    registerElement(yoloRpcElement);
    //#todo setProperty
@@ -439,10 +449,20 @@
    leftJudgment.init(rule.strAreas, rule.strLine);
    rightJudgment.init(rule.strExAreas, rule.strExLine);
    yoloRpcElement.registerConnector([&] {
        leftJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects());
        rightJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects());
        leftJudgment.setImage(yoloRpcElement.getImage());
        rightJudgment.setImage(yoloRpcElement.getImage());
        if(!leftJudgment.isBusy())
        {
             leftJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects());
              leftJudgment.setImage(yoloRpcElement.getImage());
              leftJudgment.submit();
        }
        if(!rightJudgment.isBusy())
        {
            rightJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects());
            rightJudgment.setImage(yoloRpcElement.getImage());
            rightJudgment.submit();
        }
    });
    registerElement(leftJudgment);
    registerElement(rightJudgment);