/// <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> /// <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> /// 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); }
/// <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 )); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }