Files
DP44/DataPRO/Modules/PreviousDBVersions/Version57/DatabaseExport/SensorDB/DigitalOutputSetting.cs
2026-04-17 14:55:32 -04:00

110 lines
4.5 KiB
C#

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<DbOperations.DigitalOutputSettings.Fields>().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);
}
}
}