新增磁导航内部交管和信号交互界面
This commit is contained in:
@@ -64,4 +64,27 @@ public record DeploymentProfile(
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>信号交互场景 id(PLC 握手 + 磁条交管)。</summary>
|
||||
public const string SignalSceneId = "scene.signal";
|
||||
|
||||
/// <summary>设备驱动场景 id(门/充电桩等,各类项目通用)。</summary>
|
||||
public const string DeviceSceneId = "scene.device";
|
||||
|
||||
/// <summary>是否选了磁导航。</summary>
|
||||
public bool UsesMagnetic() =>
|
||||
NavigationKinds?.Any(k => string.Equals(k, "magnetic", StringComparison.OrdinalIgnoreCase)) == true;
|
||||
|
||||
/// <summary>
|
||||
/// 写入 active-scenes.json 的完整场景集合:导航插件 + 磁导航时并入 scene.signal + scene.device。
|
||||
/// </summary>
|
||||
public IReadOnlyList<string> ToLauncherSceneIds()
|
||||
{
|
||||
var result = ToActiveSceneIds().ToList();
|
||||
if (UsesMagnetic() && !result.Contains(SignalSceneId, StringComparer.OrdinalIgnoreCase))
|
||||
result.Add(SignalSceneId);
|
||||
if (!result.Contains(DeviceSceneId, StringComparer.OrdinalIgnoreCase))
|
||||
result.Add(DeviceSceneId);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user