/// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        private void SearchCommandFunc(object obj)
        {
            SearchSchemaModel searchData = obj as SearchSchemaModel;
            ThirftService     thrift     = new ThirftService();

            long startDate =
                ConvertTime.ConvertTimeToLongData(true, searchData.StartDateValue, searchData.StartTimeIndex, searchData.StartMinute);
            long endDate =
                ConvertTime.ConvertTimeToLongData(false, searchData.EndDateValue, searchData.EndTimeIndex, searchData.EndMinute);

            //LoadingVisiblity = Visibility.Visible;
            if (searchData.TemplateStoreIndex == 0)
            {
                IsSnapStore = Visibility.Collapsed;

                Task task = QueryResultFromTemplateStore(thrift, startDate, endDate, searchData);
            }
            else
            {
                IsSnapStore = Visibility.Visible;
                Task task = QueryResultFromSanpStore(thrift, startDate, endDate);
            }

            //LoadingVisiblity = Visibility.Collapsed;
            //OnPropertyChanged("LoadingVisiblity");
        }
Exemple #2
0
 async Task <IList <CameraSnapPerson> > AsyncGetTargetAnalysisResult(ThirftService thrift, string capid, byte[] capimg, int threshold, long btime, long etime)
 {
     LoadingVisiblity = Visibility.Visible;
     return(await Task.Run(() =>
     {
         return thrift.GetTargetAnalysisResult(string.Empty, ForTargetPage.PhotoByteArray, -1, btime, etime);
     }).ConfigureAwait(false));
 }
Exemple #3
0
        /**
         * 解决方案:
         * 使用异步查询数据,等待数据返回后执行主线程
         *
         * **/
        #region No Target

        /// <summary>
        ///
        /// </summary>
        /// <param name="thrift"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>

        async Task <List <TargetedAnalysis> > AsyncSelectNoTargetForMap(ThirftService thrift, long startTime, long endTime)
        {
            LoadingVisiblity = Visibility.Visible;

            return(await Task <List <TargetedAnalysis> > .Run(() =>
            {
                return thrift.GetNoTargetAnalysisResultForMap(startTime, endTime);
            }).ConfigureAwait(false));
        }
Exemple #4
0
 async Task <IList <TmpSnapInfo> > AsyncSelectNoTargetForSusipcious(ThirftService thrift, long startTime, long endTime)
 {
     return(await Task <IList <TmpSnapInfo> > .Run(() =>
     {
         CameraSnapPerson suspectObj = new CameraSnapPerson();
         IList <TmpSnapInfo> result = thrift.GetNoTargetAnalysisResult(ref suspectObj, startTime, endTime);
         tempSuspectObject = suspectObj;
         return result;
     }).ConfigureAwait(false));
 }
Exemple #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="thrift"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        async void GoNoTarget(ThirftService thrift, long startTime, long endTime)
        {
            List <TargetedAnalysis> formapResult     = new List <TargetedAnalysis>();
            IList <TmpSnapInfo>     forsuspectResult = new List <TmpSnapInfo>();

            SusipciousInfo = new CameraSnapPerson();

            await Task.Run(() =>
            {
                LoadingVisiblity = Visibility.Visible;
                OnPropertyChanged("LoadingVisiblity");

                formapResult     = formapResult = AsyncSelectNoTargetForMap(thrift, startTime, endTime).Result;
                forsuspectResult = AsyncSelectNoTargetForSusipcious(thrift, startTime, endTime).Result;
            });

            try
            {
                NoTargetControlContent.MainMap.Points =
                    GMapForWpf.SetMapAnchor <TargetedAnalysis>(formapResult,
                                                               new Uri("pack://application:,,,/Images/home-icon-bluecamera.png"));

                if (NoTargetControlContent.MainMap.Points.Count > 0)
                {
                    NoTargetControlContent.MainMap.CurrentPosition = NoTargetControlContent.MainMap.Points[NoTargetControlContent.MainMap.Points.Count - 1].Point;
                }
                else
                {
                    NoTargetControlContent.MainMap.CurrentPosition = new GMap.NET.PointLatLng(GlobalCache.Latitude, GlobalCache.Longitude);
                }

                if (forsuspectResult.Count > 0)
                {
                    var temp = tempSuspectObject;
                    //SusipciousInfo = temp;//给SusipciousInfo赋值,导致异常
                    if (temp.PhotoByteArray.Length == 0)
                    {
                        Dispatcher.CurrentDispatcher.Invoke(() =>
                        {
                            SusipciousInfo.Photo = ImageConvert.ToImageSource("pack://application:,,,/Images/unkonw.png");
                            OnPropertyChanged("SusipciousInfo");
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                Logger <MainControlViewModel> .Log.Error("GoNoTarget", ex);
            }
            finally
            {
                LoadingVisiblity = Visibility.Collapsed;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="thrift"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <returns></returns>
        async Task QueryResultFromSanpStore(ThirftService thrift, long start, long end)
        {
            await Task.Run(() =>
            {
                LoadingVisiblity = Visibility.Visible;
                IList <CameraSnapPerson> result = thrift.SC_GetAnalysisResult(SearchSchemaDatas.CaptureId, SearchSchemaDatas.ImportImageByteArray, start, end, SearchSchemaDatas.ThresholdValue, SearchSchemaDatas.AppearCountValue, "抓拍库");
                TemplatePersonItems             = result;
                DataCount = TemplatePersonItems.Count;

                LoadingVisiblity = Visibility.Collapsed;
            }).ConfigureAwait(false);
        }
        /// <summary>
        /// 点击登录按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            IThirtfService its = new ThirftService();

            try
            {
                if (its.Login(IP.Text.ToString().Trim(), int.Parse(Port.Text.Trim())))
                {
                    if (isAutoLOgin == "0")
                    {
                        autoLogin.Stop();
                    }
                    RemberIPAndPort();
                    ClientType = ConfigurationManager.AppSettings["功能选择"];
                    ClientArea = Convert.ToInt32(ConfigurationManager.AppSettings["所属区域"]);
                    BasicInfo.SetBasicInfo();
                    foreach (var config in BasicInfo.ConfigList)
                    {
                        if (config.AreaType == ClientArea)
                        {
                            ClientAreaName = config.AreaName;
                        }
                    }
                    MainWindow _mainWindow = new MainWindow();
                    this.Hide();
                    _mainWindow.Show();
                }
                else
                {
                    if (isAutoLOgin != "0")
                    {
                        MessageBox.Show("失败");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("登录失败");
                _WriteLog.WriteToLog("登录失败", ex.Message);
            }
        }
Exemple #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        void SearchCommandFunc(object obj)
        {
            SearchSchemaModel searchData = obj as SearchSchemaModel;
            long startTime = ConvertTime.ConvertTimeToLongData(true, searchData.StartDateValue, searchData.StartTimeIndex, searchData.StartMinute);

            long endTime = ConvertTime.ConvertTimeToLongData(false, searchData.EndDateValue, searchData.EndTimeIndex, searchData.EndMinute);

            try
            {
                ThirftService thrift = new ThirftService();
                if (searchData.IsTargetValue == "有目标分析")
                {
                    GoTarget(thrift, startTime, endTime);
                }
                else
                {
                    GoNoTarget(thrift, startTime, endTime);
                }
            }
            catch (Exception)
            {
            }
        }
Exemple #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="thrift"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        async void GoTarget(ThirftService thrift, long startTime, long endTime)
        {
            try
            {
                ChartValues <double> chartVals = new ChartValues <double>();
                if (ForTargetPage != null && ForTargetPage.PhotoByteArray.Length > 0)
                {
                    await Task.Run(() =>
                    {
                        SnapPersonItems = AsyncGetTargetAnalysisResult(thrift, string.Empty, ForTargetPage.PhotoByteArray, -1, startTime, endTime).Result;
                    });

                    Parallel.Invoke(
                        () =>
                    {
                        ArrayList array = new ArrayList();
                        #region LiveCharts
                        for (int i = 0; i < 10; i++)
                        {
                            int count = SnapPersonItems.Count;
                            if (count > i)
                            {
                                chartVals.Add(Convert.ToDouble(SnapPersonItems[i].CameraInfo.SnapPersonCount));
                                array.Add(SnapPersonItems[i].Name);
                            }
                            else
                            {
                                chartVals.Add(0);
                                array.Add("区域" + i.ToString());
                            }
                        }

                        var s = Enumerable.Reverse <string>(array.Cast <string>().ToList());
                        CameraForLiveCharts = s.ToList();

                        ChartValues <double> cv = new ChartValues <double>();
                        for (int i = chartVals.Count - 1; i >= 0; i--)
                        {
                            cv.Add(chartVals[i]);
                        }

                        initBarCharts(false, cv);
                        #endregion
                    },
                        () =>
                    {
                    });

                    #region To map anchor

                    ObservableCollection <PointLatLngImg> Points = GMapForWpf.SetMapAnchor <CameraSnapPerson>(SnapPersonItems, ForTargetPage.PhotoByteArray, ForTargetPage.Name);
                    var p = Enumerable.Reverse <PointLatLngImg>(Points);

                    TargetControlContent.MainMap.Points = p as ObservableCollection <PointLatLngImg>;

                    if (TargetControlContent.MainMap.Points.Count > 0)
                    {
                        TargetControlContent.MainMap.CurrentPosition = TargetControlContent.MainMap.Points[TargetControlContent.MainMap.Points.Count - 1].Point;
                    }
                    else
                    {
                        TargetControlContent.MainMap.CurrentPosition = new GMap.NET.PointLatLng(GlobalCache.Latitude, GlobalCache.Longitude);
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Logger <MainControlViewModel> .Log.Error("GoTarget", ex);
            }
            finally
            {
                LoadingVisiblity = Visibility.Collapsed;
            }
        }