using DTS.Common.Interface.Sensors; using DTS.Common.Interface.Tags; using DTS.Common.Utilities.Logging; using System; using DTS.Common.Constant; using System.Data; namespace DTS.Common.Classes.Sensors { #pragma warning disable S101 // Types should be named in PascalCase public class CANRecord : TagAwareBase, ICANRecord #pragma warning restore S101 // Types should be named in PascalCase { public override TagTypes TagType { get => TagTypes.Sensors; } private int _id; public int Id { get => _id; set => SetProperty(ref _id, value, "Id"); } private string _serialNumber; public string SerialNumber { get => _serialNumber; set => SetProperty(ref _serialNumber, value, "SerialNumber"); } private DateTime _lastModified; public DateTime LastModified { get => _lastModified; set => SetProperty(ref _lastModified, value, "LastModified"); } private string _lastUpdatedBy; public string LastUpdatedBy { get => _lastUpdatedBy; set => SetProperty(ref _lastUpdatedBy, value, "LastUpdatedBy"); } private bool _doNotUse; public bool DoNotUse { get => _doNotUse; set => SetProperty(ref _doNotUse, value, "DoNotUse"); } private bool _broken; public bool Broken { get => _broken; set => SetProperty(ref _broken, value, "Broken"); } private bool _canIsFD = EmbeddedSensors.CANISFD_DEFAULT; public bool CanIsFD { get => _canIsFD; set => SetProperty(ref _canIsFD, value, "CanIsFD"); } private int _canArbBaseBitrate = EmbeddedSensors.CANFD_ARB_BASE_BITRATE_DEFAULT; public int CanArbBaseBitrate { get => _canArbBaseBitrate; set => SetProperty(ref _canArbBaseBitrate, value, "CanArbBaseBitrate"); } private int _canArbBaseSJW = EmbeddedSensors.CANFD_1000000_ARB_BASE_SJW_MAX; public int CanArbBaseSJW { get => _canArbBaseSJW; set => SetProperty(ref _canArbBaseSJW, value, "CanArbBaseSJW"); } private int _canDataBitrate = EmbeddedSensors.DATA_BITRATE_DEFAULT; public int CanDataBitrate { get => _canDataBitrate; set => SetProperty(ref _canDataBitrate, value, "CanDataBitrate"); } private int _canDataSJW = EmbeddedSensors.DATA_SJW_DEFAULT; public int CanDataSJW { get => _canDataSJW; set => SetProperty(ref _canDataSJW, value, "CanDataSJW"); } private string _canFileType = EmbeddedSensors.FILETYPE_DEFAULT; public string CanFileType { get => _canFileType; set => SetProperty(ref _canFileType, value, "CanFileType"); } public CANRecord(ISensorData sensor) { Id = sensor.DatabaseId; SerialNumber = sensor.SerialNumber; CanIsFD = sensor.CanIsFD; CanArbBaseBitrate = sensor.CanArbBaseBitrate; CanArbBaseSJW = sensor.CanArbBaseSJW; CanDataBitrate = sensor.CanDataBitrate; CanDataSJW = sensor.CanDataSJW; CanFileType = sensor.CanFileType; Broken = sensor.Broken; DoNotUse = sensor.DoNotUse; LastModified = sensor.LastModified; LastUpdatedBy = sensor.LastUpdatedBy; } public CANRecord(IDataReader reader) { try { Id = Utility.GetInt(reader, "Id"); SerialNumber = Utility.GetString(reader, "SerialNumber"); CanIsFD = Utility.GetBool(reader, "IsFD"); CanArbBaseBitrate = Utility.GetInt(reader, "ArbBaseBitrate"); CanArbBaseSJW = Utility.GetInt(reader, "ArbBaseSJW"); CanDataBitrate = Utility.GetInt(reader, "DataBitrate"); CanDataSJW = Utility.GetInt(reader, "DataSJW"); CanFileType = Utility.GetString(reader, "FileType"); Broken = Utility.GetBool(reader, "Broken"); DoNotUse = Utility.GetBool(reader, "DoNotUse"); LastModified = Utility.GetDateTime(reader, "LastModified", DateTime.MinValue); LastUpdatedBy = Utility.GetString(reader, "LastModifiedBy"); } catch (Exception ex) { APILogger.Log("Failed to process: ", ex); } } } }