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

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;
}
}
}
}