public void Start(SearchItemV3_1 cameraItem)
        {
            /*
             * 订阅 CrowdRealTimeEvent 事件
             * start
             */
            string cameraId = "";

            if (cameraItem != null)
            {
                cameraId = cameraItem.CameraID;
            }
            if (m_vm == null)
            {
                var info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(cameraId, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROWD);
                if (info == null)
                {
                    // notify UI
                    if (RealSearchFinished != null)
                    {
                        CrowdInfo crowdInfo = new CrowdInfo();
                        crowdInfo.CameraID          = "SDKError";
                        crowdInfo.DirectionImageURL = "大客流实时-查询错误:无结果数据";
                        RealSearchFinished((object)crowdInfo, null);
                    }
                    return;
                }
                string ip   = info.StoreIP;
                uint   port = info.StortPort;
                m_vm = new SearchViewModelBase(ip, port);
                WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <CrowdRealTimeEvent>().Subscribe(OnSearchResultReturned, Microsoft.Practices.Prism.Events.ThreadOption.WinFormUIThread);
            }
            curTask = Framework.Container.Instance.CommService.GET_TASK(cameraItem.TaskId);
            m_vm.StartCrowdRealtime(cameraId);
        }
示例#2
0
 private void advTreeSel_NodeDoubleClick(object sender, TreeNodeMouseEventArgs e)
 {
     foreach (Node item in advTreeSel.SelectedNodes)
     {
         SearchItemV3_1 si = item.Tag as SearchItemV3_1;
         if (si != null)
         {
             m_viewModel.RemoveSelectedItem(si);
         }
     }
     InitTree(advTreeUnSel, m_viewModel.UnSelectedItems);
     InitTree(advTreeSel, m_viewModel.SelectedItems);
     labelSelectedCount.Text = "已经选择" + m_viewModel.SelectedItems.Count + "项";
 }
示例#3
0
 private void advTreeSel_AfterNodeDrop(object sender, TreeDragDropEventArgs e)
 {
     foreach (Node item in e.Nodes)
     {
         SearchItemV3_1 si = item.Tag as SearchItemV3_1;
         if (si != null)
         {
             m_viewModel.AddSelectedItem(si);
         }
     }
     InitTree(advTreeUnSel, m_viewModel.UnSelectedItems);
     InitTree(advTreeSel, m_viewModel.SelectedItems);
     labelSelectedCount.Text = "已经选择" + m_viewModel.SelectedItems.Count + "项";
 }
        public void Start(UInt32 startTime, UInt32 endTime, SearchItemV3_1 item, UInt32 timeInterVel)
        {
            /*
             * 订阅 CrowdReportEvent 事件
             *
             * start
             */
            string cameraId = item.CameraID;
            var    info     = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(cameraId, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROWD);

            if (info == null)
            {
                List <CrowdStatistic> crowdInfoList = new List <CrowdStatistic> {
                };
                //notify UI
                if (ReportSearchFinished != null)
                {
                    ReportSearchFinished((object)crowdInfoList, null);
                }
                return;
            }
            string ip   = info.StoreIP;
            uint   port = info.StortPort;

            m_vm    = new SearchViewModelBase(ip, port);
            curTask = Framework.Container.Instance.CommService.GET_TASK(item.TaskId);
            if (curTask.TaskType == TaskType.History)
            {
                uint beginTime = DataModel.Common.ConvertLinuxTime(curTask.StartTime);
                if (startTime <= beginTime)
                {
                    startTime = 0;
                }
                else
                {
                    startTime -= beginTime;
                }

                if (endTime <= beginTime)
                {
                    endTime = 0;
                }
                else
                {
                    endTime -= beginTime;
                }
            }
            WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <CrowdReportEvent>().Subscribe(OnSearchResultReturned, Microsoft.Practices.Prism.Events.ThreadOption.WinFormUIThread);
            m_vm.StartCrowdReport(startTime, endTime, cameraId, timeInterVel);
        }
示例#5
0
        public void RemoveSelectedItem(SearchItemV3_1 item)
        {
            var sel = SelectedItems.FirstOrDefault(it => it.CameraID == item.CameraID);

            if (sel != null)
            {
                SelectedItems.Remove(sel);
            }

            var unsel = UnSelectedItems.FirstOrDefault(it => it.CameraID == item.CameraID);

            if (unsel == null)
            {
                UnSelectedItems.Add(item);
            }
        }
示例#6
0
        private void searchBtn_Click(object sender, EventArgs e)
        {
            StopThread();
            if (!m_crowdCamerTree.IsHasChecked)
            {
                MessageBoxEx.Show("请选择一个查询目标");
                return;
            }
            // 根据选中的个数 添加 tableItem
            var serList = m_crowdCamerTree.GetCheckTSearchList();

            if (serList.Count > 0)
            {
                cameraItem = serList[0];
                Start();
            }
        }
        void ucTaskFileSystem1_SelectedTask(SearchItemV3_1 obj)
        {
            if (m_currTask != null)
                m_viewModel.Unsubscribe(m_currTask.TaskId, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD);

            if (obj != null)
            {
                m_viewModel.Subscribe(obj.TaskId, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD);
                m_currTask = obj;
                buttonItem1.Text = "报警数据源:" + obj.CameraID;
            }
            else
            { 
                m_currTask = null;
                buttonItem1.Text = "";
            }
        }
示例#8
0
 public void StartWithTaskAction(SearchItemV3_1 item)
 {
     StopThread();
     cameraItem = item;
     Start();
 }
示例#9
0
 internal void StartWithTaskAction(SearchItemV3_1 searchItemV3_1)
 {
     ucTaskFileSystem1.SetSelectedTask(searchItemV3_1);
     ucTaskFileSystem1_SelectedTask(searchItemV3_1);
 }
        public SearchResultSummaryV3_1 StartSearch(string serverIp, uint serverPort, SearchItemV3_1 searchItem, SearchParaV3_1 param)
        {
            SearchServices.SearchServices m_SearchService = new SearchServices.SearchServices("http://{0}:{1}/?matchservice.wsdl");
            m_SearchService.Init(serverIp, serverPort);
            m_SearchService.SearchFinished += SearchService_SearchFinished;

            param.CameraID = searchItem.CameraID;
            if (searchItem.IsHistoryTask)
            {
                if (param.StartTime != DataModel.Common.ZEROTIME)
                {
                    if (param.StartTime < searchItem.AdjustTime)
                    {
                        param.StartTime = Common.ZEROTIME;
                    }
                    else
                    {
                        param.StartTime = Common.ZEROTIME.AddSeconds(param.StartTime.Subtract(searchItem.AdjustTime).TotalSeconds);
                    }
                }
                if (param.EndTime != DataModel.Common.MAXTIME)
                {
                    if (param.EndTime < searchItem.AdjustTime)
                    {
                        param.EndTime = Common.ZEROTIME;
                    }
                    else
                    {
                        param.EndTime = Common.ZEROTIME.AddSeconds(param.EndTime.Subtract(searchItem.AdjustTime).TotalSeconds);
                    }
                }
                param.ResultNumRange = int.MaxValue;
            }
            var comparesort = (E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_GLOBAL | E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_PARTICAL | E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_PASSLINE);

            param.SortType = (((E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] & comparesort) > 0) ? SortType.SimilarityDes : SortType.TimeAsc;

            if (((E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] & E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_GLOBAL) > 0 &&
                ((E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] & E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_PARTICAL) > 0)
            {
                param[SDKConstant.FeatureType] = (E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] ^ E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_GLOBAL;
            }
            uint m_searchHandle = m_SearchService.ADD_TASK(param, searchItem);

            searchlist.Add(new Tuple <uint, string>(m_searchHandle, serverIp), new SearchResultSummaryV3_1()
            {
                SearchPara      = param,
                SearchSessionID = m_searchHandle,
                SearchResultSingleSummaryList = null,
                SearchVM     = this,
                SearchItem   = searchItem,
                SearchStatus = E_VDA_SEARCH_STATUS.E_VDA_SEARCH_STATUS_RUNING,
                ObjectRect   = "",
            });
            DateTime st = DateTime.Now;

            while (true)
            {
                if (searchlist[new Tuple <uint, string>(m_searchHandle, serverIp)].SearchResultSingleSummaryList != null)
                {
                    break;
                }
                if (DateTime.Now.Subtract(st).TotalSeconds > 60)
                {
                    break;
                }
            }
            return(searchlist[new Tuple <uint, string>(m_searchHandle, serverIp)]);
        }