示例#1
0
        private void Execute_AddTask(object obj)
        {
            var list = obj as ObservableCollection <AnalyseTask>;

            OpenFileDialog pf = null;

            if (list == NewDemosTaskList)
            {
                pf = _DemoDialog;
            }
            else if (list == ReadyDemosTaskList)
            {
                pf = _JSONDialog;
            }

            Nullable <bool> result = pf.ShowDialog();

            if (result == true)
            {
                foreach (string dem in pf.FileNames)
                {
                    var task = new AnalyseTask()
                    {
                        DemofileName = System.IO.Path.GetFileName(dem),
                        Path         = dem,
                        DemoSize     = new System.IO.FileInfo(dem).Length / 1000 / 1000
                    };

                    if (!list.Contains(task))
                    {
                        list.Add(task);
                    }
                }
            }
        }
        private string GetTaskStatusText(AnalyseTask task)
        {
            string         text       = string.Empty;
            TaskStatusInfo statusInfo = Constant.TaskStatusInfos[(int)task.Status];

            if (task.Status != TaskStatus.Analysing)
            {
                text = statusInfo.Name;
            }
            else
            {
                //int countProcessed = task.PictureSource.RecognizedCount + task.PictureSource.ImageErrorCount;
                //if (countProcessed == 0)
                //{
                //    text = string.Format("{0} (0%)", statusInfo.Name);
                //}
                //else
                //{
                //    float percent = ((float)countProcessed) / ((float)task.PictureSource.Count);
                //    string tmp = (percent * 100).ToString("F1");
                //    text = string.Format("{0} ({1}%)", statusInfo.Name, tmp);
                //}
            }
            return(text);
        }
示例#3
0
        public bool Commit()
        {
            bool bRet = ValidateInputs();

            if (bRet)
            {
                m_EditTask.Status = TaskStatus.Init;
                AnalyseTask task = m_EditTask.Clone() as AnalyseTask;
                task.TaskName         = m_EditTask.TaskName;
                task.TaskId           = "V_" + DateTime.Now.Ticks.ToString();
                task.StartAnalyseTime = DateTime.Now;
                task.CreateTime       = DateTime.Now;
                try
                {
                    Framework.Container.Instance.TaskManager.AddTask(task, m_realtimepics);
                    Framework.Container.Instance.EvtAggregator.GetEvent <TaskAddedEvent>().Publish(task);
                }
                catch (SDKCallException ex)
                {
                    bRet     = false;
                    ErrorMsg = "添加任务失败,错误信息" + ex.ToString();
                }
            }
            RaisePropertyChangedEvent("ErrorMsg");
            return(bRet);
        }
示例#4
0
        private string GetTaskAnalyseDuration(AnalyseTask task)
        {
            string duration = string.Empty;

            if (task.StartAnalyseTime != new DateTime() && task.FinishedTime != new DateTime())
            {
                TimeSpan      span = task.FinishedTime.Subtract(task.StartAnalyseTime);
                StringBuilder sb   = new StringBuilder();
                if (span.Hours > 0)
                {
                    sb.AppendFormat("{0}小时", span.Hours);
                }
                if (span.Hours > 0 || span.Minutes > 0)
                {
                    sb.AppendFormat("{0}分", span.Minutes);
                }
                if (span.Minutes > 0 || span.Seconds > 0)
                {
                    sb.AppendFormat("{0}秒", span.Seconds);
                }

                duration = sb.ToString();
            }
            return(duration);
        }
示例#5
0
 private void OnViewFailedResults(AnalyseTask task)
 {
     Task = task;
     RaisePropertyChangedEvent("Task");
     ResultType = 2;
     RaisePropertyChangedEvent("ResultType");
 }
示例#6
0
 public void RegisterTask(AnalyseTask task)
 {
     if (!m_Tasks.Contains(task))
     {
         m_Tasks.Add(task);
     }
 }
示例#7
0
 private void OnTaskAnalyseProgressUpdated(AnalyseTask task)
 {
     if (m_SelectedTask != null && m_SelectedTask.TaskId == task.TaskId)
     {
         m_SelectedTask = task;
         UpdateSummaryTable();
     }
 }
 private void OnTaskAdded(AnalyseTask task)
 {
     AddRow(task);
     if (TaskAdded != null)
     {
         TaskAdded(task, EventArgs.Empty);
     }
 }
示例#9
0
 public AddEditTaskViewModel()
 {
     m_EditTask               = new AnalyseTask();
     m_EditTask.TaskType      = DataModel.TaskType.History;
     m_EditTask.PictureSource = "";
     m_EditTask.CameraId      = "";
     m_EditTask.TaskPriority  = 3;
     m_EditTask.TaskName      = "任务_" + DateTime.Now.ToString("yyyyMMddHHmmss");
 }
示例#10
0
        public bool Contains(AnalyseTask task)
        {
            bool bRet = false;

            if (task != null)
            {
                bRet = m_Tasks.Contains(task);
            }
            return(bRet);
        }
        private void UpdateTaskStatus(AnalyseTask task)
        {
            DataRow row = m_DTTasks.Rows.Find(task.TaskId);

            if (row != null)
            {
                string text = GetTaskStatusText(task);
                row["Status"] = text;
            }
        }
        private void OnTaskModified(AnalyseTask task)
        {
            DataRow row = m_DTTasks.Rows.Find(task.TaskId);

            if (row != null)
            {
                row["Name"] = task.TaskName;
                row["Task"] = task;
            }
        }
        void OnTaskStatusChanged(AnalyseTask task)
        {
            //if (Framework.Container.Instance.MainControl.InvokeRequired)
            //{
            //    Framework.Container.Instance.MainControl.BeginInvoke(new EventHandler(OnTaskStatusChanged), new object[] { sender, e });
            //    return;
            //}

            UpdateTaskStatus(task);
        }
        private void OnViewResults(AnalyseTask task)
        {
            if (m_ucSearchAnalyseResults == null)
            {
                m_ucSearchAnalyseResults      = new ucSearchAnalyseResults();
                m_ucSearchAnalyseResults.Dock = DockStyle.Fill;
                this.Controls.Add(m_ucSearchAnalyseResults);
            }

            m_ucSearchAnalyseResults.BringToFront();
        }
示例#15
0
 private void OnTaskStatusChanged(AnalyseTask task)
 {
     if (m_SelectedTask != null && m_SelectedTask.TaskId == task.TaskId)
     {
         m_SelectedTask = task;
         UpdateSummaryTable();
         // Name = m_SelectedTask.Name;
         RaisePropertyChangedEvent("Name");
         RaisePropertyChangedEvent("FileType");
         RaisePropertyChangedEvent("Path");
     }
 }
        public bool SendPictureItems(AnalyseTask task, PictureItem[] items)
        {
            return(true);
            //Analyse_Task analys_Task = new Analyse_Task();
            //task.ParseTo(ref analys_Task);
            //IntPtr ptr = GetPictureItemPtr(task.FileType,items);

            //bool result = InteropService.SendPictures(analys_Task, ptr, items.Length);
            //System.Diagnostics.Trace.WriteLine("InteropService.SendPictures ret:" + result);

            //Marshal.FreeHGlobal(ptr);
            //return result;
        }
        private void RemoveRow(uint id)
        {
            DataRow row = m_DTTasks.Rows.Find(id);

            if (row != null)
            {
                row.Delete();

                if (m_DTTasks.Rows.Count == 0)
                {
                    FocusedTask = null;
                }
            }
        }
示例#18
0
        private void OnSelectedTaskChanged(AnalyseTask task)
        {
            m_SelectedTask = task;
            UpdateSummaryTable();

            if (m_SelectedTask != null)
            {
                // Name = m_SelectedTask.Name;
                RaisePropertyChangedEvent("Name");
                RaisePropertyChangedEvent("FileType");
                RaisePropertyChangedEvent("Path");
            }
            RaisePropertyChangedEvent("HasSelectedTask");
        }
示例#19
0
        private void AddRow(AnalyseTask task)
        {
            string status   = Constant.TaskStatusInfos.FirstOrDefault(item => item.Type == task.Status).Name;
            string duration = GetTaskAnalyseDuration(task);

            m_DTTasks.Rows.Add(new object[] { task.TaskId, task.TaskName, status,
                                              task.ProcessedFileCount,
                                              task.StartAnalyseTime,
                                              duration,
                                              DataModel.Constant.TaskTypeInfos.FirstOrDefault(item => item.Type == task.TaskType).Name,
                                              task.PictureSource,
                                              (task.CreateTime != new DateTime())? task.CreateTime.ToString(DataModel.Constant.DATETIME_FORMAT) : string.Empty,
                                              (task.FinishedTime != new DateTime())? task.FinishedTime.ToString(DataModel.Constant.DATETIME_FORMAT) : string.Empty,
                                              task });
        }
示例#20
0
        //
        // HELPERS
        //
        private void AddNewReadyDemo(string json)
        {
            json = json.Replace(".dem", ".json");
            var task = new AnalyseTask()
            {
                DemofileName = System.IO.Path.GetFileName(json),
                Path         = json,
                DemoSize     = new System.IO.FileInfo(json).Length / 1000 / 1000
            };

            if (!ReadyDemosTaskList.Contains(task))
            {
                ReadyDemosTaskList.Add(task);
            }
        }
示例#21
0
        private void OnTaskChanged(AnalyseTask task)
        {
            List <AnalyseTask> tasks = Framework.Container.Instance.TaskManager.GetAllTasks();

            if (tasks != null)
            {
                m_Tasks = tasks.ToArray();
            }
            else
            {
                m_Tasks = new AnalyseTask[0];
            }

            if (TasksChanged != null)
            {
                TasksChanged(this, EventArgs.Empty);
            }
        }
示例#22
0
 public List <AnalyseRecord> GetAllResults(AnalyseTask task)
 {
     return(m_Records);
 }
 public FormVehicleDetectionSettings(AnalyseTask task)
 {
     m_Task = task;
     InitializeComponent();
 }
 private void OnTaskDeleted(AnalyseTask task)
 {
     RemoveRow(task.TaskId);
 }
        private void AddRow(AnalyseTask task)
        {
            string text = GetTaskStatusText(task);

            m_DTTasks.Rows.Add(new object[] { task.TaskId, task.TaskName, text, task });
        }