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;
}
}