Esempio n. 1
0
        /// <summary>
        /// 利用RSSI得到设备距AP的水平距离
        /// </summary>
        /// <param name="ap_info">参与运算的AP实例</param>
        /// <returns>单位:m</returns>
        private static double GetDisFromRSSI(APInfo ap_info)
        {
            double rawDis = 0.0;
            double power  = (ap_info.A - ap_info.rssi) / (10 * ap_info.n);

            rawDis = Math.Pow(10, power);
            //返回AP到UE的水平距离
            return(Math.Sqrt(Math.Pow(rawDis, 2) - Math.Pow(ap_info.height, 2)));
        }
 internal AccessPoint(APInfo apInfo)
 {
     _ssid                  = apInfo._ssid;
     _mac                   = apInfo._mac;
     _rssi                  = apInfo._rssi;
     _wepStatus             = apInfo._wepStatus;
     _networkInfrastructure = apInfo._networkInfrastructure;
     _networkType           = apInfo._networkType;
     BeaconPeriod           = apInfo.BeaconPeriod;
     DSConfig               = apInfo.DSConfig;
     _rates                 = apInfo._rates;
 }
Esempio n. 3
0
        /// <summary>
        /// 根据AP的ID在数据库中查找配置信息
        /// </summary>
        /// <param name="ap_id"></param>
        /// <returns>返回AP的配置信息</returns>
        private static APInfo GetAPInfo(string ap_uuid)
        {
            ILog            log    = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            CAPInfoProvider apPro  = new CAPInfoProvider();
            AP_Info_table   entity = apPro.GetEntityByUUID(ap_uuid);
            APInfo          apInfo = new APInfo();

            try
            {
                apInfo.location = new CPoint(entity.x.Value, entity.y.Value);
                apInfo.A        = entity.A.Value;
                apInfo.n        = entity.n.Value;
                apInfo.height   = entity.height.Value;
            }
            catch (Exception ex)
            {
                log.Error(string.Format("get AP entity  from {0} error! please check AP UUID!", ap_uuid));
            }
            return(apInfo);
        }