init
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
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
|
||||
{
|
||||
/// <summary>
|
||||
/// Digital Inputs allow collected data to behave consistently with a digital data source
|
||||
/// the settings are for configuring firmware appropriately and for transforming data for consumption
|
||||
/// </summary>
|
||||
public class DigitalInputSetting : SensorData
|
||||
{
|
||||
/// <summary>
|
||||
/// constructor and copy constructor
|
||||
/// </summary>
|
||||
public DigitalInputSetting() : base()
|
||||
{
|
||||
SetDefaults(this);
|
||||
}
|
||||
public DigitalInputSetting(IDigitalInDbRecord record) : base()
|
||||
{
|
||||
SetDefaults(this);
|
||||
try
|
||||
{
|
||||
DatabaseId = record.Id;
|
||||
SettingName = record.SerialNumber;
|
||||
ISOCode = record.ISOCode;
|
||||
ISOChannelName = record.ISOChannelName;
|
||||
UserCode = record.UserCode;
|
||||
UserChannelName = record.UserChannelName;
|
||||
Broken = record.Broken;
|
||||
DoNotUse = record.DoNotUse;
|
||||
LastModified = record.LastModified;
|
||||
LastUpdatedBy = record.LastModifiedBy;
|
||||
InputMode = record.Mode;
|
||||
DIUnits = record.MeasurementUnit;
|
||||
//Since the ISOCode is not stored in the SensorsDigitalIn table like it is in SensorsAnalog, create one
|
||||
SetFilterAndFilterClassISO(record.FilterClass, true, true); //Always set Filter to 0
|
||||
EID = record.EID;
|
||||
UserValue1 = record.UserValue1;
|
||||
UserValue2 = record.UserValue2;
|
||||
UserValue3 = record.UserValue3;
|
||||
TagsBlobBytes = record.UserTags;
|
||||
Comment = record.UserValue1;
|
||||
ScaleMultiplier.FromDbSerializeString(record.ScaleMultiplier.ToSerializeDbString());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
APILogger.Log("Failed to process: ", ex);
|
||||
}
|
||||
}
|
||||
public DigitalInputSetting(IDataRecord reader) : base()
|
||||
{
|
||||
SetDefaults(this);
|
||||
try
|
||||
{
|
||||
DatabaseId = Convert.ToInt32(reader["Id"]);
|
||||
SettingName = Convert.ToString(reader["SerialNumber"]);
|
||||
ISOCode = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.ISOCode.ToString()]);
|
||||
ISOChannelName = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.ISOChannelName.ToString()]);
|
||||
UserCode = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.UserCode.ToString()]);
|
||||
UserChannelName = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.UserChannelName.ToString()]);
|
||||
Broken = Convert.ToBoolean(reader[DbOperations.DigitalInputSettings.Fields.Broken.ToString()]);
|
||||
DoNotUse = Convert.ToBoolean(reader[DbOperations.DigitalInputSettings.Fields.DoNotUse.ToString()]);
|
||||
LastModified = Convert.ToDateTime(reader[DbOperations.DigitalInputSettings.Fields.LastModified.ToString()]);
|
||||
LastUpdatedBy = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.LastModifiedBy.ToString()]);
|
||||
InputMode = (DigitalInputModes)Convert.ToInt32(reader[DbOperations.DigitalInputSettings.Fields.SettingMode.ToString()]);
|
||||
|
||||
DIUnits = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.MeasurementUnit.ToString()]);
|
||||
//Since the ISOCode is not stored in the SensorsDigitalIn table like it is in SensorsAnalog, create one
|
||||
SetFilterAndFilterClassISO(new FilterClass(Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.FilterClass.ToString()])), true, true); //Always set Filter to 0
|
||||
EID = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.eId.ToString()]);
|
||||
UserValue1 = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.UserValue1.ToString()]);
|
||||
UserValue2 = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.UserValue2.ToString()]);
|
||||
UserValue3 = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.UserValue3.ToString()]);
|
||||
TagsBlobBytes = (byte[])reader[DbOperations.DigitalInputSettings.Fields.UserTags.ToString()];
|
||||
Comment = Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.UserValue1.ToString()]);
|
||||
ScaleMultiplier.FromDbSerializeString(Convert.ToString(reader[DbOperations.DigitalInputSettings.Fields.ScaleMultiplier.ToString()]));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
APILogger.Log("Failed to process: ", ex);
|
||||
}
|
||||
}
|
||||
public DigitalInputSetting(DigitalInputSetting copy)
|
||||
: base(copy)
|
||||
{
|
||||
SetDefaults(this);
|
||||
}
|
||||
|
||||
public static void SetDefaults(SensorData sd)
|
||||
{
|
||||
sd.AxisNumber = 0;
|
||||
sd.NumberOfAxes = 1;
|
||||
sd.Capacity = 2400;
|
||||
sd.Bridge = SensorConstants.BridgeType.DigitalInput;
|
||||
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 Input Setting";
|
||||
sd.Shunt = ShuntMode.None;
|
||||
sd.MeasureExcitation = false;
|
||||
sd.MeasureNoise = false;
|
||||
}
|
||||
|
||||
public DigitalInputSetting(SensorData sd)
|
||||
: base(sd)
|
||||
{
|
||||
Bridge = SensorConstants.BridgeType.DigitalInput;
|
||||
SetDefaults(this);
|
||||
UserSerialNumber = sd.UserSerialNumber;
|
||||
SerialNumber = sd.SerialNumber;
|
||||
UserValue1 = sd.UserValue1;
|
||||
UserValue2 = sd.UserValue2;
|
||||
UserValue3 = sd.UserValue3;
|
||||
}
|
||||
|
||||
public static void Commit(SensorData setting)
|
||||
{
|
||||
SetDefaults(setting);
|
||||
|
||||
var record = new DigitalInDbRecord(setting, setting.TagsBlobBytes, setting.ScaleMultiplier);
|
||||
var hr = DbOperations.SensorsDigitalInUpdateInsert(record);
|
||||
if (0 == hr)
|
||||
{
|
||||
setting.Id = record.Id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user