| | |
| | | // |
| | | |
| | | #include "RtspAnalysElement.h" |
| | | #include <FaceTrackingWrapper.h> |
| | | |
| | | #include <basic/http_server/HttpSrvRetRecieve.hpp> |
| | | |
| | |
| | | } |
| | | |
| | | void RtspAnalysElement::init() { |
| | | appPref.setIntData("FaceTrackingRet", 1); |
| | | auto lst = m_lDBTool->searchCamDevTableAll(); |
| | | auto lst_dev = m_lDBTool->searchConfigTableWithinServerInfo(); |
| | | |
| | |
| | | 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]) { |
| | |
| | | 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; |
| | | } |
| | |
| | | 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: { |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | |
| | | 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"); |
| | |
| | | // controllers[index] = new AppPipeController(index, std::move(value), false); |
| | | |
| | | controllers[index]->setfdfsClient(&fdfsClient); |
| | | controllers[index]->start(); |
| | | // controllers[index]->start(); |
| | | currentCount++; |
| | | return 0; |
| | | } |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |