public FormEditRealtimeAnalyseParam(TaskInfoV3_1 task, E_VIDEO_ANALYZE_TYPE algthmType, string analyseParam)
 {
     InitializeComponent();
     Task         = task;
     AlgthmType   = algthmType;
     AnalyseParam = analyseParam;
 }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public FormEditRealtimeAnalyseParamNoDIO(uint taskid, E_VIDEO_ANALYZE_TYPE algthmType, string analyseParam)
 {
     InitializeComponent();
     TaskId       = taskid;
     AlgthmType   = algthmType;
     AnalyseParam = analyseParam;
 }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
 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);
     }
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 11
0
        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);
            }
        }
Ejemplo n.º 12
0
        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);
            }
        }
Ejemplo n.º 13
0
 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;
         }
     }
 }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
            }
        }
Ejemplo n.º 16
0
        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();
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
 public void DeleteTaskAnalyseType(uint taskid, E_VIDEO_ANALYZE_TYPE analysetype)
 {
     Framework.Container.Instance.CommService.DEL_TASK_ANALYSETYPE(taskid, analysetype);
 }
Ejemplo n.º 19
0
        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);
                }
            }
        }
Ejemplo n.º 20
0
 public VideoAnalyzeTypeInfo(E_VIDEO_ANALYZE_TYPE type, string name)
 {
     Type = type;
     Name = name;
 }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
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);
        }