Beispiel #1
0
        public object GetStrongestRssiTag()
        {
            string Mes    = "";
            int    TagID  = 0;
            string TagMAC = "";

            int Error = 0;// 标签可用 = 0 ; 标签已经被绑定 =1 ; LocatingService不可用时 = 2  ; 没有扫描到可用的标签 = 3


            if (LocatingServiceUtil.IsAvailable())
            {
                IServiceApi serviceApi = LocatingServiceUtil.Instance <IServiceApi>();
                string      mac        = serviceApi.GetTagOnReception();
                if (mac == null)
                {
                    mac = "";
                }
                AppDataContext   db   = new AppDataContext();
                IQueryable <Tag> tags = db.Tags.Where(_d => _d.TagMac.ToLower().Trim() == mac.ToLower().Trim());
                if (tags.Count() == 1)
                {
                    Tag tag = tags.First();
                    IQueryable <HostTag> hostTags = db.HostTags.Where(_d => _d.TagId == tag.Id);
                    if (hostTags.Count() > 0)
                    {
                        Mes   = string.Format("×当前信号最强的标签MAC地址是{0},但已经被绑定,标签不可用。", tag.TagMac);
                        Error = 1;
                    }
                    else
                    {
                        Mes    = string.Format("√当前信号最强的标签MAC地址是{0},标签可用。", tag.TagMac);
                        TagID  = tag.Id;
                        TagMAC = tag.TagMac;
                        Error  = 0;
                    }
                }
                else
                {
                    Mes   = "暂时没有扫描到可用的标签!";
                    Error = 3;
                }
            }
            else
            {
                Mes   = "LocatingService不可用";
                Error = 2;
            }
            return(new { Mes, TagID, TagMAC, Error });
        }