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(); }
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(); }
// 查询----线程函数 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; } } }
// 查询----线程函数 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); }
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; } }
// 查询----线程函数 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; }