Esempio n. 1
0
 void CommService_TaskMonified(TaskInfoV3_1 obj)
 {
     System.Diagnostics.Trace.WriteLine("CommService_TaskMonified " + obj.ToString());
     if (obj.StatusList.Count > 0)
     {
         E_VDA_TASK_STATUS s = obj.StatusList[0].Status;
         uint p     = obj.StatusList[0].Progress;
         int  index = m_lastTaskidList.IndexOf(obj.TaskId);
         if (index >= 0)
         {
             if (s != TaskShowStatus)
             {
                 if (TaskModified != null)
                 {
                     TaskModified(obj);
                 }
             }
             else
             {
                 if (UpdateTaskProgress != null)
                 {
                     UpdateTaskProgress(index, obj.TaskId, s, p);
                 }
             }
         }
         if (s == TaskShowStatus && TaskModified != null)
         {
             TaskModified(obj);
         }
     }
 }
Esempio n. 2
0
        public int CalcProgress(E_VDA_TASK_STATUS stat, int progress, bool iscomb = true)
        {
            int totalprogress = 0;

            switch (stat)
            {
            case E_VDA_TASK_STATUS.E_TASK_STATUS_NOUSE:
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_WAITING:
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_IMPORT_WAIT:
                totalprogress = 100;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_IMPORT_EXECUTING:
                totalprogress = iscomb?(200 + (int)(progress / 5)):progress;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_IMPORT_FAILED:
                totalprogress = 0;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_WAIT:
                totalprogress = iscomb?400:100;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_EXECUTING:
                totalprogress = iscomb?(500 + (int)(progress * 2 / 5)):progress;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_FINISH:
                totalprogress = 1000;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_FAILED:
                totalprogress = iscomb?500:0;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_SUSPEND:
                totalprogress = 0;
                break;

            case E_VDA_TASK_STATUS.E_TASK_STATUS_BEEN_DELETE:
                totalprogress = 0;
                break;

            default:
                break;
            }
            return(totalprogress);
        }
Esempio n. 3
0
        public void PauseOrResumeTask(uint taskid)
        {
            var task = Framework.Container.Instance.CommService.GET_TASK(taskid);

            if (task.StatusList.Count > 0)
            {
                E_VDA_TASK_STATUS stat = task.StatusList[0].Status;
                if (stat == E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_SUSPEND)
                {
                    Framework.Container.Instance.CommService.RESUME_REALTIME_TASK(taskid);
                }
                else if (stat == E_VDA_TASK_STATUS.E_TASK_STATUS_ANALYSE_EXECUTING)
                {
                    Framework.Container.Instance.CommService.PAUSE_REALTIME_TASK(taskid);
                }
            }
        }
Esempio n. 4
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);
            }
        }
Esempio n. 5
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();
        }
Esempio n. 6
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);
        }
Esempio n. 7
0
 public TaskStatusInfo(E_VDA_TASK_STATUS status, string name)
 {
     Status = status;
     Name   = name;
 }
Esempio n. 8
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);
        }