using System.ComponentModel; namespace StandardScene.Signal.Model { /// /// 磁条管控区一行。仅 MagCar:车在触发点停稳等待,进程按区名排队后发启动。 /// /// /// 主键为 。同 的多行绑成一个路口排队。 /// 区名为空时,该触发点自成一区(兼容旧表)。 /// 放行时查本行 与同区冲突对向线站点的并集当前占用;不用 pending。 /// 保留兼容,MagCar 放行走 FASS 1.0 启动指令,不使用该字节。 /// [SignalTable("mag-control", "mag-control-areas.json", "磁条管控区", Order = 5)] [Category("磁条交管")] [DisplayName("管控区配置列表")] public class MagControlAreaModel { /// 管控触发站点。MagCar 到此停稳后进入该区排队。 [DisplayName("管控触发站点")] public int TriggerSit { get; set; } /// 管控区名称。同名多行绑成一个路口;空则本触发点单独成区。 [DisplayName("管控区名称")] public string AreaName { get; set; } = ""; /// /// 兼容组。同区里互不干扰的线路填不同组名;会打架的填同组。 /// 空则与同区其他空组互斥。站点列表有交集时即使组名不同也互斥。 /// [DisplayName("兼容组")] public string CompatGroup { get; set; } = ""; /// 优先级,数值越大越先放。干道高、支路低。只在冲突线路之间生效。 [DisplayName("优先级")] public int Priority { get; set; } /// /// 等待时长(秒)。同区取最长;≤0 不做插队。只在冲突线路之间生效。 /// [DisplayName("等待时长")] public int WaitSeconds { get; set; } /// 本线路路口内部站点,如 10,11。不要把排队触发点写进来。空则回退触发点。 [DisplayName("管控区站点列表")] public string ControlArea { get; set; } = ""; /// 本线路区内最多几辆。含占用本行站点的车和与本行冲突的在途车。默认 1。 [DisplayName("区内最多几辆")] public int ControlCapacity { get; set; } = 1; /// 兼容字段,MagCar 放行不使用。 [DisplayName("放行后启停字节")] public byte ControlReleaseStartStop { get; set; } = 11; /// false 时该条保留在 JSON 里但不生效。 [DisplayName("启用")] public bool IsUse { get; set; } = true; } }