using DMS.Core.Enums; using System; namespace DMS.Application.DTOs; /// /// 用于在UI上显示变量基本信息的DTO。 /// public class VariableDto { public int Id { get; set; } public string Name { get; set; } public string S7Address { get; set; } public string DataValue { get; set; } public double NumericValue { get; set; } public string DisplayValue { get; set; } /// /// 更新数值属性,根据DataValue的值进行转换。 /// public void UpdateNumericValue() { if (string.IsNullOrEmpty(DataValue)) { NumericValue = 0.0; return; } // 尝试将字符串转换为数值 if (double.TryParse(DataValue, out double numericValue)) { NumericValue = numericValue; } // 如果是布尔值 else if (bool.TryParse(DataValue, out bool boolValue)) { NumericValue = boolValue ? 1.0 : 0.0; } // 如果无法转换,保持为0.0 else { NumericValue = 0.0; } } public VariableTableDto? VariableTable { get; set; } public List? MqttAliases { get; set; } = new List(); public SignalType SignalType { get; set; } public int PollingInterval { get; set; } public bool IsActive { get; set; } public int VariableTableId { get; set; } public string OpcUaNodeId { get; set; } public bool IsHistoryEnabled { get; set; } public double HistoryDeadband { get; set; } public bool IsAlarmEnabled { get; set; } public double AlarmMinValue { get; set; } public double AlarmMaxValue { get; set; } public double AlarmDeadband { get; set; } public ProtocolType Protocol { get; set; } public DataType DataType { get; set; } public string ConversionFormula { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } public string UpdatedBy { get; set; } public bool IsModified { get; set; } public string Description { get; set; } public OpcUaUpdateType OpcUaUpdateType { get; set; } }