ChannelConfig.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using Prism.Mvvm;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace TeamAAS_VP.Models.Lights
  8. {
  9. /// <summary>
  10. /// 表示单个灯通道的配置项。
  11. /// 包含通道名称、描述、控制器内索引、系统全局索引以及默认亮度等信息。
  12. /// 该类继承自 <see cref="BindableBase"/>,支持属性变更通知,适用于 WPF 数据绑定。
  13. /// </summary>
  14. public class ChannelConfig: BindableBase
  15. {
  16. private string _Name;
  17. /// <summary>
  18. /// 通道名称。
  19. /// 用于界面显示和识别通道,可为空字符串。
  20. /// </summary>
  21. public string Name
  22. {
  23. get { return _Name; }
  24. set { SetProperty(ref _Name, value); }
  25. }
  26. private string _Description;
  27. /// <summary>
  28. /// 通道描述。
  29. /// 对通道的补充说明,可用于显示在工具提示或详细信息面板中。
  30. /// </summary>
  31. public string Description
  32. {
  33. get { return _Description; }
  34. set { SetProperty(ref _Description, value); }
  35. }
  36. private int _LocalIndex;
  37. /// <summary>
  38. /// 控制器内的通道索引(局部索引)。
  39. /// 表示该通道在所属控制器中的位置,通常从 0 或 1 开始,取决于系统约定。
  40. /// </summary>
  41. public int LocalIndex
  42. {
  43. get { return _LocalIndex; }
  44. set { SetProperty(ref _LocalIndex, value); }
  45. }
  46. private int _GlobalIndex;
  47. /// <summary>
  48. /// 系统中的全局通道索引(全局唯一)。
  49. /// 在多控制器环境中用于唯一标识一个通道。
  50. /// </summary>
  51. public int GlobalIndex
  52. {
  53. get { return _GlobalIndex; }
  54. set { SetProperty(ref _GlobalIndex, value); }
  55. }
  56. private int _DefaultBrightness = 100;
  57. /// <summary>
  58. /// 默认亮度(百分比)。
  59. /// 范围通常为 0 到 100,表示通道的默认亮度设置。默认值为 100(表示最大亮度)。
  60. /// </summary>
  61. public int DefaultBrightness
  62. {
  63. get { return _DefaultBrightness; }
  64. set { SetProperty(ref _DefaultBrightness, value); }
  65. }
  66. /// <summary>
  67. /// 初始化 <see cref="ChannelConfig"/> 的新实例。
  68. /// 创建一个默认的通道配置对象,属性使用默认值。
  69. /// </summary>
  70. public ChannelConfig()
  71. {
  72. }
  73. /// <summary>
  74. /// 使用指定的索引和可选信息初始化 <see cref="ChannelConfig"/> 的新实例。
  75. /// </summary>
  76. /// <param name="localIndex">控制器内的通道索引(局部索引)。</param>
  77. /// <param name="globalIndex">系统中的全局通道索引(全局唯一)。</param>
  78. /// <param name="name">通道名称,可选,默认为空字符串。</param>
  79. /// <param name="description">通道描述,可选,默认为空字符串。</param>
  80. /// <param name="defaultBrightness">默认亮度(百分比),可选,默认值为 100。期望范围为 0 到 100。</param>
  81. public ChannelConfig(int localIndex, int globalIndex, string name = "", string description = "", int defaultBrightness = 100)
  82. {
  83. LocalIndex = localIndex;
  84. GlobalIndex = globalIndex;
  85. Name = name;
  86. Description = description;
  87. DefaultBrightness = defaultBrightness;
  88. }
  89. }
  90. }