29 changed files with 2134 additions and 0 deletions
@ -0,0 +1,308 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 4G LTE小区配置主实体类
|
|||
/// </summary>
|
|||
public class LteCellConfiguration |
|||
{ |
|||
[JsonProperty("cell_id")] |
|||
public int? CellId { get; set; } |
|||
|
|||
[JsonProperty("n_id_cell")] |
|||
public int? NIdCell { get; set; } |
|||
|
|||
[JsonProperty("tac")] |
|||
public int? Tac { get; set; } |
|||
|
|||
[JsonProperty("plmn_list")] |
|||
public List<PlmnConfig> PlmnList { get; set; } = new List<PlmnConfig>(); |
|||
|
|||
[JsonProperty("cipher_algo_pref")] |
|||
public List<int> CipherAlgoPref { get; set; } = new List<int>(); |
|||
|
|||
[JsonProperty("integ_algo_pref")] |
|||
public List<int> IntegAlgoPref { get; set; } = new List<int>(); |
|||
|
|||
[JsonProperty("ims_emergency_support")] |
|||
public bool? ImsEmergencySupport { get; set; } |
|||
|
|||
[JsonProperty("ignore_ue_as_release")] |
|||
public bool? IgnoreUeAsRelease { get; set; } |
|||
|
|||
[JsonProperty("edrx")] |
|||
public bool? Edrx { get; set; } |
|||
|
|||
[JsonProperty("ue_count_max")] |
|||
public int? UeCountMax { get; set; } |
|||
|
|||
[JsonProperty("allow_cat0_ue")] |
|||
public bool? AllowCat0Ue { get; set; } |
|||
|
|||
[JsonProperty("inactivity_timer")] |
|||
public int? InactivityTimer { get; set; } |
|||
|
|||
[JsonProperty("cell_barred")] |
|||
public bool? CellBarred { get; set; } |
|||
|
|||
[JsonProperty("intra_freq_reselection")] |
|||
public bool? IntraFreqReselection { get; set; } |
|||
|
|||
[JsonProperty("q_rx_lev_min")] |
|||
public int? QRxLevMin { get; set; } |
|||
|
|||
[JsonProperty("q_rx_lev_min_offset")] |
|||
public int? QRxLevMinOffset { get; set; } |
|||
|
|||
[JsonProperty("p_max")] |
|||
public int? PMax { get; set; } |
|||
|
|||
[JsonProperty("pws_max_segment_len")] |
|||
public int? PwsMaxSegmentLen { get; set; } |
|||
|
|||
[JsonProperty("pws_si_periodicity")] |
|||
public int? PwsSiPeriodicity { get; set; } |
|||
|
|||
[JsonProperty("sib16_enable")] |
|||
public bool? Sib16Enable { get; set; } |
|||
|
|||
[JsonProperty("sib16_si_periodicity")] |
|||
public int? Sib16SiPeriodicity { get; set; } |
|||
|
|||
[JsonProperty("si_value_tag")] |
|||
public int? SiValueTag { get; set; } |
|||
|
|||
[JsonProperty("si_window_length")] |
|||
public int? SiWindowLength { get; set; } |
|||
|
|||
[JsonProperty("sib_sched_list")] |
|||
public List<SibSchedConfig> SibSchedList { get; set; } = new List<SibSchedConfig>(); |
|||
|
|||
[JsonProperty("cell_gain")] |
|||
public int? CellGain { get; set; } |
|||
|
|||
[JsonProperty("rf_port")] |
|||
public int? RfPort { get; set; } |
|||
|
|||
[JsonProperty("cyclic_prefix")] |
|||
public string? CyclicPrefix { get; set; } |
|||
|
|||
[JsonProperty("n_rb_dl")] |
|||
public int? NRbDl { get; set; } |
|||
|
|||
[JsonProperty("dl_earfcn")] |
|||
public int? DlEarfcn { get; set; } |
|||
|
|||
[JsonProperty("ul_earfcn")] |
|||
public int? UlEarfcn { get; set; } |
|||
|
|||
[JsonProperty("n_antenna_dl")] |
|||
public int? NAntennaDl { get; set; } |
|||
|
|||
[JsonProperty("n_antenna_ul")] |
|||
public int? NAntennaUl { get; set; } |
|||
|
|||
[JsonProperty("power_p_sync")] |
|||
public int? PowerPSync { get; set; } |
|||
|
|||
[JsonProperty("power_s_sync")] |
|||
public int? PowerSSync { get; set; } |
|||
|
|||
[JsonProperty("power_pbch")] |
|||
public int? PowerPbch { get; set; } |
|||
|
|||
[JsonProperty("power_pcfich")] |
|||
public int? PowerPcfich { get; set; } |
|||
|
|||
[JsonProperty("power_phich")] |
|||
public int? PowerPhich { get; set; } |
|||
|
|||
[JsonProperty("power_pdcch")] |
|||
public int? PowerPdcch { get; set; } |
|||
|
|||
[JsonProperty("power_pdsch_si")] |
|||
public int? PowerPdschSi { get; set; } |
|||
|
|||
[JsonProperty("p_srs_offset")] |
|||
public int? PSrsOffset { get; set; } |
|||
|
|||
[JsonProperty("transmission_mode")] |
|||
public int? TransmissionMode { get; set; } |
|||
|
|||
[JsonProperty("transmission_mode_opt")] |
|||
public int? TransmissionModeOpt { get; set; } |
|||
|
|||
[JsonProperty("manual_ref_signal_power")] |
|||
public bool? ManualRefSignalPower { get; set; } |
|||
|
|||
[JsonProperty("dpc")] |
|||
public bool? Dpc { get; set; } |
|||
|
|||
[JsonProperty("dpc_pusch_snr_target")] |
|||
public double? DpcPuschSnrTarget { get; set; } |
|||
|
|||
[JsonProperty("dpc_pucch_snr_target")] |
|||
public double? DpcPucchSnrTarget { get; set; } |
|||
|
|||
[JsonProperty("root_sequence_index")] |
|||
public int? RootSequenceIndex { get; set; } |
|||
|
|||
[JsonProperty("pusch_msg3_mcs")] |
|||
public int? PuschMsg3Mcs { get; set; } |
|||
|
|||
[JsonProperty("pusch_msg3_delta_power")] |
|||
public int? PuschMsg3DeltaPower { get; set; } |
|||
|
|||
[JsonProperty("rar_backoff_index")] |
|||
public int? RarBackoffIndex { get; set; } |
|||
|
|||
[JsonProperty("pdsch_dedicated")] |
|||
public PdschDedicatedConfig PdschDedicated { get; set; } = new PdschDedicatedConfig(); |
|||
|
|||
[JsonProperty("phich_duration")] |
|||
public string? PhichDuration { get; set; } |
|||
|
|||
[JsonProperty("phich_resource")] |
|||
public string? PhichResource { get; set; } |
|||
|
|||
[JsonProperty("pucch_dedicated")] |
|||
public PucchDedicatedConfig PucchDedicated { get; set; } = new PucchDedicatedConfig(); |
|||
|
|||
[JsonProperty("pusch_dedicated")] |
|||
public PuschDedicatedConfig PuschDedicated { get; set; } = new PuschDedicatedConfig(); |
|||
|
|||
[JsonProperty("srs_dedicated")] |
|||
public SrsDedicatedConfig SrsDedicated { get; set; } = new SrsDedicatedConfig(); |
|||
|
|||
[JsonProperty("m_ri")] |
|||
public int? MRi { get; set; } |
|||
|
|||
[JsonProperty("ap_cqi_period")] |
|||
public int? ApCqiPeriod { get; set; } |
|||
|
|||
[JsonProperty("simultaneousAckNackAndCQI")] |
|||
public bool? SimultaneousAckNackAndCQI { get; set; } |
|||
|
|||
[JsonProperty("simultaneousAckNackAndCQI_format3")] |
|||
public bool? SimultaneousAckNackAndCQIFormat3 { get; set; } |
|||
|
|||
[JsonProperty("cqi_period")] |
|||
public int? CqiPeriod { get; set; } |
|||
|
|||
[JsonProperty("cqi_adapt_fer")] |
|||
public double? CqiAdaptFer { get; set; } |
|||
|
|||
[JsonProperty("ul_snr_adapt_fer")] |
|||
public double? UlSnrAdaptFer { get; set; } |
|||
|
|||
[JsonProperty("si_coderate")] |
|||
public double? SiCoderate { get; set; } |
|||
|
|||
[JsonProperty("si_pdcch_format")] |
|||
public int? SiPdcchFormat { get; set; } |
|||
|
|||
[JsonProperty("sr_period")] |
|||
public int? SrPeriod { get; set; } |
|||
|
|||
[JsonProperty("n_symb_cch")] |
|||
public int? NSymbCch { get; set; } |
|||
|
|||
[JsonProperty("initial_cqi")] |
|||
public int? InitialCqi { get; set; } |
|||
|
|||
[JsonProperty("forced_cqi")] |
|||
public int? ForcedCqi { get; set; } |
|||
|
|||
[JsonProperty("force_dl_schedule")] |
|||
public bool? ForceDlSchedule { get; set; } |
|||
|
|||
[JsonProperty("force_full_bsr")] |
|||
public bool? ForceFullBsr { get; set; } |
|||
|
|||
[JsonProperty("dl_256qam")] |
|||
public bool? Dl256Qam { get; set; } |
|||
|
|||
[JsonProperty("dl_1024qam")] |
|||
public bool? Dl1024Qam { get; set; } |
|||
|
|||
[JsonProperty("ul_64qam")] |
|||
public bool? Ul64Qam { get; set; } |
|||
|
|||
[JsonProperty("ul_256qam")] |
|||
public bool? Ul256Qam { get; set; } |
|||
|
|||
[JsonProperty("pusch_max_its")] |
|||
public int? PuschMaxIts { get; set; } |
|||
|
|||
[JsonProperty("pusch_max_mcs")] |
|||
public int? PuschMaxMcs { get; set; } |
|||
|
|||
[JsonProperty("pdsch_mcs")] |
|||
public List<int> PdschMcs { get; set; } = new List<int>(); |
|||
|
|||
[JsonProperty("pdsch_fixed_rb_alloc")] |
|||
public List<bool> PdschFixedRbAlloc { get; set; } = new List<bool>(); |
|||
|
|||
[JsonProperty("pusch_mcs")] |
|||
public List<int> PuschMcs { get; set; } = new List<int>(); |
|||
|
|||
[JsonProperty("pusch_fixed_rb_alloc")] |
|||
public List<bool> PuschFixedRbAlloc { get; set; } = new List<bool>(); |
|||
|
|||
[JsonProperty("mac_config")] |
|||
public MacConfig MacConfig { get; set; } = new MacConfig(); |
|||
|
|||
[JsonProperty("gbr_ul_ratio")] |
|||
public double? GbrUlRatio { get; set; } |
|||
|
|||
[JsonProperty("gbr_dl_ratio")] |
|||
public double? GbrDlRatio { get; set; } |
|||
|
|||
[JsonProperty("ignore_gbr_congestion")] |
|||
public bool? IgnoreGbrCongestion { get; set; } |
|||
|
|||
[JsonProperty("srb_config")] |
|||
public List<SrbConfig> SrbConfig { get; set; } = new List<SrbConfig>(); |
|||
|
|||
[JsonProperty("drb_config")] |
|||
public string? DrbConfig { get; set; } |
|||
|
|||
[JsonProperty("t304")] |
|||
public int? T304 { get; set; } |
|||
|
|||
[JsonProperty("rrc_cnx_reject_waitTime")] |
|||
public int? RrcCnxRejectWaitTime { get; set; } |
|||
|
|||
[JsonProperty("rrc_cnx_reject_extWaitTime")] |
|||
public int? RrcCnxRejectExtWaitTime { get; set; } |
|||
|
|||
[JsonProperty("meas_gap_config")] |
|||
public string? MeasGapConfig { get; set; } |
|||
|
|||
[JsonProperty("forced_meas_gap_offset")] |
|||
public int? ForcedMeasGapOffset { get; set; } |
|||
|
|||
[JsonProperty("meas_config")] |
|||
public string? MeasConfig { get; set; } |
|||
|
|||
[JsonProperty("ho_from_meas")] |
|||
public bool? HoFromMeas { get; set; } |
|||
|
|||
[JsonProperty("ho_cfra")] |
|||
public bool? HoCfra { get; set; } |
|||
|
|||
[JsonProperty("scell_list")] |
|||
public List<ScellConfig> ScellList { get; set; } = new List<ScellConfig>(); |
|||
|
|||
[JsonProperty("scells_activation")] |
|||
public string? ScellsActivation { get; set; } |
|||
|
|||
[JsonProperty("ncell_list")] |
|||
public List<NcellConfig> NcellList { get; set; } = new List<NcellConfig>(); |
|||
|
|||
[JsonProperty("forced_ri")] |
|||
public int? ForcedRi { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// LTE小区配置集合类
|
|||
/// </summary>
|
|||
public class LteCellConfigurationCollection |
|||
{ |
|||
/// <summary>
|
|||
/// 小区配置列表
|
|||
/// </summary>
|
|||
[JsonProperty("cells")] |
|||
public List<LteCellConfiguration> Cells { get; set; } = new List<LteCellConfiguration>(); |
|||
|
|||
/// <summary>
|
|||
/// 配置版本
|
|||
/// </summary>
|
|||
[JsonProperty("version")] |
|||
public string? Version { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 配置描述
|
|||
/// </summary>
|
|||
[JsonProperty("description")] |
|||
public string? Description { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
[JsonProperty("created_at")] |
|||
public string? CreatedAt { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
[JsonProperty("updated_at")] |
|||
public string? UpdatedAt { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,95 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// MAC配置实体类
|
|||
/// </summary>
|
|||
public class MacConfig |
|||
{ |
|||
/// <summary>
|
|||
/// 上行最大HARQ传输次数
|
|||
/// </summary>
|
|||
[JsonProperty("ul_max_harq_tx")] |
|||
public int? UlMaxHarqTx { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 下行最大HARQ传输次数
|
|||
/// </summary>
|
|||
[JsonProperty("dl_max_harq_tx")] |
|||
public int? DlMaxHarqTx { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 上行最大连续重传次数
|
|||
/// </summary>
|
|||
[JsonProperty("ul_max_consecutive_retx")] |
|||
public int? UlMaxConsecutiveRetx { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 下行最大连续重传次数
|
|||
/// </summary>
|
|||
[JsonProperty("dl_max_consecutive_retx")] |
|||
public int? DlMaxConsecutiveRetx { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 时间对齐传输定时器
|
|||
/// </summary>
|
|||
[JsonProperty("time_alignment_tx_timer")] |
|||
public int? TimeAlignmentTxTimer { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 专用时间对齐定时器
|
|||
/// </summary>
|
|||
[JsonProperty("time_alignment_timer_dedicated")] |
|||
public int? TimeAlignmentTimerDedicated { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 周期性BSR定时器
|
|||
/// </summary>
|
|||
[JsonProperty("periodic_bsr_timer")] |
|||
public int? PeriodicBsrTimer { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 重传BSR定时器
|
|||
/// </summary>
|
|||
[JsonProperty("retx_bsr_timer")] |
|||
public int? RetxBsrTimer { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 周期性PHR定时器
|
|||
/// </summary>
|
|||
[JsonProperty("periodic_phr_timer")] |
|||
public int? PeriodicPhrTimer { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 禁止PHR定时器
|
|||
/// </summary>
|
|||
[JsonProperty("prohibit_phr_timer")] |
|||
public int? ProhibitPhrTimer { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 下行路径损耗变化
|
|||
/// </summary>
|
|||
[JsonProperty("dl_path_loss_change")] |
|||
public string? DlPathLossChange { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 数据非活动定时器
|
|||
/// </summary>
|
|||
[JsonProperty("data_inactivity_timer")] |
|||
public int? DataInactivityTimer { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// SR禁止定时器
|
|||
/// </summary>
|
|||
[JsonProperty("sr_prohibit_timer")] |
|||
public int? SrProhibitTimer { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 逻辑信道SR禁止定时器
|
|||
/// </summary>
|
|||
[JsonProperty("logical_channel_sr_prohibit_timer")] |
|||
public int? LogicalChannelSrProhibitTimer { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,71 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 邻区配置实体类
|
|||
/// </summary>
|
|||
public class NcellConfig |
|||
{ |
|||
/// <summary>
|
|||
/// 无线接入技术
|
|||
/// </summary>
|
|||
[JsonProperty("rat")] |
|||
public string? Rat { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 物理小区ID
|
|||
/// </summary>
|
|||
[JsonProperty("n_id_cell")] |
|||
public int? NIdCell { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 下行EARFCN
|
|||
/// </summary>
|
|||
[JsonProperty("dl_earfcn")] |
|||
public int? DlEarfcn { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// PLMN标识
|
|||
/// </summary>
|
|||
[JsonProperty("plmn")] |
|||
public string? Plmn { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 小区ID
|
|||
/// </summary>
|
|||
[JsonProperty("cell_id")] |
|||
public int? CellId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 跟踪区域码
|
|||
/// </summary>
|
|||
[JsonProperty("tac")] |
|||
public int? Tac { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 允许测量带宽
|
|||
/// </summary>
|
|||
[JsonProperty("allowed_meas_bandwidth")] |
|||
public int? AllowedMeasBandwidth { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 天线端口1
|
|||
/// </summary>
|
|||
[JsonProperty("antenna_port_1")] |
|||
public bool? AntennaPort1 { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 邻区小区配置
|
|||
/// </summary>
|
|||
[JsonProperty("neigh_cell_config")] |
|||
public int? NeighCellConfig { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// EPS回退目标
|
|||
/// </summary>
|
|||
[JsonProperty("eps_fallback_target")] |
|||
public bool? EpsFallbackTarget { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,23 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// PDSCH专用配置实体类
|
|||
/// </summary>
|
|||
public class PdschDedicatedConfig |
|||
{ |
|||
/// <summary>
|
|||
/// P_A参数
|
|||
/// </summary>
|
|||
[JsonProperty("p_a")] |
|||
public double? PA { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// P_B参数
|
|||
/// </summary>
|
|||
[JsonProperty("p_b")] |
|||
public double? PB { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,35 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// PLMN配置实体类
|
|||
/// </summary>
|
|||
public class PlmnConfig |
|||
{ |
|||
/// <summary>
|
|||
/// PLMN标识
|
|||
/// </summary>
|
|||
[JsonProperty("plmn")] |
|||
public string? Plmn { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 保留标志
|
|||
/// </summary>
|
|||
[JsonProperty("reserved")] |
|||
public bool? Reserved { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// CP CIoT选项
|
|||
/// </summary>
|
|||
[JsonProperty("cp_ciot_opt")] |
|||
public bool? CpCiotOpt { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 无PDN附着
|
|||
/// </summary>
|
|||
[JsonProperty("attach_without_pdn")] |
|||
public bool? AttachWithoutPdn { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,41 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// PUCCH专用配置实体类
|
|||
/// </summary>
|
|||
public class PucchDedicatedConfig |
|||
{ |
|||
/// <summary>
|
|||
/// CQI PUCCH RB数量
|
|||
/// </summary>
|
|||
[JsonProperty("cqi_pucch_n_rb")] |
|||
public int? CqiPucchNRb { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// N1 PUCCH SR计数
|
|||
/// </summary>
|
|||
[JsonProperty("n1_pucch_sr_count")] |
|||
public int? N1PucchSrCount { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// ACK/NACK反馈模式CA
|
|||
/// </summary>
|
|||
[JsonProperty("ack_nack_feedback_mode_ca")] |
|||
public string? AckNackFeedbackModeCa { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// N1 PUCCH AN CS计数
|
|||
/// </summary>
|
|||
[JsonProperty("n1_pucch_an_cs_count")] |
|||
public int? N1PucchAnCsCount { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// N3 PUCCH AN RB数量
|
|||
/// </summary>
|
|||
[JsonProperty("n3_pucch_an_n_rb")] |
|||
public int? N3PucchAnNRb { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,29 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// PUSCH专用配置实体类
|
|||
/// </summary>
|
|||
public class PuschDedicatedConfig |
|||
{ |
|||
/// <summary>
|
|||
/// Beta偏移ACK索引
|
|||
/// </summary>
|
|||
[JsonProperty("beta_offset_ack_index")] |
|||
public int? BetaOffsetAckIndex { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// Beta偏移RI索引
|
|||
/// </summary>
|
|||
[JsonProperty("beta_offset_ri_index")] |
|||
public int? BetaOffsetRiIndex { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// Beta偏移CQI索引
|
|||
/// </summary>
|
|||
[JsonProperty("beta_offset_cqi_index")] |
|||
public int? BetaOffsetCqiIndex { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,130 @@ |
|||
# LTE小区配置实体类说明 |
|||
|
|||
## 概述 |
|||
本目录包含4G LTE小区配置相关的实体类,用于管理和处理LTE小区参数配置。 |
|||
|
|||
## 文件结构 |
|||
|
|||
### 主要实体类 |
|||
- `LteCellConfiguration.cs` - 主要的LTE小区配置实体类,包含所有小区参数 |
|||
- `LteCellConfigurationCollection.cs` - LTE小区配置集合类,用于管理多个小区配置 |
|||
|
|||
### 子配置实体类 |
|||
- `PlmnConfig.cs` - PLMN配置 |
|||
- `SibSchedConfig.cs` - SIB调度配置 |
|||
- `PdschDedicatedConfig.cs` - PDSCH专用配置 |
|||
- `PucchDedicatedConfig.cs` - PUCCH专用配置 |
|||
- `PuschDedicatedConfig.cs` - PUSCH专用配置 |
|||
- `SrsDedicatedConfig.cs` - SRS专用配置 |
|||
- `MacConfig.cs` - MAC层配置 |
|||
- `SrbConfig.cs` - SRB配置 |
|||
- `ScellConfig.cs` - 辅小区配置 |
|||
- `NcellConfig.cs` - 邻区配置 |
|||
|
|||
## 使用示例 |
|||
|
|||
### 创建小区配置 |
|||
```csharp |
|||
var cellConfig = new LteCellConfiguration |
|||
{ |
|||
CellId = 3, |
|||
NIdCell = 0, |
|||
Tac = 1, |
|||
PlmnList = new List<PlmnConfig> |
|||
{ |
|||
new PlmnConfig |
|||
{ |
|||
Plmn = "46011", |
|||
Reserved = false, |
|||
CpCiotOpt = false, |
|||
AttachWithoutPdn = false |
|||
} |
|||
}, |
|||
// ... 其他配置参数 |
|||
}; |
|||
``` |
|||
|
|||
### 序列化为JSON |
|||
```csharp |
|||
var json = JsonConvert.SerializeObject(cellConfig, Formatting.Indented); |
|||
``` |
|||
|
|||
### 反序列化JSON |
|||
```csharp |
|||
var config = JsonConvert.DeserializeObject<LteCellConfiguration>(json); |
|||
``` |
|||
|
|||
## 配置参数说明 |
|||
|
|||
### 基本信息 |
|||
- `CellId`: 小区ID |
|||
- `NIdCell`: 物理小区ID |
|||
- `Tac`: 跟踪区域码 |
|||
- `PlmnList`: PLMN列表 |
|||
|
|||
### 无线参数 |
|||
- `NRbDl`: 下行资源块数量 |
|||
- `DlEarfcn`: 下行EARFCN |
|||
- `UlEarfcn`: 上行EARFCN |
|||
- `NAntennaDl`: 下行天线数量 |
|||
- `NAntennaUl`: 上行天线数量 |
|||
|
|||
### 功率配置 |
|||
- `PowerPSync`: P-SCH功率 |
|||
- `PowerSSync`: S-SCH功率 |
|||
- `PowerPbch`: PBCH功率 |
|||
- `PowerPdcch`: PDCCH功率 |
|||
|
|||
### 专用配置 |
|||
- `PdschDedicated`: PDSCH专用配置 |
|||
- `PucchDedicated`: PUCCH专用配置 |
|||
- `PuschDedicated`: PUSCH专用配置 |
|||
- `SrsDedicated`: SRS专用配置 |
|||
|
|||
### 高级功能 |
|||
- `MacConfig`: MAC层配置 |
|||
- `SrbConfig`: SRB配置列表 |
|||
- `ScellList`: 辅小区列表 |
|||
- `NcellList`: 邻区列表 |
|||
|
|||
## 注意事项 |
|||
1. 所有实体类都使用了Newtonsoft.Json的JsonProperty特性,确保与JSON格式兼容 |
|||
2. 集合类型的属性都初始化为空列表,避免空引用异常 |
|||
3. 所有数值类型、布尔类型和字符串类型都使用可空类型,避免默认值导致的判断错误 |
|||
4. null值表示该参数未配置,便于区分默认值和未配置状态 |
|||
5. 配置参数的范围和有效性需要在业务逻辑中进行验证 |
|||
6. 使用可空类型时,在访问属性前需要检查是否为null |
|||
|
|||
## 可空类型使用示例 |
|||
|
|||
### 安全访问属性 |
|||
```csharp |
|||
// 检查属性是否为null |
|||
if (cellConfig.CellId.HasValue) |
|||
{ |
|||
Console.WriteLine($"小区ID: {cellConfig.CellId.Value}"); |
|||
} |
|||
|
|||
// 使用null合并运算符 |
|||
int cellId = cellConfig.CellId ?? 0; |
|||
bool isEnabled = cellConfig.CellBarred ?? false; |
|||
string prefix = cellConfig.CyclicPrefix ?? "normal"; |
|||
``` |
|||
|
|||
### 条件判断 |
|||
```csharp |
|||
// 检查布尔属性 |
|||
if (cellConfig.CellBarred == true) |
|||
{ |
|||
Console.WriteLine("小区被禁止"); |
|||
} |
|||
else if (cellConfig.CellBarred == false) |
|||
{ |
|||
Console.WriteLine("小区未被禁止"); |
|||
} |
|||
else |
|||
{ |
|||
Console.WriteLine("小区禁止状态未配置"); |
|||
} |
|||
``` |
|||
|
|||
@ -0,0 +1,35 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 辅小区配置实体类
|
|||
/// </summary>
|
|||
public class ScellConfig |
|||
{ |
|||
/// <summary>
|
|||
/// 小区ID
|
|||
/// </summary>
|
|||
[JsonProperty("cell_id")] |
|||
public int? CellId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 跨载波调度
|
|||
/// </summary>
|
|||
[JsonProperty("cross_carrier_scheduling")] |
|||
public bool? CrossCarrierScheduling { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 调度小区ID
|
|||
/// </summary>
|
|||
[JsonProperty("scheduling_cell_id")] |
|||
public int? SchedulingCellId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 上行允许
|
|||
/// </summary>
|
|||
[JsonProperty("ul_allowed")] |
|||
public bool? UlAllowed { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,23 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// SIB调度配置实体类
|
|||
/// </summary>
|
|||
public class SibSchedConfig |
|||
{ |
|||
/// <summary>
|
|||
/// 配置文件路径
|
|||
/// </summary>
|
|||
[JsonProperty("filename")] |
|||
public string? Filename { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// SI周期性
|
|||
/// </summary>
|
|||
[JsonProperty("si_periodicity")] |
|||
public int? SiPeriodicity { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,35 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// SRB配置实体类
|
|||
/// </summary>
|
|||
public class SrbConfig |
|||
{ |
|||
/// <summary>
|
|||
/// SRB ID
|
|||
/// </summary>
|
|||
[JsonProperty("id")] |
|||
public int? Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 最大重传阈值
|
|||
/// </summary>
|
|||
[JsonProperty("maxRetxThreshold")] |
|||
public int? MaxRetxThreshold { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 重排序定时器
|
|||
/// </summary>
|
|||
[JsonProperty("t_Reordering")] |
|||
public int? TReordering { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 轮询重传定时器
|
|||
/// </summary>
|
|||
[JsonProperty("t_PollRetransmit")] |
|||
public int? TPollRetransmit { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,41 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.LteCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// SRS专用配置实体类
|
|||
/// </summary>
|
|||
public class SrsDedicatedConfig |
|||
{ |
|||
/// <summary>
|
|||
/// SRS带宽配置
|
|||
/// </summary>
|
|||
[JsonProperty("srs_bandwidth_config")] |
|||
public int? SrsBandwidthConfig { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// SRS子帧配置
|
|||
/// </summary>
|
|||
[JsonProperty("srs_subframe_config")] |
|||
public int? SrsSubframeConfig { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// SRS周期
|
|||
/// </summary>
|
|||
[JsonProperty("srs_period")] |
|||
public int? SrsPeriod { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// SRS带宽
|
|||
/// </summary>
|
|||
[JsonProperty("srs_bandwidth")] |
|||
public int? SrsBandwidth { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// SRS跳频带宽
|
|||
/// </summary>
|
|||
[JsonProperty("srs_hopping_bandwidth")] |
|||
public int? SrsHoppingBandwidth { get; set; } |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,257 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR CSI-RS配置
|
|||
/// </summary>
|
|||
public class CsiRsConfig |
|||
{ |
|||
[JsonProperty("nzp_csi_rs_resource")] |
|||
public List<NzpCsiRsResource>? NzpCsiRsResource { get; set; } |
|||
|
|||
[JsonProperty("nzp_csi_rs_resource_set")] |
|||
public List<NzpCsiRsResourceSet>? NzpCsiRsResourceSet { get; set; } |
|||
|
|||
[JsonProperty("csi_im_resource")] |
|||
public List<CsiImResource>? CsiImResource { get; set; } |
|||
|
|||
[JsonProperty("csi_im_resource_set")] |
|||
public List<CsiImResourceSet>? CsiImResourceSet { get; set; } |
|||
|
|||
[JsonProperty("zp_csi_rs_resource")] |
|||
public List<ZpCsiRsResource>? ZpCsiRsResource { get; set; } |
|||
|
|||
[JsonProperty("p_zp_csi_rs_resource_set")] |
|||
public List<PZpCsiRsResourceSet>? PZpCsiRsResourceSet { get; set; } |
|||
|
|||
[JsonProperty("csi_resource_config")] |
|||
public List<CsiResourceConfig>? CsiResourceConfig { get; set; } |
|||
|
|||
[JsonProperty("csi_report_config")] |
|||
public List<CsiReportConfig>? CsiReportConfig { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// NZP CSI-RS资源
|
|||
/// </summary>
|
|||
public class NzpCsiRsResource |
|||
{ |
|||
[JsonProperty("csi_rs_id")] |
|||
public int? CsiRsId { get; set; } |
|||
|
|||
[JsonProperty("n_ports")] |
|||
public int? NPorts { get; set; } |
|||
|
|||
[JsonProperty("frequency_domain_allocation")] |
|||
public string? FrequencyDomainAllocation { get; set; } |
|||
|
|||
[JsonProperty("bitmap")] |
|||
public string? Bitmap { get; set; } |
|||
|
|||
[JsonProperty("cdm_type")] |
|||
public string? CdmType { get; set; } |
|||
|
|||
[JsonProperty("density")] |
|||
public double? Density { get; set; } |
|||
|
|||
[JsonProperty("first_symb")] |
|||
public int? FirstSymb { get; set; } |
|||
|
|||
[JsonProperty("rb_start")] |
|||
public int? RbStart { get; set; } |
|||
|
|||
[JsonProperty("l_crb")] |
|||
public int? LCrb { get; set; } |
|||
|
|||
[JsonProperty("power_control_offset")] |
|||
public int? PowerControlOffset { get; set; } |
|||
|
|||
[JsonProperty("power_control_offset_ss")] |
|||
public int? PowerControlOffsetSs { get; set; } |
|||
|
|||
[JsonProperty("scrambling_id")] |
|||
public int? ScramblingId { get; set; } |
|||
|
|||
[JsonProperty("period")] |
|||
public int? Period { get; set; } |
|||
|
|||
[JsonProperty("offset")] |
|||
public int? Offset { get; set; } |
|||
|
|||
[JsonProperty("qcl_info_periodic_csi_rs")] |
|||
public int? QclInfoPeriodicCsiRs { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// NZP CSI-RS资源集
|
|||
/// </summary>
|
|||
public class NzpCsiRsResourceSet |
|||
{ |
|||
[JsonProperty("csi_rs_set_id")] |
|||
public int? CsiRsSetId { get; set; } |
|||
|
|||
[JsonProperty("nzp_csi_rs_resources")] |
|||
public List<int>? NzpCsiRsResources { get; set; } |
|||
|
|||
[JsonProperty("repetition")] |
|||
public bool? Repetition { get; set; } |
|||
|
|||
[JsonProperty("trs_info")] |
|||
public bool? TrsInfo { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CSI-IM资源
|
|||
/// </summary>
|
|||
public class CsiImResource |
|||
{ |
|||
[JsonProperty("csi_im_id")] |
|||
public int? CsiImId { get; set; } |
|||
|
|||
[JsonProperty("pattern")] |
|||
public int? Pattern { get; set; } |
|||
|
|||
[JsonProperty("subcarrier_location")] |
|||
public int? SubcarrierLocation { get; set; } |
|||
|
|||
[JsonProperty("symbol_location")] |
|||
public int? SymbolLocation { get; set; } |
|||
|
|||
[JsonProperty("rb_start")] |
|||
public int? RbStart { get; set; } |
|||
|
|||
[JsonProperty("l_crb")] |
|||
public int? LCrb { get; set; } |
|||
|
|||
[JsonProperty("period")] |
|||
public int? Period { get; set; } |
|||
|
|||
[JsonProperty("offset")] |
|||
public int? Offset { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CSI-IM资源集
|
|||
/// </summary>
|
|||
public class CsiImResourceSet |
|||
{ |
|||
[JsonProperty("csi_im_set_id")] |
|||
public int? CsiImSetId { get; set; } |
|||
|
|||
[JsonProperty("csi_im_resources")] |
|||
public List<int>? CsiImResources { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// ZP CSI-RS资源
|
|||
/// </summary>
|
|||
public class ZpCsiRsResource |
|||
{ |
|||
[JsonProperty("csi_rs_id")] |
|||
public int? CsiRsId { get; set; } |
|||
|
|||
[JsonProperty("frequency_domain_allocation")] |
|||
public string? FrequencyDomainAllocation { get; set; } |
|||
|
|||
[JsonProperty("bitmap")] |
|||
public string? Bitmap { get; set; } |
|||
|
|||
[JsonProperty("n_ports")] |
|||
public int? NPorts { get; set; } |
|||
|
|||
[JsonProperty("cdm_type")] |
|||
public string? CdmType { get; set; } |
|||
|
|||
[JsonProperty("density")] |
|||
public double? Density { get; set; } |
|||
|
|||
[JsonProperty("first_symb")] |
|||
public int? FirstSymb { get; set; } |
|||
|
|||
[JsonProperty("rb_start")] |
|||
public int? RbStart { get; set; } |
|||
|
|||
[JsonProperty("l_crb")] |
|||
public int? LCrb { get; set; } |
|||
|
|||
[JsonProperty("period")] |
|||
public int? Period { get; set; } |
|||
|
|||
[JsonProperty("offset")] |
|||
public int? Offset { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// P-ZP CSI-RS资源集
|
|||
/// </summary>
|
|||
public class PZpCsiRsResourceSet |
|||
{ |
|||
[JsonProperty("zp_csi_rs_resources")] |
|||
public List<int>? ZpCsiRsResources { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CSI资源配置
|
|||
/// </summary>
|
|||
public class CsiResourceConfig |
|||
{ |
|||
[JsonProperty("csi_rsc_config_id")] |
|||
public int? CsiRscConfigId { get; set; } |
|||
|
|||
[JsonProperty("nzp_csi_rs_resource_set_list")] |
|||
public List<int>? NzpCsiRsResourceSetList { get; set; } |
|||
|
|||
[JsonProperty("csi_im_resource_set_list")] |
|||
public List<int>? CsiImResourceSetList { get; set; } |
|||
|
|||
[JsonProperty("resource_type")] |
|||
public string? ResourceType { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CSI报告配置
|
|||
/// </summary>
|
|||
public class CsiReportConfig |
|||
{ |
|||
[JsonProperty("resources_for_channel_measurement")] |
|||
public int? ResourcesForChannelMeasurement { get; set; } |
|||
|
|||
[JsonProperty("csi_im_resources_for_interference")] |
|||
public int? CsiImResourcesForInterference { get; set; } |
|||
|
|||
[JsonProperty("report_config_type")] |
|||
public string? ReportConfigType { get; set; } |
|||
|
|||
[JsonProperty("period")] |
|||
public int? Period { get; set; } |
|||
|
|||
[JsonProperty("report_quantity")] |
|||
public string? ReportQuantity { get; set; } |
|||
|
|||
[JsonProperty("codebook_config")] |
|||
public CodebookConfig? CodebookConfig { get; set; } |
|||
|
|||
[JsonProperty("cqi_table")] |
|||
public int? CqiTable { get; set; } |
|||
|
|||
[JsonProperty("subband_size")] |
|||
public string? SubbandSize { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 码本配置
|
|||
/// </summary>
|
|||
public class CodebookConfig |
|||
{ |
|||
[JsonProperty("codebook_type")] |
|||
public string? CodebookType { get; set; } |
|||
|
|||
[JsonProperty("sub_type")] |
|||
public string? SubType { get; set; } |
|||
|
|||
[JsonProperty("codebook_mode")] |
|||
public int? CodebookMode { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR MAC配置
|
|||
/// </summary>
|
|||
public class MacConfig |
|||
{ |
|||
[JsonProperty("msg3_max_harq_tx")] |
|||
public int? Msg3MaxHarqTx { get; set; } |
|||
|
|||
[JsonProperty("ul_max_harq_tx")] |
|||
public int? UlMaxHarqTx { get; set; } |
|||
|
|||
[JsonProperty("dl_max_harq_tx")] |
|||
public int? DlMaxHarqTx { get; set; } |
|||
|
|||
[JsonProperty("ul_max_consecutive_retx")] |
|||
public int? UlMaxConsecutiveRetx { get; set; } |
|||
|
|||
[JsonProperty("dl_max_consecutive_retx")] |
|||
public int? DlMaxConsecutiveRetx { get; set; } |
|||
|
|||
[JsonProperty("periodic_bsr_timer")] |
|||
public int? PeriodicBsrTimer { get; set; } |
|||
|
|||
[JsonProperty("retx_bsr_timer")] |
|||
public int? RetxBsrTimer { get; set; } |
|||
|
|||
[JsonProperty("periodic_phr_timer")] |
|||
public int? PeriodicPhrTimer { get; set; } |
|||
|
|||
[JsonProperty("prohibit_phr_timer")] |
|||
public int? ProhibitPhrTimer { get; set; } |
|||
|
|||
[JsonProperty("phr_tx_power_factor_change")] |
|||
public string? PhrTxPowerFactorChange { get; set; } |
|||
|
|||
[JsonProperty("sr_prohibit_timer")] |
|||
public int? SrProhibitTimer { get; set; } |
|||
|
|||
[JsonProperty("sr_trans_max")] |
|||
public int? SrTransMax { get; set; } |
|||
|
|||
[JsonProperty("time_alignment_tx_timer")] |
|||
public int? TimeAlignmentTxTimer { get; set; } |
|||
|
|||
[JsonProperty("time_alignment_timer_dedicated")] |
|||
public int? TimeAlignmentTimerDedicated { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,212 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR小区配置主实体类
|
|||
/// </summary>
|
|||
public class NrCellConfiguration |
|||
{ |
|||
[JsonProperty("plmn_list")] |
|||
public List<PlmnConfig>? PlmnList { get; set; } |
|||
|
|||
[JsonProperty("cell_id")] |
|||
public int? CellId { get; set; } |
|||
|
|||
[JsonProperty("n_id_cell")] |
|||
public int? NIdCell { get; set; } |
|||
|
|||
[JsonProperty("ims_emergency_support")] |
|||
public bool? ImsEmergencySupport { get; set; } |
|||
|
|||
[JsonProperty("ignore_ue_as_release")] |
|||
public bool? IgnoreUeAsRelease { get; set; } |
|||
|
|||
[JsonProperty("compute_ber")] |
|||
public bool? ComputeBer { get; set; } |
|||
|
|||
[JsonProperty("ue_count_max")] |
|||
public int? UeCountMax { get; set; } |
|||
|
|||
[JsonProperty("cell_barred")] |
|||
public bool? CellBarred { get; set; } |
|||
|
|||
[JsonProperty("intra_freq_reselection")] |
|||
public bool? IntraFreqReselection { get; set; } |
|||
|
|||
[JsonProperty("q_rx_lev_min")] |
|||
public int? QRxLevMin { get; set; } |
|||
|
|||
[JsonProperty("delta_rx_lev_min")] |
|||
public int? DeltaRxLevMin { get; set; } |
|||
|
|||
[JsonProperty("root_sequence_index")] |
|||
public int? RootSequenceIndex { get; set; } |
|||
|
|||
[JsonProperty("q_qual_min")] |
|||
public int? QQualMin { get; set; } |
|||
|
|||
[JsonProperty("si_window_length")] |
|||
public int? SiWindowLength { get; set; } |
|||
|
|||
[JsonProperty("pws_max_segment_len")] |
|||
public int? PwsMaxSegmentLen { get; set; } |
|||
|
|||
[JsonProperty("pws_si_periodicity")] |
|||
public int? PwsSiPeriodicity { get; set; } |
|||
|
|||
[JsonProperty("paging")] |
|||
public PagingConfig? Paging { get; set; } |
|||
|
|||
[JsonProperty("subcarrier_spacing")] |
|||
public int? SubcarrierSpacing { get; set; } |
|||
|
|||
[JsonProperty("cipher_algo_pref")] |
|||
public List<int>? CipherAlgoPref { get; set; } |
|||
|
|||
[JsonProperty("integ_algo_pref")] |
|||
public List<int>? IntegAlgoPref { get; set; } |
|||
|
|||
[JsonProperty("gbr_ul_ratio")] |
|||
public double? GbrUlRatio { get; set; } |
|||
|
|||
[JsonProperty("gbr_dl_ratio")] |
|||
public double? GbrDlRatio { get; set; } |
|||
|
|||
[JsonProperty("ignore_gbr_congestion")] |
|||
public bool? IgnoreGbrCongestion { get; set; } |
|||
|
|||
[JsonProperty("srb3_support")] |
|||
public bool? Srb3Support { get; set; } |
|||
|
|||
[JsonProperty("srb_config")] |
|||
public List<SrbConfig>? SrbConfig { get; set; } |
|||
|
|||
[JsonProperty("cell_gain")] |
|||
public double? CellGain { get; set; } |
|||
|
|||
[JsonProperty("band")] |
|||
public int? Band { get; set; } |
|||
|
|||
[JsonProperty("dl_nr_arfcn")] |
|||
public int? DlNrArfcn { get; set; } |
|||
|
|||
[JsonProperty("n_antenna_dl")] |
|||
public int? NAntennaDl { get; set; } |
|||
|
|||
[JsonProperty("n_antenna_ul")] |
|||
public int? NAntennaUl { get; set; } |
|||
|
|||
[JsonProperty("bandwidth")] |
|||
public int? Bandwidth { get; set; } |
|||
|
|||
[JsonProperty("ul_frequency_shift_7p5_khz")] |
|||
public bool? UlFrequencyShift7p5Khz { get; set; } |
|||
|
|||
[JsonProperty("pdsch_harq_ack_max")] |
|||
public int? PdschHarqAckMax { get; set; } |
|||
|
|||
[JsonProperty("dmrs_type_a_pos")] |
|||
public int? DmrsTypeAPos { get; set; } |
|||
|
|||
[JsonProperty("p_max")] |
|||
public double? PMax { get; set; } |
|||
|
|||
[JsonProperty("rx_epre_in_dbfs")] |
|||
public bool? RxEpreInDbfs { get; set; } |
|||
|
|||
[JsonProperty("rx_epre_offset")] |
|||
public double? RxEpreOffset { get; set; } |
|||
|
|||
[JsonProperty("rach_ignore_count")] |
|||
public int? RachIgnoreCount { get; set; } |
|||
|
|||
[JsonProperty("rar_backoff_index")] |
|||
public int? RarBackoffIndex { get; set; } |
|||
|
|||
[JsonProperty("dummy_ue_contention_resolution_id")] |
|||
public bool? DummyUeContentionResolutionId { get; set; } |
|||
|
|||
[JsonProperty("alternate_retx_scheme")] |
|||
public bool? AlternateRetxScheme { get; set; } |
|||
|
|||
[JsonProperty("tdd_ul_dl_config")] |
|||
public TddUlDlConfig? TddUlDlConfig { get; set; } |
|||
|
|||
[JsonProperty("n_timing_advance_offset")] |
|||
public int? NTimingAdvanceOffset { get; set; } |
|||
|
|||
[JsonProperty("rf_port")] |
|||
public int? RfPort { get; set; } |
|||
|
|||
[JsonProperty("gscn")] |
|||
public int? Gscn { get; set; } |
|||
|
|||
[JsonProperty("ssb_period")] |
|||
public int? SsbPeriod { get; set; } |
|||
|
|||
[JsonProperty("ssb_pos_bitmap")] |
|||
public string? SsbPosBitmap { get; set; } |
|||
|
|||
[JsonProperty("ss_pbch_block_power")] |
|||
public int? SsPbchBlockPower { get; set; } |
|||
|
|||
[JsonProperty("manual_ref_signal_power")] |
|||
public bool? ManualRefSignalPower { get; set; } |
|||
|
|||
[JsonProperty("ssb_subcarrier_spacing")] |
|||
public int? SsbSubcarrierSpacing { get; set; } |
|||
|
|||
[JsonProperty("csi_rs")] |
|||
public CsiRsConfig? CsiRs { get; set; } |
|||
|
|||
[JsonProperty("prach")] |
|||
public PrachConfig? Prach { get; set; } |
|||
|
|||
[JsonProperty("pdcch")] |
|||
public PdcchConfig? Pdcch { get; set; } |
|||
|
|||
[JsonProperty("pdsch")] |
|||
public PdschConfig? Pdsch { get; set; } |
|||
|
|||
[JsonProperty("pucch")] |
|||
public PucchConfig? Pucch { get; set; } |
|||
|
|||
[JsonProperty("pusch")] |
|||
public PuschConfig? Pusch { get; set; } |
|||
|
|||
[JsonProperty("sr_period")] |
|||
public int? SrPeriod { get; set; } |
|||
|
|||
[JsonProperty("force_dl_schedule")] |
|||
public bool? ForceDlSchedule { get; set; } |
|||
|
|||
[JsonProperty("force_full_bsr")] |
|||
public bool? ForceFullBsr { get; set; } |
|||
|
|||
[JsonProperty("mac_config")] |
|||
public MacConfig? MacConfig { get; set; } |
|||
|
|||
[JsonProperty("inactivity_timer")] |
|||
public int? InactivityTimer { get; set; } |
|||
|
|||
[JsonProperty("eps_fallback_preferred_method")] |
|||
public string? EpsFallbackPreferredMethod { get; set; } |
|||
|
|||
[JsonProperty("ho_from_meas")] |
|||
public bool? HoFromMeas { get; set; } |
|||
|
|||
[JsonProperty("ho_cfra")] |
|||
public bool? HoCfra { get; set; } |
|||
|
|||
[JsonProperty("t304")] |
|||
public int? T304 { get; set; } |
|||
|
|||
[JsonProperty("timers_and_constants")] |
|||
public TimersAndConstants? TimersAndConstants { get; set; } |
|||
|
|||
[JsonProperty("drb_config")] |
|||
public string? DrbConfig { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR小区配置集合
|
|||
/// </summary>
|
|||
public class NrCellConfigurationCollection |
|||
{ |
|||
[JsonProperty("nr_cells")] |
|||
public List<NrCellConfiguration> NrCells { get; set; } = new List<NrCellConfiguration>(); |
|||
|
|||
[JsonProperty("total_count")] |
|||
public int TotalCount => NrCells.Count; |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR分页配置
|
|||
/// </summary>
|
|||
public class PagingConfig |
|||
{ |
|||
[JsonProperty("cycle")] |
|||
public int? Cycle { get; set; } |
|||
|
|||
[JsonProperty("n_frac")] |
|||
public int? NFrac { get; set; } |
|||
|
|||
[JsonProperty("ns")] |
|||
public int? Ns { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,101 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR PDCCH配置
|
|||
/// </summary>
|
|||
public class PdcchConfig |
|||
{ |
|||
[JsonProperty("css")] |
|||
public CssConfig? Css { get; set; } |
|||
|
|||
[JsonProperty("dedicated_coreset")] |
|||
public DedicatedCoreset? DedicatedCoreset { get; set; } |
|||
|
|||
[JsonProperty("uss")] |
|||
public UssConfig? Uss { get; set; } |
|||
|
|||
[JsonProperty("rar_al_index")] |
|||
public int? RarAlIndex { get; set; } |
|||
|
|||
[JsonProperty("al_index")] |
|||
public int? AlIndex { get; set; } |
|||
|
|||
[JsonProperty("n_rb_coreset0")] |
|||
public int? NRbCoreset0 { get; set; } |
|||
|
|||
[JsonProperty("n_symb_coreset0")] |
|||
public int? NSymbCoreset0 { get; set; } |
|||
|
|||
[JsonProperty("search_space0_index")] |
|||
public int? SearchSpace0Index { get; set; } |
|||
|
|||
[JsonProperty("si_al_index")] |
|||
public int? SiAlIndex { get; set; } |
|||
|
|||
[JsonProperty("paging_al_index")] |
|||
public int? PagingAlIndex { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CSS配置
|
|||
/// </summary>
|
|||
public class CssConfig |
|||
{ |
|||
[JsonProperty("n_candidates")] |
|||
public List<int>? NCandidates { get; set; } |
|||
|
|||
[JsonProperty("start_symb")] |
|||
public int? StartSymb { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 专用CORESET配置
|
|||
/// </summary>
|
|||
public class DedicatedCoreset |
|||
{ |
|||
[JsonProperty("rb_start")] |
|||
public int? RbStart { get; set; } |
|||
|
|||
[JsonProperty("l_crb")] |
|||
public int? LCrb { get; set; } |
|||
|
|||
[JsonProperty("duration")] |
|||
public int? Duration { get; set; } |
|||
|
|||
[JsonProperty("interleaved")] |
|||
public bool? Interleaved { get; set; } |
|||
|
|||
[JsonProperty("shift_index")] |
|||
public int? ShiftIndex { get; set; } |
|||
|
|||
[JsonProperty("precoder_granularity")] |
|||
public string? PrecoderGranularity { get; set; } |
|||
|
|||
[JsonProperty("dmrs_scid")] |
|||
public int? DmrsScid { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// USS配置
|
|||
/// </summary>
|
|||
public class UssConfig |
|||
{ |
|||
[JsonProperty("n_candidates")] |
|||
public List<int>? NCandidates { get; set; } |
|||
|
|||
[JsonProperty("start_symb")] |
|||
public int? StartSymb { get; set; } |
|||
|
|||
[JsonProperty("dci_0_1_and_1_1")] |
|||
public bool? Dci01And11 { get; set; } |
|||
|
|||
[JsonProperty("force_dci_0_0")] |
|||
public bool? ForceDci00 { get; set; } |
|||
|
|||
[JsonProperty("force_dci_1_0")] |
|||
public bool? ForceDci10 { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,95 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR PDSCH配置
|
|||
/// </summary>
|
|||
public class PdschConfig |
|||
{ |
|||
[JsonProperty("mapping_type")] |
|||
public string? MappingType { get; set; } |
|||
|
|||
[JsonProperty("start_symb")] |
|||
public int? StartSymb { get; set; } |
|||
|
|||
[JsonProperty("n_symb")] |
|||
public int? NSymb { get; set; } |
|||
|
|||
[JsonProperty("dmrs_add_pos")] |
|||
public int? DmrsAddPos { get; set; } |
|||
|
|||
[JsonProperty("dmrs_max_len")] |
|||
public int? DmrsMaxLen { get; set; } |
|||
|
|||
[JsonProperty("dmrs_type")] |
|||
public int? DmrsType { get; set; } |
|||
|
|||
[JsonProperty("dmrs_scid0")] |
|||
public int? DmrsScid0 { get; set; } |
|||
|
|||
[JsonProperty("dmrs_scid1")] |
|||
public int? DmrsScid1 { get; set; } |
|||
|
|||
[JsonProperty("k0")] |
|||
public int? K0 { get; set; } |
|||
|
|||
[JsonProperty("k1")] |
|||
public List<int>? K1 { get; set; } |
|||
|
|||
[JsonProperty("n_harq_process")] |
|||
public int? NHarqProcess { get; set; } |
|||
|
|||
[JsonProperty("mcs_table")] |
|||
public string? McsTable { get; set; } |
|||
|
|||
[JsonProperty("n_layer")] |
|||
public int? NLayer { get; set; } |
|||
|
|||
[JsonProperty("dmrs_len")] |
|||
public int? DmrsLen { get; set; } |
|||
|
|||
[JsonProperty("fixed_rb_alloc")] |
|||
public bool? FixedRbAlloc { get; set; } |
|||
|
|||
[JsonProperty("mcs")] |
|||
public int? Mcs { get; set; } |
|||
|
|||
[JsonProperty("data_scid")] |
|||
public int? DataScid { get; set; } |
|||
|
|||
[JsonProperty("n_scid")] |
|||
public int? NScid { get; set; } |
|||
|
|||
[JsonProperty("x_overhead")] |
|||
public int? XOverhead { get; set; } |
|||
|
|||
[JsonProperty("ra_type")] |
|||
public string? RaType { get; set; } |
|||
|
|||
[JsonProperty("vrb_to_prb_interleaver")] |
|||
public int? VrbToPrbInterleaver { get; set; } |
|||
|
|||
[JsonProperty("rar_mcs")] |
|||
public int? RarMcs { get; set; } |
|||
|
|||
[JsonProperty("rar_tb_scaling")] |
|||
public int? RarTbScaling { get; set; } |
|||
|
|||
[JsonProperty("cqi_adapt_fer")] |
|||
public double? CqiAdaptFer { get; set; } |
|||
|
|||
[JsonProperty("cqi_adapt_amp")] |
|||
public int? CqiAdaptAmp { get; set; } |
|||
|
|||
[JsonProperty("initial_cqi")] |
|||
public int? InitialCqi { get; set; } |
|||
|
|||
[JsonProperty("si_mcs")] |
|||
public int? SiMcs { get; set; } |
|||
|
|||
[JsonProperty("paging_mcs")] |
|||
public int? PagingMcs { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR PLMN配置
|
|||
/// </summary>
|
|||
public class PlmnConfig |
|||
{ |
|||
[JsonProperty("plmn")] |
|||
public string? Plmn { get; set; } |
|||
|
|||
[JsonProperty("tac")] |
|||
public int? Tac { get; set; } |
|||
|
|||
[JsonProperty("reserved")] |
|||
public bool? Reserved { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR PRACH配置
|
|||
/// </summary>
|
|||
public class PrachConfig |
|||
{ |
|||
[JsonProperty("prach_config_index")] |
|||
public int? PrachConfigIndex { get; set; } |
|||
|
|||
[JsonProperty("msg1_subcarrier_spacing")] |
|||
public int? Msg1SubcarrierSpacing { get; set; } |
|||
|
|||
[JsonProperty("msg1_fdm")] |
|||
public int? Msg1Fdm { get; set; } |
|||
|
|||
[JsonProperty("msg1_frequency_start")] |
|||
public int? Msg1FrequencyStart { get; set; } |
|||
|
|||
[JsonProperty("zero_correlation_zone_config")] |
|||
public int? ZeroCorrelationZoneConfig { get; set; } |
|||
|
|||
[JsonProperty("preamble_received_target_power")] |
|||
public int? PreambleReceivedTargetPower { get; set; } |
|||
|
|||
[JsonProperty("preamble_trans_max")] |
|||
public int? PreambleTransMax { get; set; } |
|||
|
|||
[JsonProperty("power_ramping_step")] |
|||
public int? PowerRampingStep { get; set; } |
|||
|
|||
[JsonProperty("ra_response_window")] |
|||
public int? RaResponseWindow { get; set; } |
|||
|
|||
[JsonProperty("restricted_set_config")] |
|||
public string? RestrictedSetConfig { get; set; } |
|||
|
|||
[JsonProperty("ra_contention_resolution_timer")] |
|||
public int? RaContentionResolutionTimer { get; set; } |
|||
|
|||
[JsonProperty("ssb_per_prach_occasion")] |
|||
public string? SsbPerPrachOccasion { get; set; } |
|||
|
|||
[JsonProperty("cb_preambles_per_ssb")] |
|||
public int? CbPreamblesPerSsb { get; set; } |
|||
|
|||
[JsonProperty("total_number_of_ra_preambles")] |
|||
public int? TotalNumberOfRaPreambles { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,91 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR PUCCH配置
|
|||
/// </summary>
|
|||
public class PucchConfig |
|||
{ |
|||
[JsonProperty("pucch_resource_common")] |
|||
public int? PucchResourceCommon { get; set; } |
|||
|
|||
[JsonProperty("pucch_group_hopping")] |
|||
public string? PucchGroupHopping { get; set; } |
|||
|
|||
[JsonProperty("hopping_id")] |
|||
public int? HoppingId { get; set; } |
|||
|
|||
[JsonProperty("p0_nominal")] |
|||
public int? P0Nominal { get; set; } |
|||
|
|||
[JsonProperty("short_pucch_an_rsc_count")] |
|||
public int? ShortPucchAnRscCount { get; set; } |
|||
|
|||
[JsonProperty("long_pucch_an_rsc_count")] |
|||
public int? LongPucchAnRscCount { get; set; } |
|||
|
|||
[JsonProperty("pucch02_min_start_symb")] |
|||
public int? Pucch02MinStartSymb { get; set; } |
|||
|
|||
[JsonProperty("pucch1")] |
|||
public Pucch1Config? Pucch1 { get; set; } |
|||
|
|||
[JsonProperty("pucch3")] |
|||
public Pucch3Config? Pucch3 { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// PUCCH1配置
|
|||
/// </summary>
|
|||
public class Pucch1Config |
|||
{ |
|||
[JsonProperty("n_cs")] |
|||
public int? NCs { get; set; } |
|||
|
|||
[JsonProperty("n_occ")] |
|||
public int? NOcc { get; set; } |
|||
|
|||
[JsonProperty("freq_hopping")] |
|||
public bool? FreqHopping { get; set; } |
|||
|
|||
[JsonProperty("start_symb")] |
|||
public int? StartSymb { get; set; } |
|||
|
|||
[JsonProperty("n_symb")] |
|||
public int? NSymb { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// PUCCH3配置
|
|||
/// </summary>
|
|||
public class Pucch3Config |
|||
{ |
|||
[JsonProperty("bpsk")] |
|||
public bool? Bpsk { get; set; } |
|||
|
|||
[JsonProperty("additional_dmrs")] |
|||
public bool? AdditionalDmrs { get; set; } |
|||
|
|||
[JsonProperty("freq_hopping")] |
|||
public bool? FreqHopping { get; set; } |
|||
|
|||
[JsonProperty("start_symb")] |
|||
public int? StartSymb { get; set; } |
|||
|
|||
[JsonProperty("n_symb")] |
|||
public int? NSymb { get; set; } |
|||
|
|||
[JsonProperty("max_code_rate")] |
|||
public string? MaxCodeRate { get; set; } |
|||
|
|||
[JsonProperty("simultaneous_harq_ack_csi")] |
|||
public bool? SimultaneousHarqAckCsi { get; set; } |
|||
|
|||
[JsonProperty("n_prb")] |
|||
public int? NPrb { get; set; } |
|||
|
|||
[JsonProperty("n_prb_csi")] |
|||
public int? NPrbCsi { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,122 @@ |
|||
using System.Collections.Generic; |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR PUSCH配置
|
|||
/// </summary>
|
|||
public class PuschConfig |
|||
{ |
|||
[JsonProperty("mapping_type")] |
|||
public string? MappingType { get; set; } |
|||
|
|||
[JsonProperty("n_symb")] |
|||
public int? NSymb { get; set; } |
|||
|
|||
[JsonProperty("dmrs_add_pos")] |
|||
public int? DmrsAddPos { get; set; } |
|||
|
|||
[JsonProperty("dmrs_max_len")] |
|||
public int? DmrsMaxLen { get; set; } |
|||
|
|||
[JsonProperty("dmrs_type")] |
|||
public int? DmrsType { get; set; } |
|||
|
|||
[JsonProperty("dmrs_scid0")] |
|||
public int? DmrsScid0 { get; set; } |
|||
|
|||
[JsonProperty("dmrs_scid1")] |
|||
public int? DmrsScid1 { get; set; } |
|||
|
|||
[JsonProperty("tf_precoding")] |
|||
public bool? TfPrecoding { get; set; } |
|||
|
|||
[JsonProperty("msg3_tf_precoding")] |
|||
public bool? Msg3TfPrecoding { get; set; } |
|||
|
|||
[JsonProperty("n_id_rs")] |
|||
public int? NIdRs { get; set; } |
|||
|
|||
[JsonProperty("group_hopping")] |
|||
public bool? GroupHopping { get; set; } |
|||
|
|||
[JsonProperty("sequence_hopping")] |
|||
public bool? SequenceHopping { get; set; } |
|||
|
|||
[JsonProperty("mcs_table")] |
|||
public string? McsTable { get; set; } |
|||
|
|||
[JsonProperty("mcs_table_tp")] |
|||
public string? McsTableTp { get; set; } |
|||
|
|||
[JsonProperty("tp_pi2_bpsk")] |
|||
public bool? TpPi2Bpsk { get; set; } |
|||
|
|||
[JsonProperty("partial_slots")] |
|||
public bool? PartialSlots { get; set; } |
|||
|
|||
[JsonProperty("ldpc_max_its")] |
|||
public int? LdpcMaxIts { get; set; } |
|||
|
|||
[JsonProperty("fixed_rb_alloc")] |
|||
public bool? FixedRbAlloc { get; set; } |
|||
|
|||
[JsonProperty("tx_config")] |
|||
public string? TxConfig { get; set; } |
|||
|
|||
[JsonProperty("codebook_subset")] |
|||
public string? CodebookSubset { get; set; } |
|||
|
|||
[JsonProperty("max_rank")] |
|||
public int? MaxRank { get; set; } |
|||
|
|||
[JsonProperty("n_layer")] |
|||
public int? NLayer { get; set; } |
|||
|
|||
[JsonProperty("mcs")] |
|||
public int? Mcs { get; set; } |
|||
|
|||
[JsonProperty("k2")] |
|||
public List<int>? K2 { get; set; } |
|||
|
|||
[JsonProperty("msg3_k2")] |
|||
public int? Msg3K2 { get; set; } |
|||
|
|||
[JsonProperty("msg3_delta_power")] |
|||
public int? Msg3DeltaPower { get; set; } |
|||
|
|||
[JsonProperty("msg3_mcs")] |
|||
public int? Msg3Mcs { get; set; } |
|||
|
|||
[JsonProperty("msg3_alpha")] |
|||
public string? Msg3Alpha { get; set; } |
|||
|
|||
[JsonProperty("p0_nominal_with_grant")] |
|||
public int? P0NominalWithGrant { get; set; } |
|||
|
|||
[JsonProperty("alpha")] |
|||
public string? Alpha { get; set; } |
|||
|
|||
[JsonProperty("beta_offset_ack_index")] |
|||
public int? BetaOffsetAckIndex { get; set; } |
|||
|
|||
[JsonProperty("data_scid")] |
|||
public int? DataScid { get; set; } |
|||
|
|||
[JsonProperty("n_scid")] |
|||
public int? NScid { get; set; } |
|||
|
|||
[JsonProperty("x_overhead")] |
|||
public int? XOverhead { get; set; } |
|||
|
|||
[JsonProperty("cqi_adapt_amp")] |
|||
public int? CqiAdaptAmp { get; set; } |
|||
|
|||
[JsonProperty("uci_scaling")] |
|||
public double? UciScaling { get; set; } |
|||
|
|||
[JsonProperty("ul_snr_adapt_fer")] |
|||
public double? UlSnrAdaptFer { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,95 @@ |
|||
# 5G NR小区配置模型 |
|||
|
|||
本目录包含5G NR(New Radio)小区配置的实体类定义,用于处理5G网络的小区配置参数。 |
|||
|
|||
## 文件结构 |
|||
|
|||
### 主要配置类 |
|||
- `NrCellConfiguration.cs` - 5G NR小区配置主实体类 |
|||
- `NrCellConfigurationCollection.cs` - 5G NR小区配置集合类 |
|||
|
|||
### 子配置类 |
|||
- `PlmnConfig.cs` - PLMN配置 |
|||
- `PagingConfig.cs` - 分页配置 |
|||
- `SrbConfig.cs` - SRB配置 |
|||
- `TddUlDlConfig.cs` - TDD UL/DL配置 |
|||
- `CsiRsConfig.cs` - CSI-RS配置 |
|||
- `PrachConfig.cs` - PRACH配置 |
|||
- `PdcchConfig.cs` - PDCCH配置 |
|||
- `PdschConfig.cs` - PDSCH配置 |
|||
- `PucchConfig.cs` - PUCCH配置 |
|||
- `PuschConfig.cs` - PUSCH配置 |
|||
- `MacConfig.cs` - MAC配置 |
|||
- `TimersAndConstants.cs` - 定时器和常量配置 |
|||
|
|||
## 主要特性 |
|||
|
|||
### 可空类型支持 |
|||
所有属性都支持可空类型(nullable),确保在配置参数缺失时不会出现异常。 |
|||
|
|||
### JSON序列化 |
|||
使用Newtonsoft.Json进行JSON序列化和反序列化,支持标准的JSON格式。 |
|||
|
|||
### 完整的5G NR参数 |
|||
包含5G NR网络所需的所有主要配置参数: |
|||
- 小区基本参数(小区ID、频段、带宽等) |
|||
- 物理层配置(PDCCH、PDSCH、PUCCH、PUSCH等) |
|||
- 信道配置(CSI-RS、PRACH等) |
|||
- MAC层配置 |
|||
- 定时器和常量配置 |
|||
|
|||
## 使用示例 |
|||
|
|||
```csharp |
|||
// 创建5G NR小区配置 |
|||
var nrCellConfig = new NrCellConfiguration |
|||
{ |
|||
CellId = 23, |
|||
NIdCell = 1, |
|||
Band = 78, |
|||
Bandwidth = 100, |
|||
DlNrArfcn = 630000, |
|||
SubcarrierSpacing = 30, |
|||
// ... 其他配置参数 |
|||
}; |
|||
|
|||
// 序列化为JSON |
|||
string json = JsonConvert.SerializeObject(nrCellConfig, Formatting.Indented); |
|||
|
|||
// 从JSON反序列化 |
|||
var config = JsonConvert.DeserializeObject<NrCellConfiguration>(json); |
|||
``` |
|||
|
|||
## 配置参数说明 |
|||
|
|||
### 基本参数 |
|||
- `cell_id`: 小区ID |
|||
- `n_id_cell`: 小区物理层ID |
|||
- `band`: 频段号 |
|||
- `bandwidth`: 带宽(MHz) |
|||
- `dl_nr_arfcn`: 下行NR ARFCN |
|||
|
|||
### 物理层配置 |
|||
- `pdcch`: PDCCH配置 |
|||
- `pdsch`: PDSCH配置 |
|||
- `pucch`: PUCCH配置 |
|||
- `pusch`: PUSCH配置 |
|||
- `prach`: PRACH配置 |
|||
|
|||
### 信道配置 |
|||
- `csi_rs`: CSI-RS配置 |
|||
- `ssb_period`: SSB周期 |
|||
- `ssb_pos_bitmap`: SSB位置位图 |
|||
|
|||
### 其他配置 |
|||
- `mac_config`: MAC层配置 |
|||
- `timers_and_constants`: 定时器和常量 |
|||
- `srb_config`: SRB配置 |
|||
- `plmn_list`: PLMN列表 |
|||
|
|||
## 注意事项 |
|||
|
|||
1. 所有数值类型属性都支持可空类型,确保配置的灵活性 |
|||
2. 字符串类型属性也支持可空,避免空引用异常 |
|||
3. 集合类型属性在未初始化时默认为空列表 |
|||
4. 配置参数遵循3GPP 5G NR标准规范 |
|||
@ -0,0 +1,22 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR SRB配置
|
|||
/// </summary>
|
|||
public class SrbConfig |
|||
{ |
|||
[JsonProperty("id")] |
|||
public int? Id { get; set; } |
|||
|
|||
[JsonProperty("maxRetxThreshold")] |
|||
public int? MaxRetxThreshold { get; set; } |
|||
|
|||
[JsonProperty("t_PollRetransmit")] |
|||
public int? TPollRetransmit { get; set; } |
|||
|
|||
[JsonProperty("t_Reassembly")] |
|||
public int? TReassembly { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR TDD UL/DL配置
|
|||
/// </summary>
|
|||
public class TddUlDlConfig |
|||
{ |
|||
[JsonProperty("pattern1")] |
|||
public TddPattern? Pattern1 { get; set; } |
|||
|
|||
[JsonProperty("pattern2")] |
|||
public TddPattern? Pattern2 { get; set; } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// TDD模式配置
|
|||
/// </summary>
|
|||
public class TddPattern |
|||
{ |
|||
[JsonProperty("period")] |
|||
public double? Period { get; set; } |
|||
|
|||
[JsonProperty("dl_slots")] |
|||
public int? DlSlots { get; set; } |
|||
|
|||
[JsonProperty("ul_slots")] |
|||
public int? UlSlots { get; set; } |
|||
|
|||
[JsonProperty("dl_symbols")] |
|||
public int? DlSymbols { get; set; } |
|||
|
|||
[JsonProperty("ul_symbols")] |
|||
public int? UlSymbols { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace X1.Domain.Models.NrCellConfiguration |
|||
{ |
|||
/// <summary>
|
|||
/// 5G NR定时器和常量配置
|
|||
/// </summary>
|
|||
public class TimersAndConstants |
|||
{ |
|||
[JsonProperty("t300")] |
|||
public int? T300 { get; set; } |
|||
|
|||
[JsonProperty("t301")] |
|||
public int? T301 { get; set; } |
|||
|
|||
[JsonProperty("t310")] |
|||
public int? T310 { get; set; } |
|||
|
|||
[JsonProperty("n310")] |
|||
public int? N310 { get; set; } |
|||
|
|||
[JsonProperty("t311")] |
|||
public int? T311 { get; set; } |
|||
|
|||
[JsonProperty("n311")] |
|||
public int? N311 { get; set; } |
|||
|
|||
[JsonProperty("t319")] |
|||
public int? T319 { get; set; } |
|||
} |
|||
} |
|||
Loading…
Reference in new issue