diff --git a/src/X1.Domain/Models/LteCellConfiguration/LteCellConfiguration.cs b/src/X1.Domain/Models/LteCellConfiguration/LteCellConfiguration.cs
new file mode 100644
index 0000000..f69bdfc
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/LteCellConfiguration.cs
@@ -0,0 +1,308 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// 4G LTE小区配置主实体类
+ ///
+ 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 PlmnList { get; set; } = new List();
+
+ [JsonProperty("cipher_algo_pref")]
+ public List CipherAlgoPref { get; set; } = new List();
+
+ [JsonProperty("integ_algo_pref")]
+ public List IntegAlgoPref { get; set; } = new List();
+
+ [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 SibSchedList { get; set; } = new List();
+
+ [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 PdschMcs { get; set; } = new List();
+
+ [JsonProperty("pdsch_fixed_rb_alloc")]
+ public List PdschFixedRbAlloc { get; set; } = new List();
+
+ [JsonProperty("pusch_mcs")]
+ public List PuschMcs { get; set; } = new List();
+
+ [JsonProperty("pusch_fixed_rb_alloc")]
+ public List PuschFixedRbAlloc { get; set; } = new List();
+
+ [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 { get; set; } = new List();
+
+ [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 ScellList { get; set; } = new List();
+
+ [JsonProperty("scells_activation")]
+ public string? ScellsActivation { get; set; }
+
+ [JsonProperty("ncell_list")]
+ public List NcellList { get; set; } = new List();
+
+ [JsonProperty("forced_ri")]
+ public int? ForcedRi { get; set; }
+ }
+}
diff --git a/src/X1.Domain/Models/LteCellConfiguration/LteCellConfigurationCollection.cs b/src/X1.Domain/Models/LteCellConfiguration/LteCellConfigurationCollection.cs
new file mode 100644
index 0000000..95dc3d5
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/LteCellConfigurationCollection.cs
@@ -0,0 +1,42 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// LTE小区配置集合类
+ ///
+ public class LteCellConfigurationCollection
+ {
+ ///
+ /// 小区配置列表
+ ///
+ [JsonProperty("cells")]
+ public List Cells { get; set; } = new List();
+
+ ///
+ /// 配置版本
+ ///
+ [JsonProperty("version")]
+ public string? Version { get; set; }
+
+ ///
+ /// 配置描述
+ ///
+ [JsonProperty("description")]
+ public string? Description { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [JsonProperty("created_at")]
+ public string? CreatedAt { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [JsonProperty("updated_at")]
+ public string? UpdatedAt { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/MacConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/MacConfig.cs
new file mode 100644
index 0000000..ec3fb75
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/MacConfig.cs
@@ -0,0 +1,95 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// MAC配置实体类
+ ///
+ public class MacConfig
+ {
+ ///
+ /// 上行最大HARQ传输次数
+ ///
+ [JsonProperty("ul_max_harq_tx")]
+ public int? UlMaxHarqTx { get; set; }
+
+ ///
+ /// 下行最大HARQ传输次数
+ ///
+ [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("time_alignment_tx_timer")]
+ public int? TimeAlignmentTxTimer { get; set; }
+
+ ///
+ /// 专用时间对齐定时器
+ ///
+ [JsonProperty("time_alignment_timer_dedicated")]
+ public int? TimeAlignmentTimerDedicated { get; set; }
+
+ ///
+ /// 周期性BSR定时器
+ ///
+ [JsonProperty("periodic_bsr_timer")]
+ public int? PeriodicBsrTimer { get; set; }
+
+ ///
+ /// 重传BSR定时器
+ ///
+ [JsonProperty("retx_bsr_timer")]
+ public int? RetxBsrTimer { get; set; }
+
+ ///
+ /// 周期性PHR定时器
+ ///
+ [JsonProperty("periodic_phr_timer")]
+ public int? PeriodicPhrTimer { get; set; }
+
+ ///
+ /// 禁止PHR定时器
+ ///
+ [JsonProperty("prohibit_phr_timer")]
+ public int? ProhibitPhrTimer { get; set; }
+
+ ///
+ /// 下行路径损耗变化
+ ///
+ [JsonProperty("dl_path_loss_change")]
+ public string? DlPathLossChange { get; set; }
+
+ ///
+ /// 数据非活动定时器
+ ///
+ [JsonProperty("data_inactivity_timer")]
+ public int? DataInactivityTimer { get; set; }
+
+ ///
+ /// SR禁止定时器
+ ///
+ [JsonProperty("sr_prohibit_timer")]
+ public int? SrProhibitTimer { get; set; }
+
+ ///
+ /// 逻辑信道SR禁止定时器
+ ///
+ [JsonProperty("logical_channel_sr_prohibit_timer")]
+ public int? LogicalChannelSrProhibitTimer { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/NcellConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/NcellConfig.cs
new file mode 100644
index 0000000..081a926
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/NcellConfig.cs
@@ -0,0 +1,71 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// 邻区配置实体类
+ ///
+ public class NcellConfig
+ {
+ ///
+ /// 无线接入技术
+ ///
+ [JsonProperty("rat")]
+ public string? Rat { get; set; }
+
+ ///
+ /// 物理小区ID
+ ///
+ [JsonProperty("n_id_cell")]
+ public int? NIdCell { get; set; }
+
+ ///
+ /// 下行EARFCN
+ ///
+ [JsonProperty("dl_earfcn")]
+ public int? DlEarfcn { get; set; }
+
+ ///
+ /// PLMN标识
+ ///
+ [JsonProperty("plmn")]
+ public string? Plmn { get; set; }
+
+ ///
+ /// 小区ID
+ ///
+ [JsonProperty("cell_id")]
+ public int? CellId { get; set; }
+
+ ///
+ /// 跟踪区域码
+ ///
+ [JsonProperty("tac")]
+ public int? Tac { get; set; }
+
+ ///
+ /// 允许测量带宽
+ ///
+ [JsonProperty("allowed_meas_bandwidth")]
+ public int? AllowedMeasBandwidth { get; set; }
+
+ ///
+ /// 天线端口1
+ ///
+ [JsonProperty("antenna_port_1")]
+ public bool? AntennaPort1 { get; set; }
+
+ ///
+ /// 邻区小区配置
+ ///
+ [JsonProperty("neigh_cell_config")]
+ public int? NeighCellConfig { get; set; }
+
+ ///
+ /// EPS回退目标
+ ///
+ [JsonProperty("eps_fallback_target")]
+ public bool? EpsFallbackTarget { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/PdschDedicatedConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/PdschDedicatedConfig.cs
new file mode 100644
index 0000000..dfa15c3
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/PdschDedicatedConfig.cs
@@ -0,0 +1,23 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// PDSCH专用配置实体类
+ ///
+ public class PdschDedicatedConfig
+ {
+ ///
+ /// P_A参数
+ ///
+ [JsonProperty("p_a")]
+ public double? PA { get; set; }
+
+ ///
+ /// P_B参数
+ ///
+ [JsonProperty("p_b")]
+ public double? PB { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/PlmnConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/PlmnConfig.cs
new file mode 100644
index 0000000..0eb1a6d
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/PlmnConfig.cs
@@ -0,0 +1,35 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// PLMN配置实体类
+ ///
+ public class PlmnConfig
+ {
+ ///
+ /// PLMN标识
+ ///
+ [JsonProperty("plmn")]
+ public string? Plmn { get; set; }
+
+ ///
+ /// 保留标志
+ ///
+ [JsonProperty("reserved")]
+ public bool? Reserved { get; set; }
+
+ ///
+ /// CP CIoT选项
+ ///
+ [JsonProperty("cp_ciot_opt")]
+ public bool? CpCiotOpt { get; set; }
+
+ ///
+ /// 无PDN附着
+ ///
+ [JsonProperty("attach_without_pdn")]
+ public bool? AttachWithoutPdn { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/PucchDedicatedConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/PucchDedicatedConfig.cs
new file mode 100644
index 0000000..fb36810
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/PucchDedicatedConfig.cs
@@ -0,0 +1,41 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// PUCCH专用配置实体类
+ ///
+ public class PucchDedicatedConfig
+ {
+ ///
+ /// CQI PUCCH RB数量
+ ///
+ [JsonProperty("cqi_pucch_n_rb")]
+ public int? CqiPucchNRb { get; set; }
+
+ ///
+ /// N1 PUCCH SR计数
+ ///
+ [JsonProperty("n1_pucch_sr_count")]
+ public int? N1PucchSrCount { get; set; }
+
+ ///
+ /// ACK/NACK反馈模式CA
+ ///
+ [JsonProperty("ack_nack_feedback_mode_ca")]
+ public string? AckNackFeedbackModeCa { get; set; }
+
+ ///
+ /// N1 PUCCH AN CS计数
+ ///
+ [JsonProperty("n1_pucch_an_cs_count")]
+ public int? N1PucchAnCsCount { get; set; }
+
+ ///
+ /// N3 PUCCH AN RB数量
+ ///
+ [JsonProperty("n3_pucch_an_n_rb")]
+ public int? N3PucchAnNRb { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/PuschDedicatedConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/PuschDedicatedConfig.cs
new file mode 100644
index 0000000..5b52174
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/PuschDedicatedConfig.cs
@@ -0,0 +1,29 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// PUSCH专用配置实体类
+ ///
+ public class PuschDedicatedConfig
+ {
+ ///
+ /// Beta偏移ACK索引
+ ///
+ [JsonProperty("beta_offset_ack_index")]
+ public int? BetaOffsetAckIndex { get; set; }
+
+ ///
+ /// Beta偏移RI索引
+ ///
+ [JsonProperty("beta_offset_ri_index")]
+ public int? BetaOffsetRiIndex { get; set; }
+
+ ///
+ /// Beta偏移CQI索引
+ ///
+ [JsonProperty("beta_offset_cqi_index")]
+ public int? BetaOffsetCqiIndex { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/README.md b/src/X1.Domain/Models/LteCellConfiguration/README.md
new file mode 100644
index 0000000..86a25ba
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/README.md
@@ -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
+ {
+ 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(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("小区禁止状态未配置");
+}
+```
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/ScellConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/ScellConfig.cs
new file mode 100644
index 0000000..2d33bba
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/ScellConfig.cs
@@ -0,0 +1,35 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// 辅小区配置实体类
+ ///
+ public class ScellConfig
+ {
+ ///
+ /// 小区ID
+ ///
+ [JsonProperty("cell_id")]
+ public int? CellId { get; set; }
+
+ ///
+ /// 跨载波调度
+ ///
+ [JsonProperty("cross_carrier_scheduling")]
+ public bool? CrossCarrierScheduling { get; set; }
+
+ ///
+ /// 调度小区ID
+ ///
+ [JsonProperty("scheduling_cell_id")]
+ public int? SchedulingCellId { get; set; }
+
+ ///
+ /// 上行允许
+ ///
+ [JsonProperty("ul_allowed")]
+ public bool? UlAllowed { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/SibSchedConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/SibSchedConfig.cs
new file mode 100644
index 0000000..f7d4f4b
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/SibSchedConfig.cs
@@ -0,0 +1,23 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// SIB调度配置实体类
+ ///
+ public class SibSchedConfig
+ {
+ ///
+ /// 配置文件路径
+ ///
+ [JsonProperty("filename")]
+ public string? Filename { get; set; }
+
+ ///
+ /// SI周期性
+ ///
+ [JsonProperty("si_periodicity")]
+ public int? SiPeriodicity { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/SrbConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/SrbConfig.cs
new file mode 100644
index 0000000..16a7be0
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/SrbConfig.cs
@@ -0,0 +1,35 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// SRB配置实体类
+ ///
+ public class SrbConfig
+ {
+ ///
+ /// SRB ID
+ ///
+ [JsonProperty("id")]
+ public int? Id { get; set; }
+
+ ///
+ /// 最大重传阈值
+ ///
+ [JsonProperty("maxRetxThreshold")]
+ public int? MaxRetxThreshold { get; set; }
+
+ ///
+ /// 重排序定时器
+ ///
+ [JsonProperty("t_Reordering")]
+ public int? TReordering { get; set; }
+
+ ///
+ /// 轮询重传定时器
+ ///
+ [JsonProperty("t_PollRetransmit")]
+ public int? TPollRetransmit { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/LteCellConfiguration/SrsDedicatedConfig.cs b/src/X1.Domain/Models/LteCellConfiguration/SrsDedicatedConfig.cs
new file mode 100644
index 0000000..5cce9de
--- /dev/null
+++ b/src/X1.Domain/Models/LteCellConfiguration/SrsDedicatedConfig.cs
@@ -0,0 +1,41 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.LteCellConfiguration
+{
+ ///
+ /// SRS专用配置实体类
+ ///
+ public class SrsDedicatedConfig
+ {
+ ///
+ /// SRS带宽配置
+ ///
+ [JsonProperty("srs_bandwidth_config")]
+ public int? SrsBandwidthConfig { get; set; }
+
+ ///
+ /// SRS子帧配置
+ ///
+ [JsonProperty("srs_subframe_config")]
+ public int? SrsSubframeConfig { get; set; }
+
+ ///
+ /// SRS周期
+ ///
+ [JsonProperty("srs_period")]
+ public int? SrsPeriod { get; set; }
+
+ ///
+ /// SRS带宽
+ ///
+ [JsonProperty("srs_bandwidth")]
+ public int? SrsBandwidth { get; set; }
+
+ ///
+ /// SRS跳频带宽
+ ///
+ [JsonProperty("srs_hopping_bandwidth")]
+ public int? SrsHoppingBandwidth { get; set; }
+ }
+}
+
diff --git a/src/X1.Domain/Models/NrCellConfiguration/CsiRsConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/CsiRsConfig.cs
new file mode 100644
index 0000000..0cb5cac
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/CsiRsConfig.cs
@@ -0,0 +1,257 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR CSI-RS配置
+ ///
+ public class CsiRsConfig
+ {
+ [JsonProperty("nzp_csi_rs_resource")]
+ public List? NzpCsiRsResource { get; set; }
+
+ [JsonProperty("nzp_csi_rs_resource_set")]
+ public List? NzpCsiRsResourceSet { get; set; }
+
+ [JsonProperty("csi_im_resource")]
+ public List? CsiImResource { get; set; }
+
+ [JsonProperty("csi_im_resource_set")]
+ public List? CsiImResourceSet { get; set; }
+
+ [JsonProperty("zp_csi_rs_resource")]
+ public List? ZpCsiRsResource { get; set; }
+
+ [JsonProperty("p_zp_csi_rs_resource_set")]
+ public List? PZpCsiRsResourceSet { get; set; }
+
+ [JsonProperty("csi_resource_config")]
+ public List? CsiResourceConfig { get; set; }
+
+ [JsonProperty("csi_report_config")]
+ public List? CsiReportConfig { get; set; }
+ }
+
+ ///
+ /// NZP CSI-RS资源
+ ///
+ 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; }
+ }
+
+ ///
+ /// NZP CSI-RS资源集
+ ///
+ public class NzpCsiRsResourceSet
+ {
+ [JsonProperty("csi_rs_set_id")]
+ public int? CsiRsSetId { get; set; }
+
+ [JsonProperty("nzp_csi_rs_resources")]
+ public List? NzpCsiRsResources { get; set; }
+
+ [JsonProperty("repetition")]
+ public bool? Repetition { get; set; }
+
+ [JsonProperty("trs_info")]
+ public bool? TrsInfo { get; set; }
+ }
+
+ ///
+ /// CSI-IM资源
+ ///
+ 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; }
+ }
+
+ ///
+ /// CSI-IM资源集
+ ///
+ public class CsiImResourceSet
+ {
+ [JsonProperty("csi_im_set_id")]
+ public int? CsiImSetId { get; set; }
+
+ [JsonProperty("csi_im_resources")]
+ public List? CsiImResources { get; set; }
+ }
+
+ ///
+ /// ZP CSI-RS资源
+ ///
+ 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; }
+ }
+
+ ///
+ /// P-ZP CSI-RS资源集
+ ///
+ public class PZpCsiRsResourceSet
+ {
+ [JsonProperty("zp_csi_rs_resources")]
+ public List? ZpCsiRsResources { get; set; }
+ }
+
+ ///
+ /// CSI资源配置
+ ///
+ public class CsiResourceConfig
+ {
+ [JsonProperty("csi_rsc_config_id")]
+ public int? CsiRscConfigId { get; set; }
+
+ [JsonProperty("nzp_csi_rs_resource_set_list")]
+ public List? NzpCsiRsResourceSetList { get; set; }
+
+ [JsonProperty("csi_im_resource_set_list")]
+ public List? CsiImResourceSetList { get; set; }
+
+ [JsonProperty("resource_type")]
+ public string? ResourceType { get; set; }
+ }
+
+ ///
+ /// CSI报告配置
+ ///
+ 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; }
+ }
+
+ ///
+ /// 码本配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/MacConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/MacConfig.cs
new file mode 100644
index 0000000..2f4b4d7
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/MacConfig.cs
@@ -0,0 +1,52 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR MAC配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/NrCellConfiguration.cs b/src/X1.Domain/Models/NrCellConfiguration/NrCellConfiguration.cs
new file mode 100644
index 0000000..4e246cd
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/NrCellConfiguration.cs
@@ -0,0 +1,212 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR小区配置主实体类
+ ///
+ public class NrCellConfiguration
+ {
+ [JsonProperty("plmn_list")]
+ public List? 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? CipherAlgoPref { get; set; }
+
+ [JsonProperty("integ_algo_pref")]
+ public List? 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 { 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/NrCellConfigurationCollection.cs b/src/X1.Domain/Models/NrCellConfiguration/NrCellConfigurationCollection.cs
new file mode 100644
index 0000000..0a24f33
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/NrCellConfigurationCollection.cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR小区配置集合
+ ///
+ public class NrCellConfigurationCollection
+ {
+ [JsonProperty("nr_cells")]
+ public List NrCells { get; set; } = new List();
+
+ [JsonProperty("total_count")]
+ public int TotalCount => NrCells.Count;
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/PagingConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/PagingConfig.cs
new file mode 100644
index 0000000..400fdc5
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/PagingConfig.cs
@@ -0,0 +1,19 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR分页配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/PdcchConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/PdcchConfig.cs
new file mode 100644
index 0000000..3f331aa
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/PdcchConfig.cs
@@ -0,0 +1,101 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR PDCCH配置
+ ///
+ 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; }
+ }
+
+ ///
+ /// CSS配置
+ ///
+ public class CssConfig
+ {
+ [JsonProperty("n_candidates")]
+ public List? NCandidates { get; set; }
+
+ [JsonProperty("start_symb")]
+ public int? StartSymb { get; set; }
+ }
+
+ ///
+ /// 专用CORESET配置
+ ///
+ 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; }
+ }
+
+ ///
+ /// USS配置
+ ///
+ public class UssConfig
+ {
+ [JsonProperty("n_candidates")]
+ public List? 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/PdschConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/PdschConfig.cs
new file mode 100644
index 0000000..11efba1
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/PdschConfig.cs
@@ -0,0 +1,95 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR PDSCH配置
+ ///
+ 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? 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/PlmnConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/PlmnConfig.cs
new file mode 100644
index 0000000..df1a517
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/PlmnConfig.cs
@@ -0,0 +1,19 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR PLMN配置
+ ///
+ public class PlmnConfig
+ {
+ [JsonProperty("plmn")]
+ public string? Plmn { get; set; }
+
+ [JsonProperty("tac")]
+ public int? Tac { get; set; }
+
+ [JsonProperty("reserved")]
+ public bool? Reserved { get; set; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/PrachConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/PrachConfig.cs
new file mode 100644
index 0000000..82cec32
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/PrachConfig.cs
@@ -0,0 +1,52 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR PRACH配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/PucchConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/PucchConfig.cs
new file mode 100644
index 0000000..2615953
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/PucchConfig.cs
@@ -0,0 +1,91 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR PUCCH配置
+ ///
+ 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; }
+ }
+
+ ///
+ /// PUCCH1配置
+ ///
+ 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; }
+ }
+
+ ///
+ /// PUCCH3配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/PuschConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/PuschConfig.cs
new file mode 100644
index 0000000..0eeac16
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/PuschConfig.cs
@@ -0,0 +1,122 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR PUSCH配置
+ ///
+ 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? 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/README.md b/src/X1.Domain/Models/NrCellConfiguration/README.md
new file mode 100644
index 0000000..7e099d6
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/README.md
@@ -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(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标准规范
diff --git a/src/X1.Domain/Models/NrCellConfiguration/SrbConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/SrbConfig.cs
new file mode 100644
index 0000000..e82046f
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/SrbConfig.cs
@@ -0,0 +1,22 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR SRB配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/TddUlDlConfig.cs b/src/X1.Domain/Models/NrCellConfiguration/TddUlDlConfig.cs
new file mode 100644
index 0000000..85b4230
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/TddUlDlConfig.cs
@@ -0,0 +1,37 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR TDD UL/DL配置
+ ///
+ public class TddUlDlConfig
+ {
+ [JsonProperty("pattern1")]
+ public TddPattern? Pattern1 { get; set; }
+
+ [JsonProperty("pattern2")]
+ public TddPattern? Pattern2 { get; set; }
+ }
+
+ ///
+ /// TDD模式配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/Models/NrCellConfiguration/TimersAndConstants.cs b/src/X1.Domain/Models/NrCellConfiguration/TimersAndConstants.cs
new file mode 100644
index 0000000..84f427f
--- /dev/null
+++ b/src/X1.Domain/Models/NrCellConfiguration/TimersAndConstants.cs
@@ -0,0 +1,31 @@
+using Newtonsoft.Json;
+
+namespace X1.Domain.Models.NrCellConfiguration
+{
+ ///
+ /// 5G NR定时器和常量配置
+ ///
+ 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; }
+ }
+}
diff --git a/src/X1.Domain/X1.Domain.csproj b/src/X1.Domain/X1.Domain.csproj
index 9e4c638..89a3456 100644
--- a/src/X1.Domain/X1.Domain.csproj
+++ b/src/X1.Domain/X1.Domain.csproj
@@ -15,4 +15,8 @@
+
+
+
+