/// <summary> /// 注入小区信息 /// </summary> /// <param name="Sectors">扇区信息,扇区编号和天线构成</param> /// <param name="RefLteNode">新生成的,EDS中的基站信息</param> private static void BuildCellInfo(List <AircomCell> Sectors, ref LTENodeType RefLteNode) { List <LTECellType> _LteCells = new List <LTECellType>(); foreach (var Sector in Sectors) { #region Cells LTECellType _LteCell = new LTECellType(); List <AirComAntennaType> Antennas = Sector.Antenners as List <AirComAntennaType>; #region 生成扇区信息 _LteCell.iid = string.Format("{0}-{1}", RefLteNode.iid, Sector.CellID); //添加扇区界面中,用户输入的扇区名称 _LteCell.Parent = new IDType() { iid = RefLteNode.iid //LteNode的IID一致 }; _LteCell.Tac = 0; //路由编码,采用默认值0 _LteCell.TacSpecified = true; _LteCell.LTECellIDSpecified = true; _LteCell.LTECellID = Sector.CellID; #endregion #region 生成馈线信息 if (Antennas != null && Antennas.Count > 0) { foreach (var obj in Antennas) { double max = 31 + ((obj.Power - 0.21) / 3 + (obj.Power - 0.21) % 3 > 0 ? 1 : 0) * 3; _LteCell.Carrier = new LTECellCarrierType() { CarrierID = obj.CarrierId.ToString(), MaxTxPower = max, //最大功能,由用户从界面输入的RS功率换算;换算方法:稍后发邮; MaxTaSpecified = true, NoiseFigure = 6, //采用默认值6 NoiseFigureSpecified = true, PhysicalCellID = 0, //采用默认值0 PhysicalCellIDSpecified = true }; } } #endregion _LteCells.Add((_LteCell)); #endregion } RefLteNode.Cells = _LteCells.ToArray(); }
/// <summary> /// 生成XML文件 /// </summary> /// <param name="BaseInfo"></param> /// <param name="_LteNode"></param> private static bool CreateXMLFiles(AirComLTENodeBaseInfo BaseInfo, LTENodeType _LteNode, string Savedir, out XmlFilePackageInfo XmlFiles) { //try //{ List <RootEntityType> Nodes = new List <RootEntityType>(); List <LTENodeType> nodesList = new List <LTENodeType>(); Nodes.Add(_LteNode); nodesList.Add(_LteNode); Savedir = GlobalInfo.Instance.ConfigParam.XmlFileSaveDir.Trim(); if (!Directory.Exists(Savedir)) { DirectoryInfo dirInfo = Directory.CreateDirectory(Savedir); } var Prjobj = GlobalInfo.Instance.ConfigParam.ProjectNames.FirstOrDefault(Fo => Fo.CityEName.Equals(BaseInfo.CityName)); if (Prjobj == null) { JLog.Instance.AppInfo("没有找到相应的工程配置"); } XmlFiles = new XmlFilePackageInfo(); JLog.Instance.AppInfo("开始生成导入基站XML文件"); BuildLteNodeXML(Nodes, Savedir, out XmlFiles.InputLTENodeFileFullName); JLog.Instance.AppInfo("开始生成删除基站XML文件"); BuilLteNodeDeleteXML(Prjobj.ProjectName, nodesList, Savedir, out XmlFiles.DeleteLTENodeFileFullName); JLog.Instance.AppInfo("开始生成导入位置信息XML文件"); BuildLocationXML(BaseInfo, Savedir, out XmlFiles.InputLocationFileFullName); JLog.Instance.AppInfo("开始生成删除位置信息XML文件"); BuildLocationDeleteXML(BaseInfo, Savedir, out XmlFiles.DeleteLocationFileFullName); return(true); //} //catch (Exception ex) //{ // JLog.Instance.Error(ex.Message, MethodBase.GetCurrentMethod().Name, // MethodBase.GetCurrentMethod().Module.Name); // XmlFiles = new XmlFilePackageInfo(); // return false; //} }
/// <summary> /// 生成XML文件 /// </summary> /// <param name="BaseInfo">站点基本信息</param> /// <param name="Sectors">扇区信息,每个扇区的天线信息</param> /// <param name="AllAntennas">所有天线的信息</param> /// <param name="Savedir">保存目录</param> /// <returns></returns> public static bool BuilLTEXMLFilesInterface(AirComLTENodeBaseInfo BaseInfo, List <AircomCell> Sectors, string Savedir, out XmlFilePackageInfo XmlFiles) { try { LTENodeType _LteNode = new LTENodeType(); List <AirComAntennaType> AllAntennas = new List <AirComAntennaType>(); List <AirComAntennaType> SubAntennas = new List <AirComAntennaType>(); BuildCelliid(BaseInfo, Sectors); foreach (var Sector in Sectors) { //Sectors.TryGetValue(key, out SubAntennas); AllAntennas.AddRange(Sector.Antenners as List <AirComAntennaType>); } BuildStationInfo(BaseInfo, ref _LteNode); BuildCarrierInfo(Sectors, ref _LteNode); BuildAntennaInfo(AllAntennas, ref _LteNode); BuildCellInfo(Sectors, ref _LteNode); #region 生成XML //XmlFiles = new XmlFilePackageInfo(); return(CreateXMLFiles(BaseInfo, _LteNode, Savedir, out XmlFiles)); #endregion } catch (Exception ex) { JLog.Instance.Error(ex.Message, MethodBase.GetCurrentMethod().Name, MethodBase.GetCurrentMethod().Module.Name); XmlFiles = null; return(false); } }
/// <summary> /// 注入载波信息至RefLteNode /// </summary> /// <param name="Sectors">用户输入的扇区信息,包括扇区编号,以及扇区天线信息</param> /// <param name="RefLteNode">新生成的,EDS中的基站信息</param> private static void BuildCarrierInfo(List <AircomCell> Sectors, ref LTENodeType RefLteNode) { List <LTENodeCarrierType> _LteNodeCarriers = new List <LTENodeCarrierType>(); int cellid = 1; foreach (var Sector in Sectors) { Sector.CellID = cellid;//20160831郭琴 SAM商量确定,有邮件 List <AirComAntennaType> myAntenna = new List <AirComAntennaType>(); myAntenna = Sector.Antenners as List <AirComAntennaType>; if (myAntenna != null && myAntenna.Count > 0) { foreach (var obj in myAntenna) { //var carrier = // GlobalInfo.Instance.ConfigParam.CarrierItems.Find(Fo => Fo.Alias.Equals(obj.CarrierAlias));//2016-04-03改为由浪潮提供 //if (carrier != null) //{ #region 获取所有载波信息 //LTENodeCarrierType同小区的载波有何区别? //一个小基站可能用几个载波,但是小区只能用其中一个或是多个; LTENodeCarrierType _lteNodeCarrier = new LTENodeCarrierType(); _lteNodeCarrier.CarrierID = obj.CarrierId; // carrier.ID; //这个值从里获取,是扇区编号? 2016-04-03改为由浪潮提供 if (_LteNodeCarriers.Find(Fo => Fo.CarrierID == obj.CarrierId) == null) { _LteNodeCarriers.Add(_lteNodeCarrier); } #endregion //} } } RefLteNode.Carriers = _LteNodeCarriers.ToArray(); cellid++; } }
/// <summary> /// 注入基础信息至RefLteNode /// </summary> /// <param name="BaseInfo">AirComLTENodeBaseInfo类型的用户输入的基站信息</param> /// <param name="RefLteNode">新生成的,EDS中的基站信息--LTENodeType类型</param> private static void BuildStationInfo(AirComLTENodeBaseInfo BaseInfo, ref LTENodeType RefLteNode) { #region 基本信息 RefLteNode.iid = BaseInfo.Stationiid; RefLteNode.Location = new IDType() { iid = BaseInfo.Stationiid//唯一识别,同_LteNode.iid一致 //基站ID }; //RefLteNode.Comments = GlobalInfo.Instance.ConfigParam.ProjectNames[0].CityName; //地市--可有可无---毕工确认 @20150808 ---(wjj:根据登录用户获取地市及工程名称) RefLteNode.Comments = BaseInfo.CityName; //地市--可有可无---毕工确认 @20150808 ---(wjj:根据登录用户获取地市及工程名称)--由浪潮提供@2016-04-03。 RefLteNode.PLMN = new IDType() { //iid = GlobalInfo.Instance.ConfigParam.ProjectNames[0].ProjectName//工程同名---这个是必须的同---毕工确认 @20150808// //iid = "plan"//固定值plan---郭琴确认 @20151127// iid = "PLMN0"//固定值plan---郭琴确认 @20160622// //工程名是定死的,用户可选择地市信息,系统根据地市信息获取工程名(可配置) }; RefLteNode.Name2 = BaseInfo.PlanPrjID.ToString();//填基站的规划期数;规划期数由用户在界面上输入。 //RefLteNode.NodeID = 0;//毕工确认 @20150808 //wjj20150930 可忽略的值不用输入,序列化时会忽略 #endregion }
/// <summary> /// 注入天线信息 /// </summary> /// <param name="Antennas">天线信息</param> /// <param name="RefLteNode">新生成的,EDS中的基站信息</param> private static void BuildAntennaInfo(List <AirComAntennaType> Antennas, ref LTENodeType RefLteNode) { #region Antennas List <LTEAntennaType> _Antennas = new List <LTEAntennaType>(); for (int index = 0; index < Antennas.Count; index++) { AirComAntennaType Item = Antennas[index]; LTEAntennaType _Antenna = new LTEAntennaType(); _Antenna.Index = index + 1; //可以采用序列的索引吗?可以 #region AbsLocation // 无异议 _Antenna.AbsLocation = new LocationTypeType() { Longitude = Item.Lng, LongitudeSpecified = true, Latitude = Item.Lat, LatitudeSpecified = true }; #endregion _Antenna.Azimuth = Item.Azimuth; _Antenna.AzimuthSpecified = true; _Antenna.ElectricalDownTilt_RO = Item.ElectricalDownTilt;//界面输入的是物理的?还是电子的?//无用,填0 @20150825确认 _Antenna.ElectricalDownTilt_ROSpecified = true; _Antenna.Height = Item.Height; _Antenna.HeightSpecified = true; //_Antenna.iid = Item //示例XML中没有 _Antenna.MechanicalDownTiltSpecified = true; _Antenna.MechanicalDownTilt = Item.MechanicalDownTilt; #region AntennaPatternType //_Antenna.AntennaPatternType = new AntennaPatternType() //{ // iid = Antennas[index].AntennaTypeName //就是天线型号 Default_D,Defaut_F //}; //这个值从哪里获取? _Antenna.AntennaPatternType = new IDType() { iid = Antennas[index].AntennaTypeName }; #endregion #region PrimaryModel,天线参数中体现 _Antenna.PrimaryModel = new PredictionModelReferenceType() { ModelType = new IDType() { iid = Antennas[index].ModelType //从哪里获取?传播模型由用户在下拉框中选择;配置文件中可配置选项; }, RadiusKM = Antennas[index].RadiusKm, //是覆盖半径吗?1,2,3,5,由用户下拉框中选择,默认为2; RadiusKMSpecified = true, ResolutionMetres = Antennas[index].ResolutionMetres, //计算精度,以米为单位,默认为10M;用户可选;扇区添加天线时,需选择计算精度5,10,20 ResolutionMetresSpecified = true }; #endregion #region Feeders List <LTECellFeederType> _LteCellFeeders = new List <LTECellFeederType>(); LTECellFeederType _fe = new LTECellFeederType(); //以下参数坐哪里获取? _fe.FeederType = new IDType() { iid = "Unknown" }; //_fe.LTECellID = (index + 1).ToString();//基站iid-天线索引号(_Antenna.Index) //_fe.LTECellID =string.Format("{0}-{1}" ,RefLteNode.iid ,index+1);//扇区ID,20151126郭琴确认//20160829根据郭琴要求,修改两种对应关系,详见 _fe.LTECellID = Item.Celliid; _fe.Length = 0; _fe.LengthSpecified = true; _fe.DLGain = 0; _fe.DLGainSpecified = true; _fe.MHAGain = 0; _fe.MHAGainSpecified = true; _fe.MHAType = new IDType() { iid = "Unknown" }; _fe.ULGain = 0; _fe.ULGainSpecified = true; _fe.Noise = 0; _fe.NoiseSpecified = true; _fe.OtherLosses = 0; _fe.OtherLossesSpecified = true; _LteCellFeeders.Add(_fe); _Antenna.Feeders = _LteCellFeeders.ToArray(); #endregion _Antennas.Add(_Antenna); } RefLteNode.Antennas = _Antennas.ToArray(); #endregion }
static void Main(string[] args) { try { LTECellType _lte = new LTECellType(); LTENodeType _lteNode = new LTENodeType(); LTEAntennaType _nType = new LTEAntennaType(); LTECellFeederType feeder = new LTECellFeederType(); //_nType.Feeders #region 序列化示例 RootEntityType Root1 = new RootEntityType(); Root1.iid = "HL - D3900256154PT"; Root1.bvid = "LTE_HUNAN"; Root1.Security = null; RootEntityType Root2 = new RootEntityType(); Root2.iid = "HL-D3900256155PT"; Root2.bvid = "LTE_HUNAN"; XmlSerializerNamespaces nsMgr = new XmlSerializerNamespaces(); //XmlNamespaceManager nsMgr = new XmlNamespaceManager();//这一步实例化一个xml命名空间管理器 nsMgr.Add("umts70", "http://www.aircominternational.com/Schemas/UMTS/2010/08"); nsMgr.Add("gsm", "http://www.aircominternational.com/Schemas/GSM/2009/09"); nsMgr.Add("eqp", "http://www.aircominternational.com/Schemas/Equipment/2009/09"); nsMgr.Add("umts", "http://www.aircominternational.com/Schemas/UMTS/2010/07"); nsMgr.Add("tra70", "http://www.aircominternational.com/Schemas/Connect/2010/08"); nsMgr.Add("co", "http://www.aircominternational.com/Schemas/Common/2009/07"); nsMgr.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance"); nsMgr.Add("co70", "http://www.aircominternational.com/Schemas/Common/2010/08"); nsMgr.Add("gsm70", "http://www.aircominternational.com/Schemas/GSM/2010/08"); nsMgr.Add("util", "http://www.aircominternational.com/contract/Util/2009/10"); nsMgr.Add("config", "http://www.aircominternational.com/Schemas/Configuration/2010/08"); nsMgr.Add("tra", "http://www.aircominternational.com/Schemas/Connect/2009/09"); nsMgr.Add("ct", "http://www.aircominternational.com/Schemas/CommonTypes/2009/05"); nsMgr.Add("lte", "http://www.aircominternational.com/Schemas/LTE/2010/08"); nsMgr.Add("eqp70", "http://www.aircominternational.com/Schemas/Equipment/2010/08"); nsMgr.Add("umts2", "http://www.aircominternational.com/Schemas/UMTS/2009/05"); //LTECellType Root1 = new LTECellType(); //Root1.iid = "HL - D3900256154PT"; //Root1.bvid = "LTE_HUNAN"; //LTECellType Root2 = new LTECellType(); //Root2.iid = "HL-D3900256155PT"; //Root2.bvid = "LTE_HUNAN"; List <RootEntityType> tt = new List <RootEntityType>(); tt.Add(Root1); tt.Add(Root2); //JLIB.CSharp.JFileExten.ToXML((RootEntityType)Lte, "d:\\TestLte.xml"); //XmlRootAttribute rootAtrAttribute = new XmlRootAttribute("ArrayOfRootEntityType"); XmlAttributeAttribute aa = new XmlAttributeAttribute("type", typeof(string)); aa.Namespace = "http://www.w3.org/2001/XMLSchema-instance"; aa.AttributeName = typeof(LocationObjectv70Type).ToString(); XmlSerializer sr = new XmlSerializer(typeof(List <RootEntityType>)); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true, IndentChars = ("\t\t"), NamespaceHandling = NamespaceHandling.OmitDuplicates, NewLineHandling = NewLineHandling.Entitize //NewLineOnAttributes = true }; // Simply dump dataset to xml file on disk... using (XmlWriter wr = XmlWriter.Create("d:\\TestLte.xml", settings)) { sr.Serialize(wr, tt, nsMgr); } #endregion #region 创建示例 //EDSDemoProxy.EDSClient client = new SimpleEDSQuery.EDSDemoProxy.EDSClient("EDSWCFNetTCPEndPoint"); //client.Open(); //List<RootEntityType> datas = new List<RootEntityType>(); //var Entity = new LTENodeType(); //Entity.iid = ""; //Entity.bvid = ""; //Entity.PLMN = new IDType() //{ // iid = "LTE_HUNAN" //}; ////Entity.Cells; ////Entity.Antennas ////Entity.Carriers; //datas.Add(Entity); //#region LTE CELL //LTECellType Cell = new LTECellType(); //#endregion //CreateRequestType CreateParams = new CreateRequestType(); //var CreateItems = new CreateItemType[] //{ // new CreateItemType() // { // itemID = new Guid(), // objectType = QueryableTypes.LTENodeType, // NewData = datas.ToArray() // } //}; //CreateParams.CreateItems = CreateItems; //CreateParams.CreateItems = CreateItems; //var Result = client.Create(CreateParams); #endregion #region wjj删除示例 // var _DelItems = new List<DeleteItemType>(); // #region 添加删除项 // var _DelItem = new DeleteItemType(); // _DelItem.objectType = QueryableTypes.LocationObjectv70Type; // #region 删除条件 // var selType = new QrySelectType(); // var objs = new QrySimpleListType(); // selType.Item = objs; // #region 删除对像集合 // List<ListItemType> Itemss = new List<ListItemType>(); // var obj = new ListItemType() // { // bvid = "LTE_HUNAN", // iid = "衡阳常宁市六联HL-D3900256154PT" // }; // Itemss.Add(obj); // var obj2 = new ListItemType() // { // bvid = "LTE_HUNAN", // iid = "衡阳常宁市双湖HL-D3900256155PT" // }; // Itemss.Add(obj2); // #endregion //objs.Items = Itemss.ToArray(); // #endregion // _DelItem.Select = selType; // _DelItems.Add(_DelItem); // #endregion // var _QrySel = new QrySelectType(); // DeleteRequestType DelParams = new DeleteRequestType(); // DelParams.DeleteItems = _DelItems.ToArray(); // EDSDemoProxy.EDSClient client = new SimpleEDSQuery.EDSDemoProxy.EDSClient("EDSWCFNetTCPEndPoint"); // client.Open(); // client.Delete(DelParams); #endregion #region 自带查询示例 //EDSDemoProxy.EDSClient client = new SimpleEDSQuery.EDSDemoProxy.EDSClient("EDSWCFNetTCPEndPoint"); //client.Open(); //var QueryComm = new QrySelectType() //{ // #region QrySelectType // Item = new QrySimpleTextType() // { // // 查询表达式 --生成任意多边形指令 // Query = string.Format("iid = \"{0}\" and bvid = \"{1}\"", "SF03003A_11", "West") // } // #endregion //}; //var QueryItemsInfo = new QueryItemType[] //{ // new QueryItemType() // { // itemID = Guid.NewGuid(), // Inner request id for an item // // data type to query against // objectType = ty, // Select = QueryComm // } //}; //QueryRequestType qry = new QueryRequestType() //{ // itemID = Guid.NewGuid(), // Outer request id // QueryItems = QueryItemsInfo //}; //// sends query //QueryResponseType data = client.Query(qry); //SerializeResultToDisk(data, ty); #endregion } catch (Exception ex) { JLog.Instance.Error(ex.Message, MethodBase.GetCurrentMethod().Name, MethodBase.GetCurrentMethod().Module.Name); } }
void ILTEContracts.DeleteNode(LTENodeType Node) { throw new NotImplementedException(); }
public BLLLTE() { LTENodeType node = new LTENodeType(); }