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