You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

204 lines
3.9 KiB

using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
namespace LTEMvcApp.Models;
/// <summary>
/// LTE日志实体类 - 对应JavaScript中的LTELog对象
/// </summary>
public class LTELog
{
#region 基础属性
/// <summary>
/// 日志唯一标识符
/// </summary>
public int Id { get; set; }
/// <summary>
/// 时间戳(毫秒)
/// </summary>
public long Timestamp { get; set; }
/// <summary>
/// 协议层(PHY, RRC, NAS, MAC等)
/// </summary>
public string Layer { get; set; } = string.Empty;
/// <summary>
/// 传输方向(UL/DL)
/// </summary>
public int Direction { get; set; }
/// <summary>
/// 消息内容
/// </summary>
public string Message { get; set; } = string.Empty;
/// <summary>
/// 消息信息类型
/// </summary>
public int? Info { get; set; }
/// <summary>
/// UE标识符
/// </summary>
public int? UeId { get; set; }
/// <summary>
/// RNTI(无线网络临时标识符)
/// </summary>
public int? Rnti { get; set; }
/// <summary>
/// 日志数据内容
/// </summary>
public List<string> Data { get; set; } = new();
/// <summary>
/// 客户端引用
/// </summary>
[JsonIgnore]
public LTEClient? Client { get; set; }
/// <summary>
/// 是否已解码
/// </summary>
public bool Decoded { get; set; }
/// <summary>
/// 标记信息
/// </summary>
public string? Marker { get; set; }
#endregion
#region PHY层相关属性
/// <summary>
/// 小区标识
/// </summary>
public int? Cell { get; set; }
/// <summary>
/// 物理信道类型
/// </summary>
public string? Channel { get; set; }
/// <summary>
/// 帧号
/// </summary>
public int? Frame { get; set; }
/// <summary>
/// 子帧号
/// </summary>
public int? Subframe { get; set; }
/// <summary>
/// 时隙号
/// </summary>
public int? Slot { get; set; }
/// <summary>
/// 符号号
/// </summary>
public int? Symbol { get; set; }
/// <summary>
/// 天线端口
/// </summary>
public int? AntennaPort { get; set; }
/// <summary>
/// 资源块起始位置
/// </summary>
public int? RbStart { get; set; }
/// <summary>
/// 资源块数量
/// </summary>
public int? RbCount { get; set; }
/// <summary>
/// 调制编码方案
/// </summary>
public int? Mcs { get; set; }
/// <summary>
/// 传输块大小
/// </summary>
public int? Tbs { get; set; }
/// <summary>
/// HARQ进程ID
/// </summary>
public int? HarqId { get; set; }
/// <summary>
/// HARQ新数据指示
/// </summary>
public bool? HarqNdi { get; set; }
/// <summary>
/// HARQ重传次数
/// </summary>
public int? HarqRedundancyVersion { get; set; }
#endregion
#region 数据相关属性
/// <summary>
/// IP长度
/// </summary>
public int? IpLen { get; set; }
/// <summary>
/// SDU长度
/// </summary>
public int? SduLen { get; set; }
/// <summary>
/// 链路ID
/// </summary>
public LinkIds? LinkIds { get; set; }
/// <summary>
/// 信号记录
/// </summary>
public Dictionary<string, object>? SignalRecord { get; set; }
#endregion
#region 扩展方法
/// <summary>
/// 获取数据字符串
/// </summary>
/// <returns>数据字符串</returns>
public string GetDataString()
{
return string.Join("\n", Data);
}
/// <summary>
/// 获取数据数组
/// </summary>
/// <returns>数据数组</returns>
public List<string> GetData()
{
return Data;
}
#endregion
}
/// <summary>
/// 链路ID
/// </summary>
public class LinkIds
{
public int? Core { get; set; }
public int? Ran { get; set; }
}