init
This commit is contained in:
138
DataPRO/SensorDB/DigitalOutputSetting.cs
Normal file
138
DataPRO/SensorDB/DigitalOutputSetting.cs
Normal file
@@ -0,0 +1,138 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
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 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 DigitalOutputSetting(SensorData sd)
|
||||
// : base(sd)
|
||||
//{
|
||||
// SetDefaults(this);
|
||||
//}
|
||||
|
||||
private static void SetDefaults(SensorData sd)
|
||||
{
|
||||
sd.SupportedExcitation = new[] { ExcitationVoltageOptions.ExcitationVoltageOption.Volt5 };
|
||||
sd.Bridge = SensorConstants.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(IDigitalOutDbRecord copy)
|
||||
{
|
||||
DatabaseId = copy.DatabaseId;
|
||||
Broken = copy.Broken;
|
||||
DoNotUse = copy.DoNotUse;
|
||||
Bridge = SensorConstants.BridgeType.TOMDigital;
|
||||
|
||||
Version = copy.Version;
|
||||
DigitalOutputMode = copy.DOMode;
|
||||
DigitalOutputLimitDuration = copy.LimitDuration;
|
||||
LastUpdatedBy = copy.ModifiedBy;
|
||||
LastModified = copy.LastModified;
|
||||
DigitalOutputDurationMS = copy.DODuration;
|
||||
DigitalOutputDelayMS = copy.DODelay;
|
||||
ChannelDescription = copy.SerialNumber;
|
||||
SerialNumber = copy.SerialNumber;
|
||||
if (null == copy.TagsBlobBytes)
|
||||
{
|
||||
TagsBlobBytes = null;
|
||||
}
|
||||
else if (copy.TagsBlobBytes.Any())
|
||||
{
|
||||
var bytes = new byte[copy.TagsBlobBytes.Length];
|
||||
Array.Copy(copy.TagsBlobBytes, bytes, copy.TagsBlobBytes.Length);
|
||||
TagsBlobBytes = bytes;
|
||||
}
|
||||
else
|
||||
{
|
||||
TagsBlobBytes = new byte[0];
|
||||
}
|
||||
|
||||
SetDefaults(this);
|
||||
}
|
||||
public DigitalOutputSetting(IDataRecord reader)//, bool pre20 = false)
|
||||
{
|
||||
DatabaseId = Convert.ToInt32(reader["Id"]);
|
||||
Broken = Convert.ToBoolean(reader[DbOperations.DigitalOutputSettings.Fields.Broken.ToString()]);
|
||||
DoNotUse = Convert.ToBoolean(reader[DbOperations.DigitalOutputSettings.Fields.DoNotUse.ToString()]);
|
||||
Bridge = SensorConstants.BridgeType.TOMDigital;
|
||||
|
||||
try
|
||||
{
|
||||
Version = Convert.ToInt32(reader[DbOperations.DigitalOutputSettings.Fields.Version.ToString()]);
|
||||
DigitalOutputMode =
|
||||
(DigitalOutputModes)Convert.ToInt16(
|
||||
reader[DbOperations.DigitalOutputSettings.Fields.OutputMode.ToString()]);
|
||||
//_localOnly = Convert.ToBoolean(reader[DbOperations.DigitalOutputSettings.Fields.LocalOnly.ToString()]);
|
||||
DigitalOutputLimitDuration =
|
||||
Convert.ToBoolean(reader[DbOperations.DigitalOutputSettings.Fields.LimitDuration.ToString()]);
|
||||
LastUpdatedBy =
|
||||
Convert.ToString(reader[DbOperations.DigitalOutputSettings.Fields.LastModifiedBy.ToString()]);
|
||||
LastModified =
|
||||
Convert.ToDateTime(reader[DbOperations.DigitalOutputSettings.Fields.LastModified.ToString()]);
|
||||
DigitalOutputDurationMS =
|
||||
Convert.ToDouble(reader[DbOperations.DigitalOutputSettings.Fields.DurationMSFloat.ToString()]);
|
||||
DigitalOutputDelayMS =
|
||||
Convert.ToDouble(reader[DbOperations.DigitalOutputSettings.Fields.DelayMS.ToString()]);
|
||||
ChannelDescription = Convert.ToString(reader["SerialNumber"]);
|
||||
TagsBlobBytes = (byte[])reader[DbOperations.DigitalOutputSettings.Fields.UserTags.ToString()];
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
APILogger.Log("Failed to process: ", ex);
|
||||
}
|
||||
|
||||
SetDefaults(this);
|
||||
}
|
||||
|
||||
public static void Commit(SensorData setting)
|
||||
{
|
||||
SetDefaults(setting);
|
||||
var digitalOut = new DigitalOutDbRecord(setting, setting.TagsBlobBytes);
|
||||
var hr = DbOperations.SensorsDigitalOutUpdateInsert(digitalOut);
|
||||
if (0 == hr) { setting.DatabaseId = digitalOut.DatabaseId; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user