public List <MyChannelCfg> QueryAllChannel()
        {
            List <MyChannelCfg>  myListChannelCfg = new List <MyChannelCfg>();
            List <ChannelCfgLBS> ListChannelCfg   = new List <ChannelCfgLBS>();
            TTransport           transport        = new TSocket(GlobalCache.Host, GlobalCache.Port);
            TProtocol            protocol         = new TBinaryProtocol(transport);

            BusinessServer.Client _BusinessServerClient = new BusinessServer.Client(protocol);
            try
            {
                if (!transport.IsOpen)
                {
                    transport.Open();
                }
                ListChannelCfg = _BusinessServerClient.QueryAllChannelLBS();
                transport.Close();
            }
            catch (Exception ex)
            {
                //_WriteLog.WriteToLog("QueryAllChannel", ex);
                if (transport.IsOpen)
                {
                    transport.Close();
                }
                //MB_MODULES.Views.MyMessage.showYes("网络异常,稍后重试");
            }
            //todo(暂时不需要) 包装返回类 使其返回需要的类
            foreach (ChannelCfgLBS cc in ListChannelCfg)
            {
                myListChannelCfg.Add(new MyChannelCfg().ChannelCfgToMyChannelCfgLBS(cc));
            }


            return(myListChannelCfg);
        }
        /// <summary>
        /// user singin
        /// 为什么采用整形返回设计:1、必须有回执 2、便于处理异常并准确提示错误
        /// </summary>
        /// <param name="ip"></param>
        /// <param name="port"></param>
        /// <returns></returns>
        public static int Singin(ref string ip, ref string port)
        {
            int res   = 505;
            int _port = Convert.ToInt32(port);

            BusinessServer.Client bServerClient = null;
            TTransport            transport     = SocketOpter.Init(ip, _port, 800, ref bServerClient);

            if (!transport.IsOpen)
            {
                try
                {
                    transport.Open();
                    if (transport.IsOpen)
                    {
                        GlobalCache.Host = ip;
                        GlobalCache.Port = _port;
                        res = 200;
                    }
                }
                catch (System.Exception ex)
                {
                    Logger <ThriftServiceBasic> .Log.Error("Singin", ex);

                    res = 404;
                }
                finally
                {
                    transport.Close();
                }
            }
            return(res);
        }
        /// <summary>
        /// 查询比对记录数(筛选)
        /// </summary>
        /// <param name="captureRecordQueryValue"></param>
        /// <returns></returns>
        public List <SCountInfo> QueryCapRecordTotalCountHSXC(CaptureRecordQueryValue captureRecordQueryValue, List <string> channelName)
        {
            TTransport transport = new TSocket(GlobalCache.Host, GlobalCache.Port, 5000);
            TProtocol  protocol  = new TBinaryProtocol(transport);

            BusinessServer.Client _BusinessServerClient = new BusinessServer.Client(protocol);
            List <SCountInfo>     recordsCount          = new List <SCountInfo>();

            try
            {
                #region
                if (!transport.IsOpen)
                {
                    transport.Open();
                }
                //得到总数
                recordsCount = _BusinessServerClient.QueryCapRecordTotalCountHSXC(channelName, captureRecordQueryValue.StartDayValue, captureRecordQueryValue.EndDayValue);
                if (transport.IsOpen)
                {
                    transport.Close();
                }
                #endregion
            }
            catch (Exception ex)
            {
                if (transport.IsOpen)
                {
                    transport.Close();
                }
                MB_MODULES.Views.MyMessage.showYes("网络异常,稍后重试!");

                return(null);
            }
            return(recordsCount);
        }
        public List <byte[]> QueryCapLogImageH(string ID, string day)
        {
            TTransport transport = new TSocket(GlobalCache.Host, GlobalCache.Port);
            TProtocol  protocol  = new TBinaryProtocol(transport);

            BusinessServer.Client _BusinessServerClient = new BusinessServer.Client(protocol);
            List <byte[]>         listImageBytes        = new List <byte[]>();

            try
            {
                #region
                //打开连接
                if (!transport.IsOpen)
                {
                    transport.Open();
                }
                //调用接口获得抓拍照片
                listImageBytes = _BusinessServerClient.QueryCapLogImageH(ID, day);
                if (transport.IsOpen)
                {
                    transport.Close();
                }
                #endregion
            }
            catch (Exception ex)
            {
                if (transport.IsOpen)
                {
                    transport.Close();
                }
                MB_MODULES.Views.MyMessage.showYes("网络异常,稍后重试!");
                return(null);
            }
            return(listImageBytes);
        }
        /// <summary>
        /// 查询抓拍记录(筛选)
        /// </summary>
        /// <param name="captureRecordQueryValue"></param>
        /// <param name="pflag"></param>
        /// <returns></returns>
        public List <MyCapFaceLogWithImg> QueryCapLogSXC(CaptureRecordQueryValue captureRecordQueryValue, List <string> channelList)
        {
            List <CapFaceLog>          listCapFaceLog          = new List <CapFaceLog>();
            List <MyCapFaceLogWithImg> listMyCapFaceLogWithImg = new List <MyCapFaceLogWithImg>();
            //声明客户端内容
            TTransport transport = new TSocket(GlobalCache.Host, GlobalCache.Port);
            TProtocol  protocol  = new TBinaryProtocol(transport);

            BusinessServer.Client _BusinessServerClient = new BusinessServer.Client(protocol);
            try
            {
                //获得查询数据
                if (!transport.IsOpen)
                {
                    transport.Open();
                }
                listCapFaceLog = _BusinessServerClient.QueryCapLogSXC(channelList, captureRecordQueryValue.StartDayValue, captureRecordQueryValue.EndDayValue, captureRecordQueryValue.StartRowValue, captureRecordQueryValue.PageRowValue);


                for (int i = listCapFaceLog.Count - 1; i >= 0; i--)
                {
                    MyCapFaceLogWithImg _MyCapFaceLogWithImg = new MyCapFaceLogWithImg();
                    _MyCapFaceLogWithImg.Id        = captureRecordQueryValue.MaxCount - captureRecordQueryValue.StartRowValue - i;
                    _MyCapFaceLogWithImg.ID        = listCapFaceLog[i].ID;        // 获得抓拍id
                    _MyCapFaceLogWithImg.ChannelID = listCapFaceLog[i].ChannelID; // 获得通道id

                    //获得通道名称
                    foreach (MyChannelCfg mcc in QueryAllChannel())
                    {
                        if (listCapFaceLog[i].ChannelID == mcc.TcChaneelID)
                        {
                            _MyCapFaceLogWithImg.ChannelName = mcc.Name;
                        }
                    }

                    long     longTime = listCapFaceLog[i].Time;
                    DateTime time     = new DateTime(1970, 1, 1);
                    time = time.AddSeconds(longTime);
                    _MyCapFaceLogWithImg.time = time.ToString("yyyy/MM/dd HH:mm:ss");; // 获得抓拍时间

                    listMyCapFaceLogWithImg.Add(_MyCapFaceLogWithImg);
                }

                transport.Close();
            }
            catch (Exception ex)
            {
                if (transport.IsOpen)
                {
                    transport.Close();
                }
                //MB_MODULES.Views.MyMessage.showYes("网络异常,稍后重试");
                MB_MODULES.Views.MyMessage.showYes("网络异常,稍后重试");
                return(null);
            }
            return(listMyCapFaceLogWithImg);
        }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <string> SC_GetAnalysisStoreFromSanpStore()
        {
            BusinessServer.Client bServerClient = null;
            TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);

            return(SocketOpter.GetResult <ThirftService, List <string> >(
                       transport,
                       bServerClient.QueryDefFaceObjType,
                       "SC_GetAnalysisStoreFromSanpStore", true
                       ));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="btiem"></param>
        /// <param name="etime"></param>
        public List <TargetedAnalysis> GetNoTargetAnalysisResultForMap(long btime, long etime)
        {
            BusinessServer.Client bServerClient = null;
            TTransport            transport2    = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);

            return(SocketOpter.GetResult <ThirftService, List <TargetedAnalysis>, long, long>(
                       transport2,
                       bServerClient.QueryCrowdedAnalysis,
                       "GetNoTargetAnalysisResult[QueryCrowdedAnalysis]", true,
                       btime, etime
                       ));
        }
Example #8
0
        /// <summary>
        /// Get analysis result
        /// </summary>
        /// <param name="capId"></param>
        /// <param name="capImage"></param>
        /// <param name="btime"></param>
        /// <param name="etime"></param>
        /// <param name="threshold"></param>
        /// <param name="maxcount"></param>
        /// <param name="template"></param>
        /// <returns></returns>
        public IList <CameraSnapPerson> SC_GetAnalysisResult(string capId, byte[] capImage, long btime, long etime, int threshold, int maxcount, string template)
        {
            BusinessServer.Client     bServerClient = null;
            TTransport                transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
            List <RealtimeCapInfoLBS> caplist       = SocketOpter.GetResult <ThirftService, List <RealtimeCapInfoLBS>, string, byte[], long, long, int, int>(
                transport,
                bServerClient.QueryStaticAnalysis,
                "SC_GetAnalysisResult", true,
                capId, capImage, btime, etime, threshold, maxcount
                );

            IList <CameraSnapPerson> result = new List <CameraSnapPerson>();

            try
            {
                #region Data Convert

                int row = 0;
                foreach (var item in caplist)
                {
                    DateTime time = new DateTime(1970, 1, 1);
                    time = time.AddSeconds(item.Time);
                    result.Add(new CameraSnapPerson
                    {
                        DataIndex      = ++row,
                        NameTitle      = "通 道:",
                        PhotoByteArray = item.Image,
                        Photo          = ImageConvert.ToBitmapImage(item.Image),
                        Name           = item.Channelname,
                        Datetime       = time.ToString(),
                        SnapDate       = time.ToShortDateString(),
                        SnapTime       = time.ToShortTimeString(),
                        Source         = template,
                        Score          = item.Score,
                        CameraInfo     = new Camera
                        {
                            Id        = item.Id,
                            Name      = item.Channelname,
                            Longitude = item.Longitude,
                            Latitude  = item.Latitude,
                            Location  = item.Address
                        }
                    });
                }

                #endregion
            }
            catch (Exception ex)
            {
                Logger <ThirftService> .Log.Error("SC_GetAnalysisResult", ex);
            }
            return(result);
        }
Example #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="image"></param>
        /// <param name="nThreshold"></param>
        /// <param name="nMaxCount"></param>
        /// <param name="template"></param>
        /// <returns></returns>
        public IList <CameraSnapPerson> SC_GetAnalysisResultFromTemplateStore(byte[] image, int nThreshold, int nMaxCount, string template)
        {
            BusinessServer.Client bServerClient = null;
            TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
            List <FaceObj>        _ListFaceObj  = SocketOpter.GetResult <ThirftService, List <FaceObj>, byte[], int, int>(
                transport,
                bServerClient.QueryFaceObjByImg,
                "SC_GetAnalysisResultFromTemplateStore", true,
                image, nThreshold, nMaxCount
                );

            List <CameraSnapPerson> result = new List <CameraSnapPerson>();

            try
            {
                int row = 0;
                foreach (var item in _ListFaceObj)
                {
                    DateTime time = new DateTime(1970, 1, 1);//这个项目已19700101作为起点,计算时间
                    time = time.AddSeconds(item.Tmplate[0].DTm);
                    result.Add(new CameraSnapPerson
                    {
                        DataIndex      = ++row,
                        NameTitle      = "姓 名:",
                        Name           = item.TcName,
                        Datetime       = time.ToString(),
                        SnapDate       = time.ToShortDateString(),
                        SnapTime       = time.ToShortTimeString(),
                        Score          = item.NExten,
                        PhotoByteArray = item.Tmplate[0].Img,
                        Photo          = ImageConvert.ToBitmapImage(item.Tmplate[0].Img) // item.Tmplate[0].Img
                        ,
                        Source = template
                                 //,
                                 //CameraInfo = new Camera
                                 //{
                                 //    Longitude = item.Longitude,
                                 //    Latitude = item.Latitude,
                                 //    Location = item.Address
                                 //}
                    });
                }
            }
            catch (Exception ex)
            {
                Logger <ThirftService> .Log.Error("SC_GetAnalysisResultFromTemplateStore", ex);
            }
            return(result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="capid"></param>
        /// <param name="capimg"></param>
        /// <param name="btime"></param>
        /// <param name="etime"></param>
        /// <returns></returns>
        public List <TrackInfo> QueryTrackPlayback(string capid, byte[] capimg, long btime, long etime)
        {
            List <TrackInfo> result = null;

            try
            {
                BusinessServer.Client bServerClient = null;
                TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
                result = SocketOpter.GetResult <ThriftService, List <TrackInfo>, string, byte[], long, long>(transport, bServerClient.QueryTrackPlayback, "QueryTrackPlayback", true, capid, capimg, btime, etime);
            }
            catch (Exception ex)
            {
                Logger <ThriftService> .Log.Error("QueryTrackPlayback", ex);
            }
            return(result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static LastRecordInfo initPastResult()
        {
            LastRecordInfo res = new LastRecordInfo();

            try
            {
                BusinessServer.Client bServerClient = null;
                TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
                res = SocketOpter.GetResult <ThriftService, LastRecordInfo>(transport, bServerClient.QueryLastRecordInfo, "initPastResult", true);
            }
            catch (Exception ex)
            {
                Logger <ThriftServiceBasic> .Log.Error("initPastResult", ex);
            }
            return(res);
        }
Example #12
0
        /// <summary>
        /// Snap
        /// </summary>
        /// <param name="duetime"></param>
        List <RealtimeCapInfoLBS> SelectSnapDataFromDb(int duetime)
        {
            //duetime
            List <RealtimeCapInfoLBS> result = new List <RealtimeCapInfoLBS>();

            try
            {
                BusinessServer.Client bServerClient = null;
                TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
                result = SocketOpter.GetResult <ThriftServiceUtilities, List <RealtimeCapInfoLBS>, int>(
                    transport,
                    bServerClient.QueryRealtimeCapInfoQLBS,
                    "SelectSnapDataFromDb", true,
                    duetime);
            }
            catch (Exception)
            {
            }
            return(result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static List <string> SelectChannelPropertiesList()
        {
            List <string> result = new List <string>();

            try
            {
                BusinessServer.Client bServerClient = null;
                TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
                result = SocketOpter.GetResult <ThriftService, List <string> >(
                    transport,
                    bServerClient.QueryDefChannelType,
                    "QueryDefChannelType 查询通道类型", true
                    );
            }
            catch (Exception ex)
            {
                Logger <ThriftServiceBasic> .Log.Error("SelectChannelPropertiesList", ex);
            }
            return(result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="capid"></param>
        /// <param name="capimg"></param>
        /// <param name="threshold"></param>
        /// <param name="btime"></param>
        /// <param name="etime"></param>
        /// <returns></returns>
        public IList <CameraSnapPerson> GetTargetAnalysisResult(string capid, byte[] capimg, int threshold, long btime, long etime)
        {
            BusinessServer.Client   bServerClient = null;
            TTransport              transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
            List <TargetedAnalysis> result        = SocketOpter.GetResult <ThirftService, List <TargetedAnalysis>, string, byte[], int, long, long>(
                transport,
                bServerClient.QueryTargetedAnalysis,
                "GetTargetAnalysisResult", true,
                capid, capimg, threshold, btime, etime
                );

            List <CameraSnapPerson> SnapPersonItems = new List <CameraSnapPerson>();

            try
            {
                IEnumerable <TargetedAnalysis> sortResult = from r in result
                                                            orderby r.Count descending
                                                            select r;

                foreach (var item in sortResult)
                {
                    SnapPersonItems.Add(new PeopleModel.CameraSnapPerson
                    {
                        Name       = item.Name,
                        CameraInfo = new PeopleModel.Camera
                        {
                            Name            = item.Name,
                            Location        = item.Channel_address,
                            Longitude       = item.Longitude,
                            Latitude        = item.Latitude,
                            SnapPersonCount = item.Count
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                Logger <ThirftService> .Log.Error("GetTargetAnalysisResult", ex);
            }
            return(SnapPersonItems);
        }
Example #15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="capid"></param>
        /// <param name="qflag"></param>
        /// <returns>0-成功   1-失败</returns>
        public int UpdateRealtimeCmpToDbFlag(List <string> capid, int qflag)
        {
            int result = 404;

            try
            {
                BusinessServer.Client bServerClient = null;
                TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
                result = SocketOpter.GetResult <ThriftServiceUtilities, int, List <string>, int>(
                    transport,
                    bServerClient.UpdateRealtimeCmpQ,
                    "UpdateRealtimeCmpToDbFlag", true,
                    capid,
                    qflag
                    );
            }
            catch (Exception)
            {
            }
            return(result);
        }
Example #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="host">host ip</param>
        /// <param name="port">import port</param>
        /// <param name="timeout">timeout</param>
        /// <param name="bServerClient">ref </param>
        /// <returns></returns>
        public static TTransport Init(string host, int port, int timeout, ref BusinessServer.Client bServerClient)
        {
            TTransport transport = null;

            try
            {
                if (timeout > 0)
                {
                    transport = new TSocket(host, port, timeout);
                }
                else
                {
                    transport = new TSocket(host, port, 1200000);
                }
                TProtocol protocol = new TBinaryProtocol(transport);
                bServerClient = new BusinessServer.Client(protocol);
            }
            catch (Exception ex)
            {
                Logger <SocketOpter> .Log.Error("Init", ex);
            }
            return(transport);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static List <MyChannelCfg> SelectChannelList()
        {
            List <MyChannelCfg> result = new List <MyChannelCfg>();

            try
            {
                BusinessServer.Client bServerClient  = null;
                TTransport            transport      = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
                List <ChannelCfgLBS>  ListChannelCfg =
                    SocketOpter.GetResult <ThriftService, List <ChannelCfgLBS> >(transport, bServerClient.QueryAllChannelLBS, "QueryAllChannel检出所有通道", true);

                //todo(暂时不需要) 包装返回类 使其返回需要的类
                foreach (ChannelCfgLBS cc in ListChannelCfg)
                {
                    result.Add(new MyChannelCfg().ChannelCfgToMyChannelCfgLBS(cc));
                }
            }
            catch (Exception ex)
            {
                Logger <ThriftServiceBasic> .Log.Error("SelectChannelList", ex);
            }
            return(result);
        }
        public IList <TmpSnapInfo> GetNoTargetAnalysisResult(ref CameraSnapPerson suspectObj, long btime, long etime)
        {
            BusinessServer.Client bServerClient = null;
            TTransport            transport     = SocketOpter.Init(GlobalCache.Host, GlobalCache.Port, 0, ref bServerClient);
            SuspectAnalysisInfo   results       = SocketOpter.GetResult <ThirftService, SuspectAnalysisInfo, long, long>(
                transport,
                bServerClient.QueryKeyAreaSuspectAnalysis,
                "GetNoTargetAnalysisResult[QueryKeyAreaSuspectAnalysis]", true,
                btime, etime
                );

            List <TmpSnapInfo> result = new List <TmpSnapInfo>();

            try
            {
                suspectObj                     = new CameraSnapPerson();
                suspectObj.Photo               = ImageConvert.ToBitmapImage(results.Capcfg.Image);
                suspectObj.PhotoByteArray      = results.Capcfg.Image;
                suspectObj.CameraInfo          = new Camera();
                suspectObj.CameraInfo.Id       = results.Capcfg.Id;
                suspectObj.CameraInfo.Name     = results.Capcfg.Channelname;
                suspectObj.CameraInfo.Location = results.Capcfg.Address;
                if (results.Capcfg.Time > 0)
                {
                    string tmp = DateTimeConvert.LongTimeToString(results.Capcfg.Time);
                    suspectObj.SnapDate = Convert.ToDateTime(tmp).ToShortDateString();
                    suspectObj.SnapTime = Convert.ToDateTime(tmp).ToShortTimeString();
                }
                else
                {
                    suspectObj.SnapDate = string.Empty;
                    suspectObj.SnapTime = string.Empty;
                }

                foreach (SuspectAnalysis item in results.Sulist)
                {
                    TmpSnapInfo ts = new TmpSnapInfo();
                    ts.CameraChannelId = item.TcChannelID;
                    ts.CameraChannel   = item.Name;
                    ts.Longitude       = item.Longitude;
                    ts.Latitude        = item.Latitude;
                    ts.Location        = item.Channel_address;

                    #region TopFive
                    for (int i = 0; i < item.Capimg.Count; i++)
                    {
                        switch (i)
                        {
                        case 0:
                            ts.CameraTopOne = new Camera
                            {
                                Name               = item.Name,
                                SnapPersonCount    = item.Capimg[i].Count,
                                SnapPersonCountStr = item.Capimg[i].Count + " 次",
                                SnapPhoto          = ImageConvert.ToBitmapImage(item.Capimg[i].Capimg),
                                Location           = item.Channel_address,
                            };
                            break;

                        case 1:
                            ts.CameraTopTwo = new Camera
                            {
                                Name               = item.Name,
                                SnapPersonCount    = item.Capimg[i].Count,
                                SnapPersonCountStr = item.Capimg[i].Count + " 次",
                                SnapPhoto          = ImageConvert.ToBitmapImage(item.Capimg[i].Capimg),
                                Location           = item.Channel_address,
                            };
                            break;

                        case 2:
                            ts.CameraTopThree = new Camera
                            {
                                Name               = item.Name,
                                SnapPersonCount    = item.Capimg[i].Count,
                                SnapPersonCountStr = item.Capimg[i].Count + " 次",
                                SnapPhoto          = ImageConvert.ToBitmapImage(item.Capimg[i].Capimg),
                                Location           = item.Channel_address,
                            };
                            break;

                        case 3:
                            ts.CameraTopFour = new Camera
                            {
                                Name               = item.Name,
                                SnapPersonCount    = item.Capimg[i].Count,
                                SnapPersonCountStr = item.Capimg[i].Count + " 次",
                                SnapPhoto          = ImageConvert.ToBitmapImage(item.Capimg[i].Capimg),
                                Location           = item.Channel_address,
                            };
                            break;

                        case 4:
                            ts.CameraTopFive = new Camera
                            {
                                Name               = item.Name,
                                SnapPersonCount    = item.Capimg[i].Count,
                                SnapPersonCountStr = item.Capimg[i].Count + " 次",
                                SnapPhoto          = ImageConvert.ToBitmapImage(item.Capimg[i].Capimg),
                                Location           = item.Channel_address,
                            };
                            break;
                        }
                    }
                    #endregion

                    result.Add(ts);
                }
            }
            catch (Exception ex)
            {
                Logger <ThirftService> .Log.Error("GetNoTargetAnalysisResult", ex);
            }
            return(result);
        }