using Prism.Mvvm; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CapMachine.Wpf.LinDrive { /// /// LDF消息 /// public class LinLdfModel : BindableBase { /// /// 消息Id /// public string? MsgId { get; set; } /// /// 配置的中文名称:速度,转速限制,使能等常用的信息数据 /// 但不是所有的SignalName都会配置一个Name,只是需要时才会配置名称 /// 但是CanDbcModel集合会包括所有的SignalName名称的 /// public string? Name { get; set; } /// /// 消息名称/Frame名称/帧名称 /// public string? MsgName { get; set; } /// /// 信号名称 /// public string? SignalName { get; set; } /// /// 信号描述 /// public string? SignalDesc { get; set; } /// /// 信号单位 /// public string? SignalUnit { get; set; } private string? _SignalRtValue = "--"; /// /// 信号实时值 /// public string? SignalRtValue { get { return _SignalRtValue; } set { if (_SignalRtValue != value) { _SignalRtValue = value; RaisePropertyChanged(); } } } private StringBuilder _SignalRtValueSb = new StringBuilder(16); /// /// 信号实时值 StringBuilder /// public StringBuilder SignalRtValueSb { get { return _SignalRtValueSb; } set { if (value == null) { if (_SignalRtValue != string.Empty) { _SignalRtValueSb.Clear(); SignalRtValue = string.Empty; } return; } // 复制内容到内部可变缓冲区,避免多个模型共享同一个 StringBuilder 实例 var str = value.ToString(); if (!string.Equals(_SignalRtValue, str, StringComparison.Ordinal)) { _SignalRtValueSb.Clear(); _SignalRtValueSb.Append(str); SignalRtValue = str; } } } private int _IsSeletedInfo; /// /// 被选中的信息 /// 方便标注着色 /// public int IsSeletedInfo { get { return _IsSeletedInfo; } set { _IsSeletedInfo = value; RaisePropertyChanged(); } } /// /// 发布者 /// public string? Publisher { get; set; } /// /// 是否主机帧 /// public string? IsMasterFrame { get; set; } } }