Exemple #1
0
 /// <summary>
 /// 单个用户数据信道分配,返回信道是否分配成功
 /// </summary>
 private bool APsUserAllocation(GSMSimUser user)
 {
     m_Terminal = user.TrafficUser.Terminal.GetNetWorkTerminal(NetWorkType.GSM) as GSMTerminal;
     if (m_Terminal.Technology == GsmTechnologyType.GSM)
     {
         return false;
     }
     InitUserParam(user);
     int shareNum = m_IsDl ? m_ChnAllocation.DLShareNum : m_ChnAllocation.ULShareNum;
     //寻找空闲的静态PDCH信道
     List<GSMTimeSlot> emptyPDCH = HasStaticEmpty(user);
     //分配信道
     EmptyChnAllc(user, emptyPDCH);
     if (IsUnderMultiTs(user) & GetUserRate(user) < m_PsReqRate)
     {
         //寻找小于复用动态门限的PDCH信道(TCH->PDCH)
         emptyPDCH = HasEmptyTs(user, m_ChnAllocation.DynamicMultiplexNum,true);
         EmptyChnAllc(user, emptyPDCH);
     }
     if (IsUnderMultiTs(user) & GetUserRate(user) < m_PsReqRate)
     {
         //寻找小于复用门限的所有PDCH信道
         emptyPDCH = HasEmptyTs(user, shareNum,false);
         EmptyChnAllc(user, emptyPDCH);
     }
     if (GetUserRate(user) > m_PsAssureRate)
     {
         return true;
     }
     else
     {
         ClearUserData(user);
         return false;
     }
 }
Exemple #2
0
 public void Init()
 {
     m_ModelList = GSMPointAnalysisMock.MockModelList();
     RxPowerAndLinkLossModel modelimage = new RxPowerAndLinkLossModel();
     modelimage.RxPower = -90;
     Site site = GSMMock.MockSite();
     Transceiver transceiver = new Transceiver();
     transceiver.Parent = site;
     modelimage.Cell = new GSMTRX();
     modelimage.Cell.Parent = transceiver;
     modelimage.Cell.ID = 2;
     modelimage.DownLinkLoss = 112;
     modelimage.UpLinkLoss = 112;
     m_ModelList.Add(modelimage);
     m_Point = GSMPointAnalysisMock.MockGeoXYPoint();
     m_TargetPara = new TargetPara();
     m_TargetPara.TargetCIR = 9;
     m_TargetPara.TargetRxPower = -110;
     m_TargetPara.TargetThroughput = 12;
     m_Terminal = new Terminal();
     GSMTerminal gsmTerminal = new GSMTerminal();
     gsmTerminal.NetType = NetWorkType.GSM;
     m_Terminal.NetTerminalList.Add(gsmTerminal);
     m_Service = new UnionCsService();
     m_Service.CommonType = CommonServiceType.CSService;
     //modify by lyt 6.23
     GSMService gsmservice = new GSMService();
     ((UnionCsService)m_Service).CSServiceDic.Add(NetWorkType.GSM, gsmservice);
     m_ULDetail = (GSMULDetail)(cellCalc.CalculateUpLinkDetail(m_ModelList, point, m_Service, m_Terminal, m_mobility));
     //m_ULDetail = new GSMULDetail(m_ModelList, m_TargetPara, m_Service, m_Terminal);
 }
Exemple #3
0
        public static GSMPredicGroup MockGSMPredicGroup()
        {
            GSMPredicGroup group = new GSMPredicGroup();
            group.Name = "group1";
            group.Region = MockRegion.CreateRegion();
            group.Region.Name = "region1";

            #region mock GSM 的Terminal
            Terminal temp = new Terminal();
            temp.ID = 0;
            List<NetworkTerminal> m_List = new List<NetworkTerminal>();
            GSMTerminal gsmTerminal1 = new GSMTerminal();
            gsmTerminal1.NetType = NetWorkType.GSM;
            gsmTerminal1.Technology = GsmTechnologyType.GSM;
            m_List.Add(gsmTerminal1);
            GSMTerminal gsmTerminal2 = new GSMTerminal();
            gsmTerminal2.NetType = NetWorkType.GSM;
            gsmTerminal2.Technology = GsmTechnologyType.GPRS;
            m_List.Add(gsmTerminal2);
            GSMTerminal gsmTerminal3 = new GSMTerminal();
            gsmTerminal3.NetType = NetWorkType.GSM;
            gsmTerminal3.Technology = GsmTechnologyType.EGPRS;
            m_List.Add(gsmTerminal3);
            temp.NetTerminalList = m_List;
            group.TrafficTerminal =temp;
            #endregion

            return group;
        }
Exemple #4
0
 public bool ValidateDr(DataRow dr, List<Terminal> excludeTerminals, int validateId)
 {
     this.m_ValidatId = validateId;
     IExtractor ex = new DataRowExtractor(dr);
     Terminal ter = new Terminal();
     ter.Technology = NetWorkType.GSM;
     GSMTerminal item = new GSMTerminal();
     ter.NetTerminalList.Add(item);
     this.m_Desc = new TerminalDesc(this.m_TrafficColModel, ter);
     this.m_GsmTerminalDesc = new GsmTerminalDesc(ter, this.m_TrafficColModel, excludeTerminals);
     return this.ValidateDr(ref this.m_Info, this.m_GsmTerminalDesc, ex, validateId);
 }
 public void CalculateDownLinkDetail_Test2()
 {
     Service psService = new UnionPsService();
     psService.CommonType = CommonServiceType.PSService;
     GSMService gsmService = new GSMService();
     ((UnionPsService)psService).PSServiceDic.Add(NetWorkType.GSM, gsmService);
     Mobility mobility = new Mobility();
     Terminal terminal = new Terminal();
     GSMTerminal gsmTerminal = new GSMTerminal();
     gsmTerminal.NetType = NetWorkType.GSM;
     terminal.NetTerminalList.Add(gsmTerminal);
     IDetail detail = m_GSMCellCalculator.CalculateDownLinkDetail(m_ModelList, m_Point, psService, mobility, terminal);
 }
 /// <summary>
 /// 根据CIR获得编码方式
 /// </summary>
 /// <returns></returns>
 public static string GetCode(double CIR,GSMTerminal terminal)
 {
     string codingScheme = null;
     codingScheme = (terminal.Technology == GsmTechnologyType.GSM) ? null : GetPsCode(CIR, codingScheme);
     //if (terminal.Technology == GsmTechnologyType.GSM)
     //{
     //    return null;
     //}
     //else
     //{
     //    codingScheme = GetPsCode(CIR, codingScheme);
     //    return codingScheme;
     //}
     return codingScheme;
 }
 /// <summary>
 /// 初始化列表
 /// </summary>
 public static void InialUseList(GSMTerminal terminal)
 {
     TrafficAdaptorAssist trafficAdaptor = TrafficAdaptorAssist.Instance;
     m_GsmCodingSchemeList = trafficAdaptor.GSMCodeSchemeList;
     //if (terminal.Technology == GsmTechnologyType.GPRS)
     //{
     //    m_UsedCodeList = m_GsmCodingSchemeList.GetRange(0, 11);
     //}
     //else
     //{
     //    m_UsedCodeList = m_GsmCodingSchemeList.GetRange(11, 20);
     //}
     m_UsedCodeList = (terminal.Technology == GsmTechnologyType.GPRS)
         ? m_GsmCodingSchemeList.GetRange(0, 11) : m_GsmCodingSchemeList.GetRange(11, 20);
 }
 /// <summary>
 /// 通过CIR查询吞吐率
 /// </summary>
 /// <param name="CIR"></param>
 /// <returns></returns>
 public static double GetRate(double CIR,GSMTerminal terminal)
 {
     double rate = 0;
     //todo:语音用户的吞吐率 TrafficAssist.GetNetworkService<GSMService>(NetWorkType.GSM, m_Service).VoiceServiceRate;
     rate = (terminal.Technology == GsmTechnologyType.GSM) ? 13 : GetPsRate(CIR, rate);
     //if (terminal.Technology == GsmTechnologyType.GSM)
     //{
     //    //return TrafficAssist.GetNetworkService<GSMService>(NetWorkType.GSM, m_Service).VoiceServiceRate;
     //    //Kbps
     //    return 13;
     //}
     //else
     //{
     //    rate = GetPsRate(CIR, rate);
     //    return rate;
     //}
     return rate;
 }
Exemple #9
0
        public static GSMSimUser MockGsmSimUser()
        {
            User trafficUser = new User();
            trafficUser.Service = new MockService();
            trafficUser.Service.CommonType = CommonServiceType.CSService;
            GSMSimUser user = new GSMSimUser(trafficUser);

            GSMSimTRX trx1 = MockGsmSimTrx();           
            user.BestServer = trx1;
            user.BestServer.NeTRX.TRXType = TRXType.BCCH;
             
            user.BestServer.CellUsers = new List<GSMSimUser>();

            GSMService gsmCsService = new GSMService();
            UnionCsService csService = new UnionCsService();
            csService.CSServiceDic.Add(NetWorkType.GSM, gsmCsService);
            user.TrafficUser.Service = csService;

            GSMTerminal gsmTerminal = new GSMTerminal();
            gsmTerminal.NetType = NetWorkType.GSM;
            Terminal terminal = new Terminal();
            terminal.Technology = NetWorkType.GSM;
            terminal.NetTerminalList.Add(gsmTerminal);
            user.TrafficUser.Terminal =terminal;
                      

            Site site = MockSite();
            Transceiver tran = new Transceiver();
            user.BestServer.Parent = tran;
            user.BestServer.Parent.Parent = site;

            //Dictionary<GSMTimeSlot, float> dlInterf = new Dictionary<GSMTimeSlot, float>();     
            //Dictionary<GSMTimeSlot, float> dlcirs = new Dictionary<GSMTimeSlot, float>();
            ////Dictionary<GSMTimeSlot, float> preUlTxPower = new Dictionary<GSMTimeSlot, float>();
            //for (int i = 0; i < 8; i++)
            //{
            //    dlcirs.Add(TSes[i], 15 + i * 2);              
            //}
            //user.DlCirs = dlcirs;
            //user.PreULTxPower = preUlTxPower;


            return user;
        }
Exemple #10
0
 private Terminal GenerateTerminal()
 {
     Terminal terminal = new Terminal();
     terminal.Name = this.tbxName.Text.Trim();
     terminal.Technology = NetWorkType.GSM;
     GSMTerminal item = new GSMTerminal();
     item.PrimaryBand = this.MainBand.Text;
     item.SecondaryBand = this.SecondBand.Text;
     item.CodeConfiguration = this.cmbCodeConfigur.Text;
     item.NoiseFigure = (float) this.NoiseFigure.Value;
     item.NetType = NetWorkType.GSM;
     item.Technology = (GsmTechnologyType) Enum.Parse(typeof(GsmTechnologyType), this.TechnologyName.Text);
     item.MaxTxPower = (float) this.tbMaxTxPower.Value;
     item.MinTxPower = (float) this.tbMinTxPower.Value;
     item.DlTimeslot = (int) this.tbDlTimeslot.Value;
     item.UlTimeslot = (int) this.tbUlTimeslot.Value;
     item.Loss = (float) this.tbxLosses.Value;
     item.IsSupportHalfRate = this.chkSupportHalfRate.Checked;
     item.IsSupportDTX = this.chkIsSupportDTX.Checked;
     item.Name = terminal.Name;
     terminal.NetTerminalList.Add(item);
     return terminal;
 }
Exemple #11
0
 private void InitData(List<RxPowerAndLinkLossModel> ModelList, Service service, Terminal terminal, TargetPara target)
 {
     m_Terminal = (GSMTerminal)terminal.GetNetWorkTerminal(NetWorkType.GSM);
     m_ModelList = ModelList;
     //数据用户
     if (service.CommonType == CommonServiceType.PSService)
     {
         GSMTerminal gsmTerminal = (GSMTerminal)terminal.GetNetWorkTerminal(NetWorkType.GSM);
         GSMPointAnalysisCommonCalc.InialUseList(gsmTerminal);
         target.TargetThroughput = GSMPointAnalysisCommonCalc.GetPsReqThroughput();
     }
     //语音用户
     else
     {
         CsInit(service, target);
     }
     target.TargetRxPower = -110;
 }
Exemple #12
0
        public void Initial()
        {
            m_ServedUser = new List<GSMSimUser>();
            m_ForAccessAgain = new List<GSMSimUser>();
            m_Context = GSMMock.CreateContext();            
            TrafficAdaptorAssist trafficAdaptor = TrafficAdaptorAssist.Instance;
            m_CodeSchemeTable = new CodeSchemeTable(trafficAdaptor.GSMCodeSchemeList);
            m_Context.AddKey(GsmContextkey.GSMForAccessAgain, m_ForAccessAgain);
            m_Context.AddKey(GsmContextkey.GSMServedUsers, m_ServedUser);
            m_Context.AddKey(GsmContextkey.CodeSchemeTable, m_CodeSchemeTable);
            GSMSimUser userOne = GSMMock.MockGsmSimUser();
            userOne.IsCs = true;
            GSMSimUser userTwo = GSMMock.MockGsmSimUser();
            userTwo.IsCs = true;
            GSMSimUser userThr = GSMMock.MockGsmPsSimUser();
            userThr.IsCs = false;
            GSMSimUser userFor = GSMMock.MockGsmPsSimUser();
            userFor.IsCs = false;
            m_ServedUser.Add(userOne);
            m_ServedUser.Add(userTwo);
            m_ServedUser.Add(userThr);
            m_ServedUser.Add(userFor);
            m_ServedUser[0].TrafficUser.LinkType = LinkType.Uplink;
            m_ServedUser[1].TrafficUser.LinkType = LinkType.Downlink;
            m_ServedUser[2].TrafficUser.LinkType = LinkType.Uplink;
            m_ServedUser[3].TrafficUser.LinkType = LinkType.Downlink;
            m_TRX = GSMMock.MockGsmSimTrx();
            for (int i = 1; i < 4; i++)
            {
                m_TRX.TSs[i].NETimeSlot.ChanType = Huawei.UNet.NE.Interface.ChannelType.PDCH;
                m_TRX.TSs[i].UlChanType = Huawei.UNet.NE.Interface.ChannelType.PDCH;
                m_TRX.TSs[i].DlChanType = Huawei.UNet.NE.Interface.ChannelType.PDCH;
            }
            for (int i = 4; i < 8; i++)
            {
                m_TRX.TSs[i].NETimeSlot.ChanType = Huawei.UNet.NE.Interface.ChannelType.TCH;
                m_TRX.TSs[i].UlChanType = Huawei.UNet.NE.Interface.ChannelType.TCH;
                m_TRX.TSs[i].DlChanType = Huawei.UNet.NE.Interface.ChannelType.TCH;
            }
            m_TRX.TSs[4].DLMsColl.Add(m_ServedUser[1]);
            m_TRX.TSs[2].DLMsColl.Add(m_ServedUser[3]);
            m_TRX.TSs[3].DLMsColl.Add(m_ServedUser[3]);
            m_TRX.TSs[5].ULMsColl.Add(m_ServedUser[0]);
            m_TRX.TSs[2].ULMsColl.Add(m_ServedUser[2]);
            m_TRX.TSs[3].ULMsColl.Add(m_ServedUser[2]);
            m_TRX.TSs[1].ULMsColl.Add(m_ServedUser[2]);
            m_ServedUser[0].UlTs.Add(m_TRX.TSs[5]);
            m_ServedUser[1].DlTs.Add(m_TRX.TSs[4]);
            m_ServedUser[2].UlTs.Add(m_TRX.TSs[1]);
            m_ServedUser[2].UlTs.Add(m_TRX.TSs[2]);
            m_ServedUser[2].UlTs.Add(m_TRX.TSs[3]);
            m_ServedUser[3].DlTs.Add(m_TRX.TSs[2]);
            m_ServedUser[3].DlTs.Add(m_TRX.TSs[3]);
            foreach (GSMSimUser user in m_ServedUser)
            {
                GSMTerminal gsmTerminal = new GSMTerminal();
                gsmTerminal.NetType = NetWorkType.GSM;
                Terminal terminal = new Terminal();
                terminal.Technology = NetWorkType.GSM;
                terminal.NetTerminalList.Add(gsmTerminal);
                user.TrafficUser.Terminal = terminal;
            }

        }