public FormEditRealtimeAnalyseParam(TaskInfoV3_1 task, E_VIDEO_ANALYZE_TYPE algthmType, string analyseParam) { InitializeComponent(); Task = task; AlgthmType = algthmType; AnalyseParam = analyseParam; }
void buttonDelItem_Click() { E_VIDEO_ANALYZE_TYPE t = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE; uint id = 0; if (advTree1.SelectedNode.Tag is Tuple <uint, StatusInfoV3_1> ) { id = (advTree1.SelectedNode.Tag as Tuple <uint, StatusInfoV3_1>).Item1; t = (advTree1.SelectedNode.Tag as Tuple <uint, StatusInfoV3_1>).Item2.AlgthmType; } if (advTree1.SelectedNode.Tag is TaskInfoV3_1) { id = (advTree1.SelectedNode.Tag as TaskInfoV3_1).TaskId; } if (id != 0) { string str = "[" + id + "]" + m_viewModel.GetTaskInfo(id).ToString(); string msg = "是否要删除任务:" + str + (t == E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE ? " ?" : " 的 " + DataModel.Constant.VideoAnalyzeTypeInfo.Single(it => it.Type == t) + " 算法?"); if (DevComponents.DotNetBar.MessageBoxEx.Show(msg, Framework.Environment.PROGRAM_NAME, MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) == System.Windows.Forms.DialogResult.Yes) { if (t == E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE) { m_viewModel.DeleteTask(id); } else { m_viewModel.DeleteTaskAnalyseType(id, t); } } } }
public FormEditRealtimeAnalyseParamNoDIO(uint taskid, E_VIDEO_ANALYZE_TYPE algthmType, string analyseParam) { InitializeComponent(); TaskId = taskid; AlgthmType = algthmType; AnalyseParam = analyseParam; }
private void GetAnalyseSettingPanel(E_VIDEO_ANALYZE_TYPE item) { if (panelEx4.Controls.ContainsKey("ucAnalyseSetting_" + item.ToString())) { panelEx4.Controls["ucAnalyseSetting_" + item.ToString()].BringToFront(); } else { Control uc; switch (item) { case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_FACE_DYNAMIC: uc = new ucFaceAnalyseSetting(); break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD: uc = new ucTrafficEventAnalyseSetting(); break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROWD: uc = new ucCrowdAnalyseSetting(); break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_MOVEOBJ_PLATFORM: uc = new ucMoveObjAnalyseSetting(); break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_PERSON_COUNT: uc = new ucPeopleCountAnalyseSetting(); break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_BEHAVIOR_ALARM: uc = new ucBehaviourAnalyseSetting(); break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_ACCIDENT_ALARM: case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_BRIEAF: case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE: case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_MOVEOBJ: case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_VEHICLE: case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_SPECIAL_EFFECT_WIPEOFF_FOG: case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_IMAGE_SEARCH: default: uc = null; break; } if (uc != null) { ((IAnalyseSetting)uc).DrawHandle = ucSingleDrawImageWnd1; uc.Name = "ucAnalyseSetting_" + item.ToString(); uc.Dock = DockStyle.Fill; panelEx4.Controls.Add(uc); uc.BringToFront(); } } m_viewModel.AnalyseType = item; }
public void Unsubscribe(uint taskid, E_VIDEO_ANALYZE_TYPE type) { if (m_transEventList.ContainsKey(new Tuple <uint, E_VIDEO_ANALYZE_TYPE>(taskid, type))) { Framework.Container.Instance.CommService.DEL_TRANS_EVENT(m_transEventList[new Tuple <uint, E_VIDEO_ANALYZE_TYPE>(taskid, type)]); m_transEventList.Remove(new Tuple <uint, E_VIDEO_ANALYZE_TYPE>(taskid, type)); } }
public bool AddAnalyse(E_VIDEO_ANALYZE_TYPE type) { if (!Validate()) { return(false); } Framework.Container.Instance.CommService.ADD_TASK_ANALYSETYPE(m_task.TaskId, type, GetDefaultAnalyseParam(type)); return(true); }
private void btnSetAnalyseType_Click(object sender, EventArgs e) { DevComponents.DotNetBar.ButtonX b = sender as DevComponents.DotNetBar.ButtonX; if (b != null && b.Tag is E_VIDEO_ANALYZE_TYPE) { E_VIDEO_ANALYZE_TYPE item = (E_VIDEO_ANALYZE_TYPE)b.Tag; SetSetAnalyseTypeBtnCheck(item); GetAnalyseSettingPanel(item); } }
public bool DeleteAnalyse(E_VIDEO_ANALYZE_TYPE type) { if (!Validate()) { return(false); } Framework.Container.Instance.CommService.DEL_TASK_ANALYSETYPE(m_task.TaskId, type); return(true); }
public bool ReAnalyse(E_VIDEO_ANALYZE_TYPE type, string analyseparam, uint splitTime = 0) { if (!Validate()) { return(false); } Framework.Container.Instance.CommService.TASK_REANALYSE(m_task.TaskId, type, analyseparam, splitTime); return(true); }
public void Subscribe(uint taskid, E_VIDEO_ANALYZE_TYPE type) { if (m_transEventList.ContainsKey(new Tuple <uint, E_VIDEO_ANALYZE_TYPE>(taskid, type))) { return; } uint eventid = Framework.Container.Instance.CommService.ADD_TRANS_EVENT(taskid, 0, E_TRANCE_STORE_TYPE.E_TRANCE_STORE_LOCAL, m_serverIp, m_serverPort, E_TRANS_PROTOCOL_TYPE.E_TRANS_PROTOCOL_TCP, type); //uint eventid = Framework.Container.Instance.CommService.ADD_TRANS_EVENT(taskid, 0, E_TRANCE_STORE_TYPE.E_TRANCE_STORE_LOCAL, m_serverIp, m_serverPort, E_TRANS_PROTOCOL_TYPE.E_TRANS_PROTOCOL_WEBSERVICE); m_transEventList.Add(new Tuple <uint, E_VIDEO_ANALYZE_TYPE>(taskid, type), eventid); }
public void AddFaceAlarmControl(string cameraID, uint controlThreshold, uint blackListHandle, uint controlNation = 1000, uint controlSex = 3, uint beginAge = 0, uint endAge = 0) { E_VIDEO_ANALYZE_TYPE type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_FACE_DYNAMIC; var rs = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(cameraID, type); if (rs != null) { SearchServices.SearchServices m_SearchService = new SearchServices.SearchServices("http://{0}:{1}/?matchservice.wsdl"); m_SearchService.Init(rs.StoreIP, rs.StortPort); var sublist = m_SearchService.ADD_FACE_CONTORL_DATA(cameraID, controlThreshold, blackListHandle, controlNation, controlSex, beginAge, endAge); } }
public void DelFaceControlByID(string cameraID, uint id) { E_VIDEO_ANALYZE_TYPE type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_FACE_DYNAMIC; var rs = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(cameraID, type); if (rs != null) { SearchServices.SearchServices m_SearchService = new SearchServices.SearchServices("http://{0}:{1}/?matchservice.wsdl"); m_SearchService.Init(rs.StoreIP, rs.StortPort); m_SearchService.DEL_FACE_CONTORL_DATA(id); } }
private void SetSetAnalyseTypeBtnCheck(E_VIDEO_ANALYZE_TYPE analyzeType) { foreach (var item in flowLayoutPanel1.Controls) { DevComponents.DotNetBar.ButtonX b = item as DevComponents.DotNetBar.ButtonX; if ((E_VIDEO_ANALYZE_TYPE)b.Tag == analyzeType) { b.Checked = true; } else { b.Checked = false; } } }
private string GetDefaultAnalyseParam(E_VIDEO_ANALYZE_TYPE type) { string path = Framework.Container.ExecutingPath; if (string.IsNullOrEmpty(path)) { Assembly asm = Assembly.GetExecutingAssembly(); path = Directory.GetParent(asm.Location).FullName; } string configFile = Path.Combine(path, "AnalyseParam\\" + type.ToString() + ".xml"); string param = ""; if (File.Exists(configFile)) { param = File.ReadAllText(configFile); } return(param); }
private void buttonReAnalyse_Click(object sender, EventArgs e) { try { E_VDA_TASK_STATUS totalstatus = 0; E_VIDEO_ANALYZE_TYPE totalalaysetype = 0; foreach (var s in m_viewModel.CurrentTask.StatusList) { totalstatus = s.Status; totalalaysetype = s.AlgthmType; } m_viewModel.PauseTask(); bool ret = m_viewModel.ReAnalyse(totalalaysetype, ""); m_viewModel.ResumeTask(); } catch (SDKCallException ex) { MessageBoxEx.Show("当前状态无法进行重新分析,[" + ex.ErrorCode + "]" + ex.Message, Framework.Environment.PROGRAM_NAME); } }
public void Init() { E_VDA_TASK_STATUS totalstatus = 0; E_VIDEO_ANALYZE_TYPE totalalaysetype = 0; foreach (var s in m_viewModel.CurrentTask.StatusList) { totalstatus = s.Status; totalalaysetype = s.AlgthmType; } textBoxAnlyse.Text = DataModel.Constant.VideoAnalyzeTypeInfo.Single(item => item.Type == totalalaysetype).Name; textBoxFilePath.Text = m_viewModel.CurrentTask.OriFilePath; textBoxTaskId.Text = m_viewModel.CurrentTask.TaskId.ToString(); textBoxTaskName.Text = m_viewModel.CurrentTask.TaskName; textBoxTaskStatus.Text = DataModel.Constant.TaskStatusInfos.Single(item => item.Status == totalstatus).Name; int index = m_viewModel.CurrentTask.TaskName.LastIndexOf('_'); string camName = (index < 0) ? m_viewModel.CurrentTask.TaskName : m_viewModel.CurrentTask.TaskName.Substring(index + 1); textBoxCameraID.Text = camName; textBoxTaskType.Text = DataModel.Constant.TaskTypeInfos.Single(item => item.Status == m_viewModel.CurrentTask.TaskType).Name; comboBoxPriority.SelectedIndex = (int)(m_viewModel.CurrentTask.Priority - 1); TitleText = string.Format("[{0}] {1}", m_viewModel.CurrentTask.TaskId, m_viewModel.CurrentTask.TaskName); isInited = true; foreach (var item in m_viewModel.CurrentTask.StatusList) { if (item.AlgthmType == E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE) { continue; } DevComponents.DotNetBar.ButtonItem buttonItem = new ButtonItem(); buttonItem.GlobalItem = false; buttonItem.Text = "设置分析参数并重新分析..."; buttonItem.Click += new System.EventHandler(this.buttonItem1_Click); buttonItem.Tag = item; buttonReAnalyse.SubItems.Add(buttonItem); buttonReAnalyse.SplitButton = true; } buttonReAnalyse.Refresh(); }
public string GetActionURL(E_VDA_TASK_STATUS status, E_VIDEO_ANALYZE_TYPE analysetype, TaskType tasktype) { string url = ""; if (status == E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_EXECUTING || status == E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_SUSPEND) { switch (analysetype) { case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE: break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_MOVEOBJ: break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_VEHICLE: break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_FACE_DYNAMIC: url += "<a href=\"E_TASK_ACTION_TYPE_DYNMIC_FACE_CONTROL\">人脸布控</a> <a href=\"E_TASK_ACTION_TYPE_DYNMIC_FACE_ALARM\">人脸报警</a> "; break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_BRIEAF: url += "<a href=\"E_TASK_ACTION_TYPE_BRIEF\">摘要播放</a> "; break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_MOVEOBJ_PLATFORM: url += "<a href=\"E_TASK_ACTION_TYPE_PEOPLE_SEARCH\">行人检索</a> <a href=\"E_TASK_ACTION_TYPE_VEHICLE_SEARCH\">车辆检索</a> "; break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD: url += "<a href=\"E_TASK_ACTION_TYPE_VEHICLE_SEARCH\">车辆检索</a> "; if (tasktype == TaskType.Realtime) { url += "<a href=\"E_TASK_ACTION_TYPE_TRAFFIC_EVENT\">交通事件</a> "; } break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_DYNAMIC_VEHICLE: url += "<a href=\"E_TASK_ACTION_TYPE_DYNMIC_VEHICLE_SEARCH\">动态车辆</a> "; break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_ACCIDENT_ALARM: break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_BEHAVIOR_ALARM: break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_SPECIAL_EFFECT_WIPEOFF_FOG: break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROWD: if (tasktype == TaskType.Realtime) { url += "<a href=\"E_TASK_ACTION_TYPE_CROWD\">大客流</a> "; } break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_PERSON_COUNT: break; case E_VIDEO_ANALYZE_TYPE.E_ANALYZE_IMAGE_SEARCH: break; default: break; } } return(url); }
public void DeleteTaskAnalyseType(uint taskid, E_VIDEO_ANALYZE_TYPE analysetype) { Framework.Container.Instance.CommService.DEL_TASK_ANALYSETYPE(taskid, analysetype); }
private void buttonImport_Click(object sender, EventArgs e) { System.Windows.Forms.OpenFileDialog ofd = new OpenFileDialog(); ofd.RestoreDirectory = true; ofd.Filter = "配置文件|*.xml"; string fileName = ""; E_VIDEO_ANALYZE_TYPE type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE; if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { fileName = ofd.FileName; try { string xml = System.IO.File.ReadAllText(fileName); System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument(); xmldoc.LoadXml(xml); System.Xml.XmlNode typenode = xmldoc.SelectSingleNode("root/AlgorithmInitParam/AlgorithmType"); switch (typenode.InnerXml) { case "Behaviour": type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_BEHAVIOR_ALARM; break; case "CrowdAnalyse": type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROWD; break; case "Face": type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_FACE_DYNAMIC; break; case "PeopleCount": type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_PERSON_COUNT; break; case "Crossroad": type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD; break; case "MoveObject": type = E_VIDEO_ANALYZE_TYPE.E_ANALYZE_MOVEOBJ_PLATFORM; break; default: break; } if (type != E_VIDEO_ANALYZE_TYPE.E_ANALYZE_NOUSE) { GetAnalyseSettingPanel(type); if (panelEx4.Controls.Count > 0) { IAnalyseSetting item = panelEx4.Controls[0] as IAnalyseSetting; if (ucSingleDrawImageWnd1.DrawImage != null) { SetSetAnalyseTypeBtnCheck(type); item.AnalyseParam = xml; } } } } catch (Exception ex) { DevComponents.DotNetBar.MessageBoxEx.Show("导入配置文件错误。" + ex.Message, Framework.Environment.PROGRAM_NAME, MessageBoxButtons.OK); } } }
public VideoAnalyzeTypeInfo(E_VIDEO_ANALYZE_TYPE type, string name) { Type = type; Name = name; }
public bool AddTransEvent(uint taskId, uint templateId, E_TRANCE_STORE_TYPE storeType, string storeServerIP, uint storeServerPort, E_TRANS_PROTOCOL_TYPE transProtocol, E_VIDEO_ANALYZE_TYPE analyseType) { uint ret = Framework.Container.Instance.CommService.ADD_TRANS_EVENT(taskId, templateId, storeType, storeServerIP, storeServerPort, transProtocol, analyseType); return(ret == 0); }
private DevComponents.AdvTree.Node AddTaskTreeNode(TaskInfoV3_1 item) { DevComponents.AdvTree.Node n = new DevComponents.AdvTree.Node(item.TaskId.ToString()); DevComponents.AdvTree.Cell c = new DevComponents.AdvTree.Cell(); //c.Images.Image = global::IVX.Live.MainForm.Properties.Resources.bkjpg; c.Images.ImageIndex = 0; c.Text = item.ToString(); E_VDA_TASK_STATUS totalstatus = 0; E_VIDEO_ANALYZE_TYPE totalalaysetype = 0; foreach (var s in item.StatusList) { totalstatus = s.Status; totalalaysetype = s.AlgthmType; } n.Cells.Add(c); string anaurl = DataModel.Constant.TaskStatusInfos.Single(it => it.Status == totalstatus).Name; if (totalstatus == E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_EXECUTING) { anaurl += " <a href=\"E_TASK_ACTION_TYPE_SUNPEND\">暂停分析</a> "; } if (totalstatus == E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_SUSPEND) { anaurl += " <a href=\"E_TASK_ACTION_TYPE_CONTINUE\">继续分析</a> "; } if (totalstatus == E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_FAILED || totalstatus == E_VDA_TASK_STATUS.E_TASK_STATUS_IMPORT_FAILED) { anaurl = "<font color=\"#ff0000\" ><b>" + anaurl + "</b></font>"; } DevComponents.AdvTree.Cell cellana = new DevComponents.AdvTree.Cell(anaurl); cellana.TagString = DataModel.Constant.TaskStatusInfos.Single(it => it.Status == totalstatus).Name; n.Cells.Add(cellana); n.Cells.Add(new DevComponents.AdvTree.Cell(DataModel.Constant.VideoAnalyzeTypeInfo.Single(it => it.Type == totalalaysetype).Name)); DevComponents.AdvTree.Cell c1 = new DevComponents.AdvTree.Cell(); string url = "<a href=\"E_TASK_ACTION_TYPE_INFO\">查看信息</a> "; if ((E_VDA_TASK_STATUS)totalstatus >= E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_WAIT) { url += "<a href=\"E_TASK_ACTION_TYPE_PLAYBACK\">视频播放</a> "; } url += m_viewModel.GetActionURL(totalstatus, totalalaysetype, item.TaskType); //url += "<a href=\"E_TASK_ACTION_TYPE_DELETE\">删除任务</a>"; c1.Text = url; n.Cells.Add(c1); DevComponents.DotNetBar.ButtonItem sbuttonItem = new DevComponents.DotNetBar.ButtonItem(); sbuttonItem.Text = "";// "删除任务"; sbuttonItem.Click += sbuttonItem_Click; //sbuttonItem.Image = Properties.Resources._305_Close_24x24_72; sbuttonItem.Symbol = "";// "/uf014"; sbuttonItem.Tooltip = "删除任务"; //sbuttonItem.Tag = new Tuple<uint, E_VIDEO_ANALYZE_TYPE>(item.TaskId, totalalaysetype); DevComponents.AdvTree.Cell c2 = new DevComponents.AdvTree.Cell(); c2.HostedItem = sbuttonItem; n.Cells.Add(c2); n.Tag = item; return(n); }