using System.ComponentModel; using Newtonsoft.Json; namespace StandardScene.Signal.Model { /// /// 握手点。JGControl / PointControl 填机构、工位、动作;定时充电 / 限流走附加参数。 /// 旧 JSON 仅有 SignalParams 时仍可解析。 /// [SignalTable("handshake", "handshake-points.json", "握手点", Order = 3)] [Category("握手点数据管理")] [DisplayName("握手点配置列表")] public class HandshakePointModel { [DisplayName("站点")] public int Sit { get; set; } /// JGControl / PointControl / TimedCharging / RateFlowControl。 [DisplayName("信号类型")] [SignalSelect("JGControl", "PointControl", "TimedCharging", "RateFlowControl")] public string SignalType { get; set; } = "JGControl"; [DisplayName("机构名称")] public string JgName { get; set; } = ""; [DisplayName("工位编号")] public string DockId { get; set; } = ""; /// JGControl:RequestIn / Arrived;PointControl:UP1 / UP2 / Down1 / Down2。 [DisplayName("动作")] [SignalSelect("RequestIn", "Arrived", "UP1", "UP2", "Down1", "Down2")] public string Action { get; set; } = ""; /// /// TimedCharging:最长秒;上限电量;下限电量。 /// RateFlowControl:区域;车组;限额;点列表。 /// JGControl 可选限流:区域-车组-限额-点列表。 /// [DisplayName("附加参数")] public string ExtraParams { get; set; } = ""; /// 旧字段。新配置可空,加载时由上面几列拼回。 [Browsable(false)] [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public string SignalParams { get; set; } } }