using System; using System.Linq; namespace DatabaseExport { public class DigitalOutputSetting : SensorData { public string ChannelDescription { get => SerialNumber; set { SerialNumber = value; OnPropertyChanged("ChannelDescription"); } } // public DigitalOutputSetting(DigitalOutputSetting copy) : base(copy) // { // SetDefaults(this); // } public DigitalOutputSetting() { SetDefaults(this); } public static void SetDefaults(SensorData sd) { sd.SupportedExcitation = new Test.Module.Channel.Sensor.ExcitationVoltageOption[] {Test.Module.Channel.Sensor.ExcitationVoltageOption.Volt5}; sd.Bridge = Test.Module.Channel.Sensor.BridgeType.TOMDigital; sd.AxisNumber = 0; sd.NumberOfAxes = 1; sd.Capacity = 1; sd.DisplayUnit = "V"; sd.BridgeResistance = double.NaN; sd.CheckOffset = false; sd.Manufacturer = "Generic"; sd.OffsetToleranceHigh = 2500; sd.OffsetToleranceLow = 2500; sd.Model = "Digital Output Setting"; sd.Shunt = ShuntMode.None; sd.MeasureExcitation = false; sd.MeasureNoise = false; } public DigitalOutputSetting(System.Data.DataRow dr) { Bridge = Test.Module.Channel.Sensor.BridgeType.TOMDigital; var fields = Enum.GetValues(typeof(DbOperations.DigitalOutputSettings.Fields)) .Cast().ToArray(); foreach (var field in fields) { try { var o = dr[field.ToString()]; if (DBNull.Value.Equals(o)) { continue; } switch (field) { case DbOperations.DigitalOutputSettings.Fields.Version: Version = Convert.ToInt32(o); break; case DbOperations.DigitalOutputSettings.Fields.OutputMode: DigitalOutputMode = (OutputTOMDigitalChannel.DigitalOutputMode)Convert.ToInt16(o); break; case DbOperations.DigitalOutputSettings.Fields.LocalOnly: _localOnly = Convert.ToBoolean(o); break; case DbOperations.DigitalOutputSettings.Fields.LimitDuration: DigitalOutputLimitDuration = Convert.ToBoolean(o); break; case DbOperations.DigitalOutputSettings.Fields.LastModifiedBy: LastUpdatedBy = Convert.ToString(o); break; case DbOperations.DigitalOutputSettings.Fields.LastModified: LastModified = Convert.ToDateTime(o); break; case DbOperations.DigitalOutputSettings.Fields.DurationMS: //obsolete, but non-null, field //DigitalOutputDurationMS = Convert.ToDouble(o); break; case DbOperations.DigitalOutputSettings.Fields.DurationMSFloat: DigitalOutputDurationMS = Convert.ToDouble(o); break; case DbOperations.DigitalOutputSettings.Fields.DelayMS: DigitalOutputDelayMS = Convert.ToDouble(o); break; case DbOperations.DigitalOutputSettings.Fields.ChannelDescription: ChannelDescription = Convert.ToString(o); break; case DbOperations.DigitalOutputSettings.Fields.UserTags: TagsBlobBytes = (byte[])o; break; } } catch (Exception) { //DTS.Utilities.Logging.APILogger.Log("Failed to process: ", field.ToString(), ex); } } SetDefaults(this); } } }