Files
DP44/DataPRO/Modules/DatabaseImporter/DatabaseImport/SensorDB/SquibSetting.cs
2026-04-17 14:55:32 -04:00

111 lines
4.9 KiB
C#

using System;
using System.Data;
namespace DatabaseImport
{
public class SquibSetting : SensorData
{
public string SquibDescription
{
get => SerialNumber;
set
{
SerialNumber = value;
OnPropertyChanged("SquibDescription");
}
}
private bool _bypassCurrentFilter;
public bool BypassCurrentFilter
{
get => _bypassCurrentFilter;
set => SetProperty(ref _bypassCurrentFilter, value, "BypassCurrentFilter");
}
private bool _bypassVoltageFilter;
public bool BypassVoltageFilter
{
get => _bypassVoltageFilter;
set => SetProperty(ref _bypassVoltageFilter, value, "BypassVoltageFilter");
}
public string ArticleId
{
get => Id;
set
{
Id = value;
OnPropertyChanged("ArticleId");
}
}
public static void SetDefaults(SensorData sd)
{
sd.AxisNumber = 0;
sd.Capacity = 5;
sd.NumberOfAxes = 1;
sd.Manufacturer = "Generic";
sd.Model = "Squib Setting";
sd.Shunt = ShuntMode.None;
sd.CheckOffset = false;
sd.BridgeResistance = -1;
sd.MeasureNoise = false;
sd.MeasureExcitation = false;
sd.Bridge = Test.Module.Channel.Sensor.BridgeType.SQUIB;
sd.SupportedExcitation = new[]
{ExcitationVoltageOptions.ExcitationVoltageOption.Volt5};
sd.DisplayUnit = "V";
sd.Comment = string.IsNullOrWhiteSpace(sd.UserValue1) ? sd.SerialNumber : sd.UserValue1;
}
public SquibSetting(IDataRecord reader)
{
try
{
SetDefaults(this);
Version = Convert.ToInt32(reader[DbOperations.Squib.Fields.Version.ToString()]);
SquibToleranceLow = Convert.ToDouble(reader[DbOperations.Squib.Fields.SquibToleranceLow.ToString()]);
SquibToleranceHigh = Convert.ToDouble(reader[DbOperations.Squib.Fields.SquibToleranceHigh.ToString()]);
SquibOutputCurrent = Convert.ToDouble(reader[DbOperations.Squib.Fields.SquibOutputCurrent.ToString()]);
SquibDescription = Convert.ToString(reader[DbOperations.Squib.Fields.SerialNumber.ToString()]);
SquibMeasurementType =
(SquibMeasurementType)Convert.ToInt16(
reader[DbOperations.Squib.Fields.MeasurementType.ToString()]);
_localOnly = Convert.ToBoolean(reader[DbOperations.Squib.Fields.LocalOnly.ToString()]);
LimitSquibFireDuration = Convert.ToBoolean(reader[DbOperations.Squib.Fields.LimitDuration.ToString()]);
_lastUpdatedBy = Convert.ToString(reader[DbOperations.Squib.Fields.LastModifiedBy.ToString()]);
LastModified = Convert.ToDateTime(reader[DbOperations.Squib.Fields.LastModified.ToString()]);
ISOCode = Convert.ToString(reader[DbOperations.Squib.Fields.ISOCode.ToString()]);
SquibFireMode = (SquibFireMode)Convert.ToInt16(reader[DbOperations.Squib.Fields.FireMode.ToString()]);
SquibFireDurationMS = Convert.ToDouble(reader[DbOperations.Squib.Fields.DurationMS.ToString()]);
SquibFireDelayMS = Convert.ToDouble(reader[DbOperations.Squib.Fields.DelayMS.ToString()]);
BypassVoltageFilter =
Convert.ToBoolean(reader[DbOperations.Squib.Fields.BypassVoltageFilter.ToString()]);
BypassCurrentFilter =
Convert.ToBoolean(reader[DbOperations.Squib.Fields.BypassCurrentFilter.ToString()]);
ArticleId = Convert.ToString(reader[DbOperations.Squib.Fields.ArticleId.ToString()]);
UserValue1 = Convert.ToString(reader[DbOperations.Squib.Fields.UserValue1.ToString()]);
Comment = UserValue1;
UserValue2 = Convert.ToString(reader[DbOperations.Squib.Fields.UserValue2.ToString()]);
UserValue3 = Convert.ToString(reader[DbOperations.Squib.Fields.UserValue3.ToString()]);
TagsBlobBytes = reader[DbOperations.Squib.Fields.UserTags.ToString()] is DBNull
? new byte[0]
: (byte[])(reader[DbOperations.Squib.Fields.UserTags.ToString()]);
Broken = Convert.ToBoolean(reader[DbOperations.Squib.Fields.Broken.ToString()]);
DoNotUse = Convert.ToBoolean(reader[DbOperations.Squib.Fields.DoNotUse.ToString()]);
}
catch (Exception)
{
//APILogger.Log("Failed to process: ", ex);
}
if (string.IsNullOrWhiteSpace(Comment))
{
Comment = SerialNumber;
}
}
}
}