using DTS.Common.Classes.Sensors; using DTS.Common.Enums; using DTS.Common.Enums.Sensors; using DTS.Common.Interface.Sensors; using DTS.Slice.Users.UserSettings; using System; using System.IO.Ports; namespace DTS.SensorDB { public sealed class UartSettingDefaults : DTS.Common.Base.BasePropertyChanged, IUartSettingDefaults { private ISensorData _defaultUart; public uint BaudRate { get => _defaultUart.UartBaudRate; set => _defaultUart.UartBaudRate = value; } public uint DataBits { get => _defaultUart.UartDataBits; set => _defaultUart.UartDataBits = value; } public StopBits StopBits { get => _defaultUart.UartStopBits; set => _defaultUart.UartStopBits = value; } private static StopBits[] _stopBits = new StopBits[] { StopBits.None, StopBits.One, StopBits.OnePointFive, StopBits.Two }; public StopBits[] AvailableStopBits { get => _stopBits; } public Parity Parity { get => _defaultUart.UartParity; set => _defaultUart.UartParity = value; } private static Parity[] _parities = new Parity[] { Parity.None, Parity.Odd, Parity.Even, Parity.Mark, Parity.Space }; public Parity[] AvailableParities { get => _parities; } //FB 30486 Hardcode FlowControl to NONE for UART sensor type public Handshake FlowControl { get => Handshake.None; } private static Handshake[] _flowControls = new Handshake[] { Handshake.None }; public Handshake[] AvailableFlowControls { get => _flowControls; } public UartDataFormat DataFormat { get => _defaultUart.UartDataFormat; set => _defaultUart.UartDataFormat = value; } private static UartDataFormat[] _dataFormats = new UartDataFormat[] { UartDataFormat.Binary, UartDataFormat.PlainText, UartDataFormat.NMEA }; public UartDataFormat[] AvailableDataFormats { get => _dataFormats; } public bool Validate() { return true; } public static void CommitChange(UartSettingDefaults settingDefaults, int userID) { TestSetupDefaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUARTBaudRate, settingDefaults.BaudRate); TestSetupDefaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUARTDataBits, settingDefaults.DataBits); TestSetupDefaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUARTStopBits, settingDefaults.StopBits); TestSetupDefaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUARTParity, settingDefaults.Parity); TestSetupDefaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUARTFlowControl, settingDefaults.FlowControl); TestSetupDefaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUARTDataFormat, settingDefaults.DataFormat); } public static UartSettingDefaults GetUartSettingsDefault(int userID) { var sd = new SensorData() { UartBaudRate = (uint)TestSetupDefaults.GetUserSettingValueInt(userID, PropertyEnums.PropertyIds.DefaultUARTBaudRate), UartDataBits = (uint)TestSetupDefaults.GetUserSettingValueInt(userID, PropertyEnums.PropertyIds.DefaultUARTDataBits), UartStopBits = (StopBits)Enum.Parse(typeof(StopBits), TestSetupDefaults.GetUserSettingValueString(userID, PropertyEnums.PropertyIds.DefaultUARTStopBits)), UartParity = (Parity)Enum.Parse(typeof(Parity), TestSetupDefaults.GetUserSettingValueString(userID, PropertyEnums.PropertyIds.DefaultUARTParity)), //FB 30486 Hardcode FlowControl to NONE for UART sensor type UartDataFormat = (UartDataFormat)Enum.Parse(typeof(UartDataFormat), TestSetupDefaults.GetUserSettingValueString(userID, PropertyEnums.PropertyIds.DefaultUARTDataFormat)) }; return new UartSettingDefaults(sd); } private UartSettingDefaults(ISensorData defaultUart) { _defaultUart = defaultUart; } /// /// restores digital input settings to defaults /// /// public static void RestoreDefaults(IUartSettingDefaults sensorDefaults) { sensorDefaults.BaudRate = Common.Constant.EmbeddedSensors.BAUD_RATE_DEFAULT; sensorDefaults.DataBits = UARTRecord.UART_DATABITS_DEFAULT; sensorDefaults.DataFormat = UARTRecord.UART_DATAFORMAT_DEFAULT; sensorDefaults.Parity = UARTRecord.UART_PARITY_DEFAULT; sensorDefaults.StopBits = UARTRecord.UART_STOPBITS_DEFAULT; } } }