pansen
2018-12-26 3e6fc7a38f96f433ba9a72518e47a4bfa718fa3e
QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
@@ -3,6 +3,7 @@
//
#include "RtspAnalysElement.h"
#include <FaceTrackingWrapper.h>
#include <basic/http_server/HttpSrvRetRecieve.hpp>
@@ -68,6 +69,7 @@
}
void RtspAnalysElement::init() {
    appPref.setIntData("FaceTrackingRet", 1);
    auto lst = m_lDBTool->searchCamDevTableAll();
    auto lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
@@ -106,7 +108,8 @@
            vector<int> sdkDetCoVec = chnString2Vec(en_sdk.str_det_thr.toStdString());
            vector<int> sdkComCoVec = chnString2Vec(en_sdk.str_cmp_thr.toStdString());
            int camId=item.str_cam_dev_id.toInt();
            int camId = item.str_cam_dev_id.toInt();
            int channel = 0;
            int t_size = sdkVec.size();
            for (int i = 0; i < t_size; i++) {
                switch (sdkVec[i]) {
@@ -115,7 +118,18 @@
                        json["face.enable"] = "1";
                        SETSCORE(sdkDetCoVec, i, t_camIdex + "face.det");
                        SETSCORE(sdkComCoVec, i, t_camIdex + "face.cmp");
                        BasicFace::InitParam t_initParam;
//                        t_initParam.nDeviceID = 0;
//                        t_initParam.nImageWidth = nWidth;
//                        t_initParam.nImageHeight = nHeight;
//                        t_initParam.nMaxFaceNum = 50;
//                        t_initParam.nSampleSize = nWidth / 2;
//                        t_initParam.nDetectionIntervalFrame = 12;
                        g_faceTrackingWrapper.setChannelParam(channel, t_initParam);
                        g_channelCache.insert(std::make_pair(t_camIdex, channel));
                        channel++;
                        DBG(" TESTCODE " << sdkDetCoVec[i] << " " << sdkComCoVec[i]);
//                        #todo add param
                        break;
                    }
@@ -137,15 +151,15 @@
                        json["perimeter.enable"] = "1";
                        SETSCORE(sdkDetCoVec, i, t_camIdex + "perimeter.det");
                        SETSCORE(sdkComCoVec, i, t_camIdex + "perimeter.cmp");
                        setDataByType(4,json,camId);
                        setDataByType(4, json, camId);
                        break;
                      }
                    }
                    case 5: {
                        json["crowd.enable"] = "1";
                        SETSCORE(sdkDetCoVec, i, t_camIdex + "crowd.det");
                        SETSCORE(sdkComCoVec, i, t_camIdex + "crowd.cmp");
                        setDataByType(5,json,camId);
                        setDataByType(5, json, camId);
                        break;
                    }
                    case 6: {
@@ -153,7 +167,7 @@
                        json["keepRight.enable"] = "1";
                        SETSCORE(sdkDetCoVec, i, t_camIdex + "keepRight.det");
                        SETSCORE(sdkComCoVec, i, t_camIdex + "keepRight.cmp");
                        setDataByType(6,json,camId);
                        setDataByType(6, json, camId);
                        break;
                    }
                }
@@ -167,6 +181,10 @@
            appPref.getLongData("gpu.index");
            addCamera(t_camIdex, json.toStyledString());
        }
        g_faceTrackingWrapper.initHandle();
        for (auto &item :controllers) {
            item.second->start();
        }
    } else {
        ERR("searchCamDevTableAll size is 0");
@@ -196,7 +214,7 @@
//            controllers[index] = new AppPipeController(index, std::move(value), false);
            controllers[index]->setfdfsClient(&fdfsClient);
            controllers[index]->start();
//            controllers[index]->start();
            currentCount++;
            return 0;
        }
@@ -266,39 +284,36 @@
    }
    return result;
}
void RtspAnalysElement::setDataByType(int type,Json::Value& json,int camId)
{
void RtspAnalysElement::setDataByType(int type, Json::Value &json, int camId) {
    switch (type) {
    case 4:
    {
        auto rule=m_lDBTool->searchPerimeterRuleByCamId(camId);
        json["perimeter.area"]=rule.strAreas.toStdString();
        json["perimeter.num"]=rule.nAlarmPeopleNum;
        json["perimeter.delay"]=rule.nTriggerDelay;
        json["perimeter.tolerance"]=rule.nTriggertolerance;
        break;
    }
    case 5:
    {
        auto rule=m_lDBTool->searchCrowdRuleByCamId(camId);
        json["crowd.area"]=rule.strAreas.toStdString();
        json["crowd.num"]=rule.nAlarmPeopleNum;
        json["crowd.delay"]=rule.nTriggerDelay;
        json["crowd.tolerance"]=rule.nTriggertolerance;
        break;
    }
    case 6:
    {
         auto rule=m_lDBTool->searchActRuleByCamId(camId);
         json["keepRight.leftArea"]=rule.strAreas.toStdString();
         json["keepRight.leftLine"]=rule.strLine.toStdString();
         json["keepRight.rightArea"]=rule.strExAreas.toStdString();
         json["keepRight.rightLine"]=rule.strExLine.toStdString();
         json["keepRight.delay"]=rule.nTriggerDelay;
         json["keepRight.tolerance"]=rule.nTriggertolerance;
        break;
    }
    default:
        break;
        case 4: {
            auto rule = m_lDBTool->searchPerimeterRuleByCamId(camId);
            json["perimeter.area"] = rule.strAreas.toStdString();
            json["perimeter.num"] = rule.nAlarmPeopleNum;
            json["perimeter.delay"] = rule.nTriggerDelay;
            json["perimeter.tolerance"] = rule.nTriggertolerance;
            break;
        }
        case 5: {
            auto rule = m_lDBTool->searchCrowdRuleByCamId(camId);
            json["crowd.area"] = rule.strAreas.toStdString();
            json["crowd.num"] = rule.nAlarmPeopleNum;
            json["crowd.delay"] = rule.nTriggerDelay;
            json["crowd.tolerance"] = rule.nTriggertolerance;
            break;
        }
        case 6: {
            auto rule = m_lDBTool->searchActRuleByCamId(camId);
            json["keepRight.leftArea"] = rule.strAreas.toStdString();
            json["keepRight.leftLine"] = rule.strLine.toStdString();
            json["keepRight.rightArea"] = rule.strExAreas.toStdString();
            json["keepRight.rightLine"] = rule.strExLine.toStdString();
            json["keepRight.delay"] = rule.nTriggerDelay;
            json["keepRight.tolerance"] = rule.nTriggertolerance;
            break;
        }
        default:
            break;
    }
}