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

134 lines
4.4 KiB
C#

using System;
using DTS.Common.Classes.Sensors;
using DTS.Common.Enums;
using DTS.Common.Enums.Sensors;
using DTS.Common.Interface.Sensors;
using DTS.Common.Storage;
using DTS.Common.Utilities.Logging;
namespace DTS.SensorDB
{
public class SquibSetting : SensorData
{
public string SquibDescription
{
get => SerialNumber;
set
{
SerialNumber = value;
OnPropertyChanged("SquibDescription");
}
}
private bool _bypassCurrentFilter;
public new bool BypassCurrentFilter
{
get => _bypassCurrentFilter;
set => SetProperty(ref _bypassCurrentFilter, value, "BypassCurrentFilter");
}
private bool _bypassVoltageFilter;
public new bool BypassVoltageFilter
{
get => _bypassVoltageFilter;
set => SetProperty(ref _bypassVoltageFilter, value, "BypassVoltageFilter");
}
public string ArticleId
{
get => EID;
set
{
EID = value;
OnPropertyChanged("ArticleId");
}
}
public SquibSetting()
{
SetDefaults(this);
}
public SquibSetting(SquibSetting copy)
: base(copy)
{
SetDefaults(this);
}
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 = SensorConstants.BridgeType.SQUIB;
sd.SupportedExcitation = new[]
{ExcitationVoltageOptions.ExcitationVoltageOption.Volt5};
sd.DisplayUnit = "V";
sd.Comment = string.IsNullOrWhiteSpace(sd.UserValue1) ? sd.SerialNumber : sd.UserValue1;
}
public SquibSetting(ISquibDbRecord record)
{
try
{
SetDefaults(this);
DatabaseId = record.Id;
ISOChannelName = record.IsoChannelName;
UserCode = record.UserCode;
UserChannelName = record.UserChannelName;
Broken = record.Broken;
DoNotUse = record.DoNotUse;
Version = record.Version;
SquibToleranceLow = record.SquibToleranceLow;
SquibToleranceHigh = record.SquibToleranceHigh;
SquibOutputCurrent = record.SquibOutputCurrent;
SquibDescription = record.SerialNumber;
SquibMeasurementType = record.MeasurementType;
LimitSquibFireDuration = record.LimitDuration;
DefineDelayInTest = record.DefineDelayInTest;
ModifiedBy = record.LastModifiedBy;
LastModified = record.LastModified;
ISOCode = record.IsoCode;
SquibFireMode = record.FireMode;
SquibFireDurationMS = record.DurationMs;
SquibFireDelayMS = record.DelayMs;
BypassVoltageFilter = record.BypassVoltageFilter;
BypassCurrentFilter = record.BypassCurrentFilter;
ArticleId = record.ArticleId;
UserValue1 = record.UserValue1;
Comment = UserValue1;
UserValue2 = record.UserValue2;
UserValue3 = record.UserValue3;
TagsBlobBytes = record.UserTags;
}
catch (Exception ex)
{
APILogger.Log("Failed to process: ", ex);
}
if (string.IsNullOrWhiteSpace(Comment))
{
Comment = SerialNumber;
}
}
public static void Commit(SensorData setting)
{
SetDefaults(setting);
var record = new SquibDbRecord(setting, setting.DefineDelayInTest, setting.TagsBlobBytes);
var hr = DbOperations.SensorsSquibUpdateInsert(record);
if (0 == hr) { setting.DatabaseId = record.Id; }
}
}
}