init
This commit is contained in:
109
DataPRO/SensorDB/StreamOutputSettingDefaults.cs
Normal file
109
DataPRO/SensorDB/StreamOutputSettingDefaults.cs
Normal file
@@ -0,0 +1,109 @@
|
||||
using DTS.Common.Enums;
|
||||
using DTS.Common.Enums.Sensors;
|
||||
using DTS.Common.Interface.Sensors;
|
||||
using DTS.Common.Settings;
|
||||
using DTS.Slice.Users.UserSettings;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DTS.Common.Classes.Sensors;
|
||||
using DTS.Common.Storage;
|
||||
|
||||
namespace DTS.SensorDB
|
||||
{
|
||||
public class StreamOutputSettingDefaults : DTS.Common.Base.BasePropertyChanged, IStreamOutputSettingDefaults
|
||||
{
|
||||
private ISensorData _defaultStreamOutput;
|
||||
private bool _useAdvancedUDPStreamProfiles;
|
||||
|
||||
public UDPStreamProfile Profile { get => _defaultStreamOutput.StreamOutUDPProfile; set => _defaultStreamOutput.StreamOutUDPProfile = value; }
|
||||
public bool UseAdvancedUDPStreamProfiles
|
||||
{
|
||||
get => _useAdvancedUDPStreamProfiles;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _useAdvancedUDPStreamProfiles, value, "UseAdvancedUDPStreamProfiles");
|
||||
OnPropertyChanged("AvailableStreamOutUDPProfiles");
|
||||
if (!_useAdvancedUDPStreamProfiles && !AvailableStreamOutUDPProfiles.Contains(Profile))
|
||||
{
|
||||
//turned off advanced & current selection not in basic. set to first or default
|
||||
Profile = AvailableStreamOutUDPProfiles.FirstOrDefault();
|
||||
OnPropertyChanged("Profile");
|
||||
}
|
||||
}
|
||||
}
|
||||
public UDPStreamProfile[] AvailableStreamOutUDPProfiles => StreamOutputRecord.AvailableUDPStreamProfiles(DbOperations.GetConnectionDbVersion(), UseAdvancedUDPStreamProfiles);
|
||||
public string UDPAddress { get => _defaultStreamOutput.StreamOutUDPAddress; set => _defaultStreamOutput.StreamOutUDPAddress = value; }
|
||||
public ushort TimeChannelId { get => _defaultStreamOutput.StreamOutUDPTimeChannelId; set => _defaultStreamOutput.StreamOutUDPTimeChannelId = value; }
|
||||
public ushort DataChannelId { get => _defaultStreamOutput.StreamOutUDPDataChannelId; set => _defaultStreamOutput.StreamOutUDPDataChannelId = value; }
|
||||
public string TmNSConfig { get => _defaultStreamOutput.StreamOutUDPTmNSConfig; set => _defaultStreamOutput.StreamOutUDPTmNSConfig = value; }
|
||||
public ushort IRIGTimeDataPacketIntervalMs { get => _defaultStreamOutput.StreamOutIRIGTimeDataPacketIntervalMs; set => _defaultStreamOutput.StreamOutIRIGTimeDataPacketIntervalMs = value; }
|
||||
|
||||
public bool Validate()
|
||||
{
|
||||
if (!UDPAddress.ToLower().StartsWith("udp") || !Uri.IsWellFormedUriString(UDPAddress, UriKind.Absolute))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Common.Utils.Utils.IsTmNSString(TmNSConfig))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void CommitChange(StreamOutputSettingDefaults settingDefaults, int userID)
|
||||
{
|
||||
Defaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUDPStreamProfile, settingDefaults.Profile);
|
||||
Defaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUDPStreamAddress, settingDefaults.UDPAddress);
|
||||
Defaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUDPStreamTimeChannelId, settingDefaults.TimeChannelId);
|
||||
Defaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUDPStreamDataChannelId, settingDefaults.DataChannelId);
|
||||
Defaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUDPStreamTmNSConfig, settingDefaults.TmNSConfig);
|
||||
Defaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultIRIGTimeDataPacketIntervalMs, settingDefaults.IRIGTimeDataPacketIntervalMs);
|
||||
Defaults.SetUserSetting(userID, PropertyEnums.PropertyIds.DefaultUseAdvancedUDPStreamProfiles, settingDefaults.UseAdvancedUDPStreamProfiles);
|
||||
}
|
||||
|
||||
public static StreamOutputSettingDefaults GetStreamOutputSettingsDefault(int userID)
|
||||
{
|
||||
var sd = new SensorData()
|
||||
{
|
||||
StreamOutUDPProfile = (UDPStreamProfile)Enum.Parse(typeof(UDPStreamProfile), Defaults.GetUserSettingValueString(userID, PropertyEnums.PropertyIds.DefaultUDPStreamProfile)),
|
||||
StreamOutUDPAddress = Defaults.GetUserSettingValueString(userID, PropertyEnums.PropertyIds.DefaultUDPStreamAddress),
|
||||
StreamOutUDPTimeChannelId = (ushort)Defaults.GetUserSettingValueInt(userID, PropertyEnums.PropertyIds.DefaultUDPStreamTimeChannelId),
|
||||
StreamOutUDPDataChannelId = (ushort)Defaults.GetUserSettingValueInt(userID, PropertyEnums.PropertyIds.DefaultUDPStreamDataChannelId),
|
||||
StreamOutUDPTmNSConfig = Defaults.GetUserSettingValueString(userID, PropertyEnums.PropertyIds.DefaultUDPStreamTmNSConfig),
|
||||
StreamOutIRIGTimeDataPacketIntervalMs = (ushort)Defaults.GetUserSettingValueInt(userID, PropertyEnums.PropertyIds.DefaultIRIGTimeDataPacketIntervalMs),
|
||||
StreamOutTMATSIntervalMs = StreamOutputRecord.DEFAULT_TMATS_INTERVAL_MS
|
||||
};
|
||||
var useAdvancedUDPStreamProfiles = Defaults.GetUserSettingValueBool(userID, PropertyEnums.PropertyIds.DefaultUseAdvancedUDPStreamProfiles);
|
||||
return new StreamOutputSettingDefaults(sd, useAdvancedUDPStreamProfiles);
|
||||
}
|
||||
|
||||
|
||||
public static StreamOutputSettingDefaults GetStreamOutputSettingsDefault(string user)
|
||||
{
|
||||
var sd = SensorsCollection.SensorsList.GetSensorBySerialNumber(SensorConstants.TEST_SPECIFIC_STREAM_OUT_SERIAL);
|
||||
|
||||
return new StreamOutputSettingDefaults(sd, false);
|
||||
}
|
||||
|
||||
private StreamOutputSettingDefaults(SensorData sd, bool useAdvancedUDPStreamProfiles)
|
||||
{
|
||||
_defaultStreamOutput = sd;
|
||||
UseAdvancedUDPStreamProfiles = useAdvancedUDPStreamProfiles;
|
||||
}
|
||||
|
||||
public static void RestoreDefaults(IStreamOutputSettingDefaults sensorDefaults)
|
||||
{
|
||||
sensorDefaults.DataChannelId = StreamOutputRecord.DEFAULT_UDP_DATA_CHANNEL_ID;
|
||||
sensorDefaults.IRIGTimeDataPacketIntervalMs = StreamOutputRecord.DEFAULT_IRIG_TIME_DATA_PACKET_INTERVAL_MS;
|
||||
sensorDefaults.Profile = StreamOutputRecord.DEFAULT_UDP_PROFILE;
|
||||
sensorDefaults.TimeChannelId = StreamOutputRecord.DEFAULT_UDP_TIME_CHANNEL_ID;
|
||||
sensorDefaults.TmNSConfig = StreamOutputRecord.DEFAULT_UDPTMNS_CONFIG;
|
||||
sensorDefaults.UDPAddress = StreamOutputRecord.DEFAULT_UDP_ADDRESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user