Ejemplo n.º 1
0
 public void StartFaceAlarmSearch(List <string> cameraIdList, string blackListStr, UInt32 beginTime, UInt32 endTime)
 {
     m_faceInfoList.Clear();
     m_DicFaceEvent.Clear();
     foreach (string cameraId in cameraIdList)
     {
         var info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(cameraId, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_FACE_DYNAMIC);
         if (info == null)
         {
             continue;
         }
         string ip   = info.StoreIP;
         uint   port = info.StortPort;
         m_DicFaceEvent.Add(cameraId, false);
         SearchViewModelBase vm = new SearchViewModelBase(ip, port);
         // 设置当前 要查询的ID
         vm.FaceCameraId = cameraId;
         vm.BeginTimeSec = beginTime;
         vm.EndTimeSec   = endTime;
         vm.BlackListStr = blackListStr;
         new System.Threading.Thread(SearchTrafficEventTh).Start((object)vm);
         // 子线程创建 开始查询
     }
     // 创建 总线程 收集数据
     new System.Threading.Thread(SearchCollectTh).Start();
 }
Ejemplo n.º 2
0
 public void Search(List <string> cameraIdList, UInt32 BeginTimeSec, UInt32 EndTimeSec, UInt32 TimeInterval)
 {
     //  清空上次查询数据 ...
     ClearModelData();
     // 不支持 查询所有相机
     if (null == cameraIdList)
     {
         return;
     }
     // 查询部分相机
     else
     {
         foreach (string cameraId in cameraIdList)
         {
             var info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(cameraId, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD);
             if (info == null)
             {
                 continue;
             }
             string ip   = info.StoreIP;
             uint   port = info.StortPort;
             m_DicTrafficEvent.Add(cameraId, false);
             SearchViewModelBase vm = new SearchViewModelBase(ip, port);
             // 设置当前 要查询的ID
             vm.TraffficCameraId = cameraId;
             vm.BeginTimeSec     = BeginTimeSec;
             vm.EndTimeSec       = EndTimeSec;
             vm.TimeInterval     = TimeInterval;
             new System.Threading.Thread(SearchTrafficEventTh).Start((object)vm);
             // 子线程创建 开始查询
         }
     }
     // 创建 总线程 收集数据
     new System.Threading.Thread(SearchCollectTh).Start();
 }
Ejemplo n.º 3
0
        // 查询----线程函数
        private void SearchTrafficEventTh(object VmBaseObj)
        {
            SearchViewModelBase vm = (SearchViewModelBase)VmBaseObj;
            string CameraID        = vm.BehaviorCameraId;
            List <BehaviorInfo> behaviorInfoList = vm.SearchBehaviorHistoryEvent(vm.BehaviorCameraId, vm.BeginTimeSec, vm.EndTimeSec, vm.EventTypeList);

            // 超时之后 不做处理
            if (m_OverTime)
            {
                return;
            }
            // if trafficInfoList== null 或者 count ==0
            else
            {
                //添加数据
                lock (m_lockVar)
                {
                    if (null != behaviorInfoList)
                    {
                        m_BehaviorInfoListSum.AddRange(behaviorInfoList);
                    }
                    m_DicBehaviorEvent[CameraID] = true;
                }
            }
        }
Ejemplo n.º 4
0
        // 查询----线程函数
        private void SearchTrafficEventTh(object VmBaseObj)
        {
            SearchViewModelBase vm = (SearchViewModelBase)VmBaseObj;
            string CameraID        = vm.TraffficCameraId;
            List <TrafficFluxHistoryInfo> trafficInfoList = vm.SearchTrafficFlux(vm.TraffficCameraId, vm.BeginTimeSec, vm.EndTimeSec);

            // 超时之后 不做处理
            if (m_OverTime)
            {
                return;
            }
            // if trafficInfoList== null 或者 count ==0
            else
            {
                //添加数据
                lock (m_lockVar)
                {
                    if (null != trafficInfoList)
                    {
                        m_trafficInfoListSum.AddRange(trafficInfoList);
                    }
                    m_DicTrafficEvent[CameraID] = true;
                }
            }
        }
        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);
        }
Ejemplo n.º 6
0
 public void Search(List <string> cameraIdList, UInt32 BeginTimeSec, UInt32 EndTimeSec, string EventTypeList)
 {
     //  清空上次查询数据 ...
     ClearModelData();
     // 查询所有相机
     if (null == cameraIdList)
     {
         // 获取所有ip和端口
         var infoList = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(E_VIDEO_ANALYZE_TYPE.E_ANALYZE_BEHAVIOR_ALARM);
         if (infoList != null)
         {
             // 查询
             foreach (var info in infoList)
             {
                 string ip       = info.StoreIP;
                 uint   port     = info.StortPort;
                 string cameraId = "ip:" + ip + port.ToString();
                 m_DicBehaviorEvent.Add(cameraId, false);
                 SearchViewModelBase vm = new SearchViewModelBase(ip, port);
                 // 设置当前 要查询的ID
                 vm.BehaviorCameraId = cameraId;
                 vm.BeginTimeSec     = BeginTimeSec;
                 vm.EndTimeSec       = EndTimeSec;
                 vm.EventTypeList    = EventTypeList;
                 new System.Threading.Thread(SearchTrafficEventTh).Start((object)vm);
             }
         }
     }
     // 查询部分相机
     else
     {
         foreach (string cameraId in cameraIdList)
         {
             var info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(cameraId, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_BEHAVIOR_ALARM);
             if (info == null)
             {
                 continue;
             }
             string ip   = info.StoreIP;
             uint   port = info.StortPort;
             m_DicBehaviorEvent.Add(cameraId, false);
             SearchViewModelBase vm = new SearchViewModelBase(ip, port);
             // 设置当前 要查询的ID
             vm.BehaviorCameraId = cameraId;
             vm.BeginTimeSec     = BeginTimeSec;
             vm.EndTimeSec       = EndTimeSec;
             vm.EventTypeList    = EventTypeList;
             new System.Threading.Thread(SearchTrafficEventTh).Start((object)vm);
             // 子线程创建 开始查询
         }
     }
     // 创建 总线程 收集数据
     new System.Threading.Thread(SearchCollectTh).Start();
 }
        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);
        }
        public void Stop()
        {
            /*
             * 取消 CrowdRealTimeEvent 事件
             * stop
             */

            if (m_vm != null)
            {
                WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <CrowdRealTimeEvent>().Unsubscribe(OnSearchResultReturned);
                m_vm.StopCrowdRealtime();
                m_vm = null;
            }
        }
Ejemplo n.º 9
0
        // 查询----线程函数
        private void SearchTrafficEventTh(object VmBaseObj)
        {
            SearchViewModelBase vm            = (SearchViewModelBase)VmBaseObj;
            string CameraID                   = vm.FaceCameraId;
            List <FaceAlarmInfoV3_1> infoList = vm.SearchFaceAlarm(vm.FaceCameraId, vm.BeginTimeSec, vm.EndTimeSec, vm.BlackListStr);

            // 超时之后 不做处理
            if (m_OverTime)
            {
                return;
            }
            // if trafficInfoList == null 或者 count == 0
            else
            {
                // 添加数据
                lock (m_lockVar) {
                    if (null != infoList)
                    {
                        m_faceInfoList.AddRange(infoList);
                    }
                    m_DicFaceEvent[CameraID] = true;
                }
            }
        }
        public bool Commit(out string msg)
        {
            m_requestList = new Dictionary <string, bool>();
            msg           = "";
            if (!Validata(out msg))
            {
                return(false);
            }

            CloseSearch();
            vms = new List <SearchViewModelBase>();
            List <SearchItemV3_1> nosuch_error = new List <SearchItemV3_1>();
            List <SearchItemV3_1> start_error  = new List <SearchItemV3_1>();

            foreach (var item in SearchItems.SearchItems)
            {
                m_requestList.Add(item.CameraID, false);
                item.SearchHandle = 0;
                var info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(item.CameraID, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_MOVEOBJ_PLATFORM);
                if (info == null)
                {
                    info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(item.CameraID, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD);
                }
                if (info == null)
                {
                    info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(item.CameraID, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_DYNAMIC_VEHICLE);
                }
                if (info == null || item.CameraID != info.CameraID)
                {
                    nosuch_error.Add(item);
                }
                else
                {
                    string ip              = info.StoreIP;
                    uint   port            = info.StortPort;
                    SearchViewModelBase vm = new SearchViewModelBase(ip, port);
                    vm.SearchItem     = item;
                    item.SearchHandle = vm.StartSearch((SearchParaV3_1)m_searchParam.Clone());
                    if (item.SearchHandle == 0)
                    {
                        start_error.Add(item);
                    }
                    vms.Add(vm);
                }
            }
            WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <SearchBeginEvent>().Publish(SearchItems);
            foreach (SearchViewModelBase item in vms)
            {
                item.SearchReady();
            }
            foreach (var item in start_error)
            {
                SearchResultSummaryV3_1 summary = new SearchResultSummaryV3_1()
                {
                    SearchSessionID = 0,
                    SearchResultSingleSummaryList = new List <SearchResultRecordV3_1>(),
                    SearchVM     = null,
                    SearchItem   = item,
                    SearchStatus = E_VDA_SEARCH_STATUS.E_VDA_SEARCH_STATUS_ERROR_STARTFAILED,
                    ObjectRect   = "",
                };

                WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <SearchFinishedEvent>().Publish(summary);
            }

            ////////////////////////////////////////////////////////
            foreach (var item in nosuch_error)
            {
                SearchResultSummaryV3_1 summary = new SearchResultSummaryV3_1()
                {
                    SearchSessionID = 0,
                    SearchResultSingleSummaryList = new  List <SearchResultRecordV3_1>(),
                    SearchVM     = null,
                    SearchItem   = item,
                    SearchStatus = E_VDA_SEARCH_STATUS.E_VDA_SEARCH_STATUS_ERROR_NOSUCHITEM,
                    ObjectRect   = "",
                };

                WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <SearchFinishedEvent>().Publish(summary);
            }
            //foreach (var item in SearchItems.SearchItems)
            //{
            //    List<SearchResultRecordTiny> record = new List<SearchResultRecordTiny>();
            //    for (int i = 0; i < 123; i++)
            //    {
            //    record.Add(new SearchResultRecordTiny()
            //    {
            //        ObjectKey = (ulong)i,
            //        ObjectDetailRect = new System.Drawing.Rectangle(),
            //        ObjectType = E_SEARCH_RESULT_OBJECT_TYPE.E_SEARCH_RESULT_OBJECT_TYPE_VEHICLE,
            //        TargetEndTs = DateTime.Now,
            //        TargetStartTs = DateTime.Now.AddSeconds(-60)
            //    });

            //    }
            //    SearchResultSummaryV3_1 summary = new SearchResultSummaryV3_1()
            //    {
            //        SearchSessionID = 0xffff,
            //        SearchResultSingleSummaryList = record,
            //        SearchVM = new SearchViewModelBase("127.0.0.1", 9301),
            //        SearchItem = item,
            //        SearchStatus = E_VDA_SEARCH_STATUS.E_VDA_SEARCH_STATUS_FINISH,
            //        ObjectRect = "0,0,0,0",
            //    };

            //    WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent<SearchFinishedEvent>().Publish(summary);

            //}
            ////////////////////////////////////////////////////////////
            return(true);
        }
 public CrowdRealtimeViewModel()
 {
     m_vm = null;
 }