#include "PerimeterAlarmManager.h" #include #include #include #include #include #include "../VideoServer/QiaoJia/DB/LDBTool.h" #include PerimeterAlarmManager::PerimeterAlarmManager(LDBTool *lDBTool): m_lDBTool(lDBTool) { init(); } PerimeterAlarmManager::~PerimeterAlarmManager() { PA_removeAll(); } void PerimeterAlarmManager::printConfigInfo(const ControllerConfig& config) { //INFO("nFps "<start(); return 0; }else{ PA_removeCamera(index); return PA_addCamera(index, config); } } int PerimeterAlarmManager::PA_removeCamera(int index) { INFO("PA_removeCamera remove_index : "<stop(); control->wait(); delete control; g_mapControls[index] = nullptr; g_mapControls.erase(index); return 0; } return -1; } int PerimeterAlarmManager::PA_removeAll() { INFO("PA_removeAll"); for(auto iter = g_mapControls.begin();iter!=g_mapControls.end();iter++){ AppPaController* control = iter->second; if(nullptr!=control) { control->stop(); control->wait(); delete control; } control = nullptr; } g_mapControls.clear(); return 0; } bool PerimeterAlarmManager::PA_hasIndex(int index) { return g_mapControls[index] != nullptr; } static std::string rtspAddrBuild(std::string ip, const int port, std::string username, std::string passwd, std::string brand) { std::string rtsp_url; if (brand == "haikang") { rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) + "/h264/ch1/main/av_stream"; } else if (brand == "dahua") { //rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0 rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) + "/cam/realmonitor?channel=1&subtype=0"; //TODO } else if (brand == "yushi") { rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) + "/video1"; } else { //TODO } return rtsp_url; } void PerimeterAlarmManager::init() { auto lst = m_lDBTool->searchCamDevTableAll(); auto lst_dev = m_lDBTool->searchConfigTableWithinServerInfo(); appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration); if (lst.size() > 0) { Json::Value json; Json::Value rules; for (auto item : lst) { int camId=item.str_cam_dev_id.toInt(); AlarmRule rule=m_lDBTool->searchCameraRuleByCamId(camId); QVector vec=m_lDBTool->searchCameraWeekRuleByCamId(camId); ControllerConfig config; for(int i=0;i