namespace LTEMvcApp.Models { /// /// 日志信道配置 /// public static class LogChannelConfig { /// /// 信道定义列表 /// public static readonly List ChannelDefinitions = new() { new() { Name = "PRACH", Color = "#ffff00" }, new() { Name = "NPRACH", Color = "#ffff00" }, new() { Name = "SRS", Color = "#ffff80" }, new() { Name = "PUCCH", Color = "#00ff00" }, new() { Name = "PUSCH", Color = "#ff0000" }, new() { Name = "NPUSCH", Color = "#ff0000" }, new() { Name = "PDSCH", Color = "#0000ff" }, new() { Name = "NPDSCH", Color = "#0000ff" }, new() { Name = "PDCCH", Color = "#00ffff" }, new() { Name = "EPDCCH", Color = "#00ffff" }, new() { Name = "NPDCCH", Color = "#00ffff" }, new() { Name = "PMCH", Color = "#ff80ff" }, new() { Name = "INV", Color = "#D0D0D0" } }; /// /// 信道定义字典(按名称索引) /// public static readonly Dictionary ChannelsByName = ChannelDefinitions .ToDictionary(c => c.Name, c => c); /// /// 信道定义字典(按ID索引) /// public static readonly Dictionary ChannelsById = ChannelDefinitions .Select((c, i) => new { Channel = c, Index = i }) .ToDictionary(x => x.Index, x => x.Channel); /// /// 获取信道定义 /// /// 信道名称 /// 信道定义 public static ChannelDefinition? GetChannelByName(string name) { return ChannelsByName.TryGetValue(name, out var channel) ? channel : null; } /// /// 获取信道定义 /// /// 信道ID /// 信道定义 public static ChannelDefinition? GetChannelById(int id) { return ChannelsById.TryGetValue(id, out var channel) ? channel : null; } /// /// 获取所有信道名称 /// /// 信道名称列表 public static List GetAllChannelNames() { return ChannelDefinitions.Select(c => c.Name).ToList(); } /// /// 验证信道名称是否有效 /// /// 信道名称 /// 是否有效 public static bool IsValidChannel(string name) { return ChannelsByName.ContainsKey(name); } /// /// 获取信道ID /// /// 信道名称 /// 信道ID,如果不存在返回-1 public static int GetChannelId(string name) { for (int i = 0; i < ChannelDefinitions.Count; i++) { if (ChannelDefinitions[i].Name == name) return i; } return -1; } } /// /// 信道定义 /// public class ChannelDefinition { /// /// 信道名称 /// public string Name { get; set; } = string.Empty; /// /// 颜色代码 /// public string Color { get; set; } = "#000000"; /// /// 信道ID /// public int Id { get; set; } /// /// 信道索引 /// public int Index { get; set; } } }