wenxiangchao
4 天以前 559890c482f5973f06aafdfec9550fee5ba3c7f2
Plugin.DeviceConfig/Entity/DeviceDefinition.cs
@@ -16,6 +16,15 @@
    }
    /// <summary>
    /// V3.0 执行位置枚举:Local=进程独占直连;Broker=跨进程共享,由 DeviceBroker 宿主代理
    /// </summary>
    public enum ExecutionModeKind
    {
        Local,
        Broker
    }
    /// <summary>
    /// 传输方式枚举
    /// </summary>
    public enum TransportType
@@ -68,6 +77,45 @@
        private string endpoint = string.Empty;
        /// <summary>
        /// 执行位置: Local / Broker(V3.0 §05,默认 Local)
        /// </summary>
        [ObservableProperty]
        private ExecutionModeKind executionMode = ExecutionModeKind.Local;
        /// <summary>
        /// 仲裁域标识(必填,候选值由配置枚举;同一 PhysicalSessionKey 只能归属一个仲裁域宿主)
        /// </summary>
        [ObservableProperty]
        private string authorityId = string.Empty;
        /// <summary>
        /// Broker 宿主标识(仅 Broker 模式;须与仲裁域一致)
        /// </summary>
        [ObservableProperty]
        private string brokerId = string.Empty;
        /// <summary>
        /// Broker 宿主进程号(仅 Broker 记录用,运行期以 Broker 实际 PID 为准;MVP 占位当前进程)
        /// </summary>
        [ObservableProperty]
        private string ownerProcessId = string.Empty;
        /// <summary>
        /// 物理会话键(仅 Broker;地址规范化后的固定字符串,如 can/CAN_BUS_1/main)
        /// </summary>
        [ObservableProperty]
        private string physicalSessionKey = string.Empty;
        /// <summary>
        /// 访问控制策略:只读派生,不可手工编辑(V3.0 §05)
        /// </summary>
        public string AccessPolicy => ExecutionMode switch
        {
            ExecutionModeKind.Broker => "共享仲裁 · Broker SessionGate 代理",
            _ => "独占直连 · 本进程持有物理会话"
        };
        /// <summary>
        /// 生效版本号
        /// </summary>
        [ObservableProperty]