102 lines
4.2 KiB
C#
102 lines
4.2 KiB
C#
using DTS.Common.Classes;
|
|
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;
|
|
using System;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.IO.Ports;
|
|
|
|
namespace DTS.SensorDB
|
|
{
|
|
public class UartSetting : SensorData
|
|
{
|
|
///<summary>
|
|
///</summary>
|
|
public UartSetting() : base()
|
|
{
|
|
SetDefaults(this);
|
|
}
|
|
public UartSetting(UartSetting copy) : base(copy)
|
|
{
|
|
SetDefaults(this);
|
|
}
|
|
public UartSetting(IUARTRecord record)
|
|
{
|
|
SetDefaults(this);
|
|
DatabaseId = record.Id;
|
|
SerialNumber = record.SerialNumber;
|
|
|
|
UartBaudRate = record.UartBaudRate;
|
|
UartDataBits = record.UartDataBits;
|
|
UartStopBits = record.UartStopBits;
|
|
UartParity = record.UartParity;
|
|
//FB 30486 Hardcode FlowControl to NONE for UART sensor type
|
|
UartDataFormat = record.UartDataFormat;
|
|
|
|
Broken = record.Broken;
|
|
DoNotUse = record.DoNotUse;
|
|
LastModified = record.LastModified;
|
|
LastUpdatedBy = record.LastUpdatedBy;
|
|
}
|
|
//public UartSetting(IDataRecord reader)
|
|
//{
|
|
// SetDefaults(this);
|
|
// try
|
|
// {
|
|
// DatabaseId = Convert.ToInt32(reader["Id"]);
|
|
// SerialNumber = Convert.ToString(reader[DbOperations.UartIOSettings.Fields.SerialNumber.ToString()]);
|
|
|
|
// UartBaudRate = Convert.ToUInt32(reader[DbOperations.UartIOSettings.Fields.BaudRate.ToString()]);
|
|
// UartDataBits = Convert.ToUInt32(reader[DbOperations.UartIOSettings.Fields.DataBits.ToString()]);
|
|
// UartStopBits = (StopBits)Enum.Parse(typeof(StopBits), Convert.ToString(reader[DbOperations.UartIOSettings.Fields.StopBits.ToString()]));
|
|
// UartParity = (Parity)Enum.Parse(typeof(Parity), Convert.ToString(reader[DbOperations.UartIOSettings.Fields.Parity.ToString()]));
|
|
// UartFlowControl = (Handshake)Enum.Parse(typeof(Handshake), Convert.ToString(reader[DbOperations.UartIOSettings.Fields.FlowControl.ToString()]));
|
|
// UartDataFormat = (UartDataFormat)Enum.Parse(typeof(UartDataFormat), Convert.ToString(reader[DbOperations.UartIOSettings.Fields.DataFormat.ToString()]));
|
|
|
|
// Broken = Utility.GetBool((IDataReader)reader, DbOperations.UartIOSettings.Fields.Broken.ToString());
|
|
// DoNotUse = Utility.GetBool((IDataReader)reader, DbOperations.UartIOSettings.Fields.DoNotUse.ToString());
|
|
// LastModified = Convert.ToDateTime(reader[DbOperations.UartIOSettings.Fields.LastModified.ToString()]);
|
|
// LastUpdatedBy = Convert.ToString(reader[DbOperations.UartIOSettings.Fields.LastModifiedBy.ToString()]);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// APILogger.Log("Failed to process: ", ex);
|
|
// }
|
|
//}
|
|
|
|
public static void SetDefaults(SensorData sd)
|
|
{
|
|
sd.SupportedExcitation = new Common.Enums.ExcitationVoltageOptions.ExcitationVoltageOption[] { ExcitationVoltageOptions.ExcitationVoltageOption.Undefined };
|
|
sd.Bridge = SensorConstants.BridgeType.UART;
|
|
sd.AxisNumber = 0;
|
|
sd.NumberOfAxes = 1;
|
|
sd.Capacity = 1;
|
|
sd.DisplayUnit = "";
|
|
sd.BridgeResistance = double.NaN;
|
|
sd.CheckOffset = false;
|
|
sd.Manufacturer = "Generic";
|
|
sd.OffsetToleranceHigh = 0;
|
|
sd.OffsetToleranceLow = 0;
|
|
sd.Model = "UART Setting";
|
|
sd.Shunt = ShuntMode.None;
|
|
sd.MeasureExcitation = false;
|
|
sd.MeasureNoise = false;
|
|
}
|
|
|
|
public static void Commit(SensorData setting)
|
|
{
|
|
SetDefaults(setting);
|
|
IUARTRecord record = new UARTRecord(setting);
|
|
var hr = DbOperations.SensorsUARTUpdateInsert(ref record);
|
|
if (0 == hr)
|
|
{
|
|
setting.DatabaseId = record.Id;
|
|
}
|
|
}
|
|
}
|
|
}
|