This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
using DTS.Common.Enums.Sensors;
namespace DTS.Common.Interface.Sensors.SensorSettingsModule
{
/// <summary>
/// describes settings sensor calibrations
/// </summary>
public interface ICalibrationPolicy
{
/// <summary>
/// the current selected calibration policy
/// </summary>
SensorConstants.SensorCalPolicy SelectedCalPolicy { get; set; }
/// <summary>
/// all available calibration policies
/// </summary>
SensorConstants.SensorCalPolicy [] AvailableSensorCalPolicies { get; }
/// <summary>
/// period in days before calibration is due to warn
/// </summary>
int WarningPeriod { get; set; }
/// <summary>
/// The current value for whether sensor cal interval starts after calibration or first use
/// </summary>
bool UseSensorFirstUseDate { get; set; }
/// <summary>
/// FB15758 Import/Export settings
/// </summary>
void ReadXML(System.Xml.XmlElement root);
void WriteXML(ref System.Xml.XmlWriter writer);
}
}

View File

@@ -0,0 +1,173 @@
using System.ComponentModel;
using DTS.Common.Converters;
using DTS.Common.Utils;
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
namespace DTS.Common
{
[TypeConverter(typeof(EnumDescriptionTypeConverter))]
public enum ClockSyncProfile : byte
{
[Description("ClockSyncProfile_None")]
None = 0,
[Description("ClockSyncProfile_Manual")]
Manual,
[Description("ClockSyncProfile_Slave_E2E")]
Slave_E2E,
[Description("ClockSyncProfile_Master_E2E")]
Master_E2E,
[Description("ClockSyncProfile_Auto_E2E")]
Auto_E2E,
[Description("ClockSyncProfile_Master_E2E_IRIG")]
Master_E2E_IRIG,
[Description("ClockSyncProfile_Master_E2E_IRIG_EXT_PPS")]
Master_E2E_IRIG_EXT_PPS,
[Description("ClockSyncProfile_Master_E2E_GPS")]
Master_E2E_GPS,
[Description("ClockSyncProfile_Master_E2E_GPS_EXT_PPS")]
Master_E2E_GPS_EXT_PPS,
[Description("ClockSyncProfile_Master_E2E_EXT_PPS")]
Master_E2E_EXT_PPS,
//[Description("ClockSyncProfile_Slave_P2P")]
//Slave_P2P = 12,
//[Description("ClockSyncProfile_Master_P2P")]
//Master_P2P,
//[Description("ClockSyncProfile_Auto_P2P")]
//Auto_P2P,
//[Description("ClockSyncProfile_Master_P2P_IRIG")]
//Master_P2P_IRIG,
//[Description("ClockSyncProfile_Master_P2P_IRIG_EXT_PPS")]
//Master_P2P_IRIG_EXT_PPS,
//[Description("ClockSyncProfile_Master_P2P_GPS")]
//Master_P2P_GPS,
//[Description("ClockSyncProfile_Master_P2P_GPS_EXT_PPS")]
//Master_P2P_GPS_EXT_PPS,
//[Description("ClockSyncProfile_Master_P2P_EXT_PPS")]
//Master_P2P_EXT_PPS,
[Description("ClockSyncProfile_IRIG")]
IRIG = 21,
[Description("ClockSyncProfile_IRIG_EXT_PPS")]
IRIG_EXT_PPS,
[Description("ClockSyncProfile_GPS")]
GPS,
[Description("ClockSyncProfile_GPS_EXT_PPS")]
GPS_EXT_PPS,
[Description("ClockSyncProfile_EXT_PPS")]
EXT_PPS,
//1PPS Out Profiles
[Description("ClockSyncProfile_Slave_E2E_PPS_OUT")]
Slave_E2E_PPS_OUT,
[Description("ClockSyncProfile_Master_E2E_PPS_OUT")]
Master_E2E_PPS_OUT,
[Description("ClockSyncProfile_IRIG_Master_E2E_PPS_OUT")]
IRIG_Master_E2E_PPS_OUT,
[Description("ClockSyncProfile_IRIG_PPS_OUT")]
IRIG_PPS_OUT = 32,
//Combinations that are possible in UI, but no device supports
[Description("ClockSyncProfile_PPS_OUT")]
PPS_OUT = 245,
[Description("ClockSyncProfile_GPS_PPS_OUT")]
GPS_PPS_OUT,
[Description("ClockSyncProfile_GPS_Master_E2E_PPS_OUT")]
GPS_Master_E2E_PPS_OUT,
[Description("ClockSyncProfile_GPS_EXT_PPS_PPS_OUT")]
GPS_EXT_PPS_PPS_OUT,
[Description("ClockSyncProfile_GPS_EXT_PPS_Master_E2E_PPS_OUT")]
GPS_EXT_PPS_Master_E2E_PPS_OUT,
[Description("ClockSyncProfile_EXT_PPS_PPS_OUT")]
EXT_PPS_PPS_OUT,
[Description("ClockSyncProfile_EXT_PPS_Master_E2E_PPS_OUT")]
EXT_PPS_Master_E2E_PPS_OUT,
[Description("ClockSyncProfile_IRIG_EXT_PPS_PPS_OUT")]
IRIG_EXT_PPS_PPS_OUT,
[Description("ClockSyncProfile_IRIG_EXT_PPS_Master_E2E_PPS_OUT")]
IRIG_EXT_PPS_Master_E2E_PPS_OUT,
[Description("ClockSyncProfile_Slave_E2E_Master_E2E_OUT")]
Slave_E2E_Master_E2E_OUT,
[Description("ClockSyncProfile_Slave_E2E_Master_E2E_PPS_OUT")]
Slave_E2E_Master_E2E_PPS_OUT,
}
[TypeConverter(typeof(EnumDescriptionTypeConverter))]
public enum InputClockSource : byte
{
[Description("InputClockSource_None")]
None = 0,
[Description("InputClockSource_PTP")]
PTP = (1 << 0),
[Description("InputClockSource_IRIG")]
IRIG = (1 << 1),
[Description("InputClockSource_GPS")]
GPS = (1 << 2),
[Description("InputClockSource_1PPS")]
OnePPS = (1 << 3),
[Description("InputClockSource_PTP_1PPS")]
PTP_OnePPS = (1 << 0) | (1 << 3),
[Description("InputClockSource_IRIG_1PPS")]
IRIG_OnePPS = (1 << 1) | (1 << 3),
[Description("InputClockSource_GPS_1PPS")]
GPS_OnePPS = (1 << 2) | (1 << 3),
}
[TypeConverter(typeof(EnumDescriptionTypeConverter))]
public enum OutputClockSource : byte
{
[Description("OutputClockSource_None")]
None = 0,
[Description("OutputClockSource_PTP")] // not a real setting. for UI purposes only.
PTP = 255,
[Description("OutputClockSource_PTP_OnePPS")] // not a real setting. for UI purposes only.
PTP_OnePPS = 254,
[Description("OutputClockSource_PTPMaster_E2E")]
PTPMasterE2E = (1 << 0),
[Description("OutputClockSource_PTPMaster_P2P")]
PTPMasterP2P = (1 << 0) | (1 << 2),
[Description("OutputClockSource_PTPBoundary_E2E")]
PTPBoundaryE2E = (1 << 1),
[Description("OutputClockSource_PTPBoundary_P2P")]
PTPBoundaryP2P = (1 << 1) | (1 << 2),
[Description("OutputClockSource_OnePPS")]
OnePPS = (1 << 3),
[Description("OutputClockSource_PTPMaster_E2E_OnePPS")]
PTPMasterE2E_OnePPS = (1 << 0) | (1 << 3),
[Description("OutputClockSource_PTPMaster_P2P_OnePPS")]
PTPMasterP2P_OnePPS = (1 << 0) | (1 << 2) | (1 << 3),
[Description("OutputClockSource_PTPBoundary_E2E_OnePPS")]
PTPBoundaryE2E_OnePPS = (1 << 1) | (1 << 3),
[Description("OutputClockSource_PTPBoundary_P2P_OnePPS")]
PTPBoundaryP2P_OnePPS = (1 << 1) | (1 << 2) | (1 << 3)
}
public class MasterClockSyncProfileItemsSource : ProfileSourceItemsSource
{
public override ItemCollection GetValues()
{
return FromProfiles(Constants.MasterProfiles);
}
}
public class SlaveClockSyncProfileItemsSource : ProfileSourceItemsSource
{
public override ItemCollection GetValues()
{
return FromProfiles(Constants.SlaveProfiles);
}
}
public abstract class ProfileSourceItemsSource : IItemsSource
{
protected ItemCollection FromProfiles(ClockSyncProfile[] profiles)
{
var values = new ItemCollection();
foreach (var profile in profiles)
{
values.Add(profile, Strings.Strings.ResourceManager.GetString(profile.GetEnumDescription()));
}
return values;
}
public virtual ItemCollection GetValues()
{
return FromProfiles(new ClockSyncProfile[] {});
}
}
}

View File

@@ -0,0 +1,6 @@
using DTS.Common.Base;
namespace DTS.Common.Interface.Sensors.SensorSettingsModule
{
public interface ISensorSettingsView : IBaseView { }
}

View File

@@ -0,0 +1,10 @@
using Microsoft.Practices.Prism.Modularity;
// ReSharper disable CheckNamespace
namespace DTS.Common.Interface
{
public interface IPSDReportModule : IModule
{
void StartSession(bool standalone, string pluginFolder = "");
}
}

View File

@@ -0,0 +1,35 @@
namespace DTS.Common.Interface.Sensors.SensorsList
{
/// <summary>
/// interface describing drag and drop payload when dragging from a sensor list
/// this is common interface between different sensor types
/// </summary>
public interface IDragAndDropItem
{
/// <summary>
/// serial name /setting name for sensor
/// </summary>
string SerialNumber { get; set; }
/// <summary>
/// database id associated with sensor (if any)
/// only ids >0 are valid
/// </summary>
int DatabaseId { get; set; }
/// <summary>
/// isocode associated with sensor
/// </summary>
string ISOCode { get; }
/// <summary>
/// iso channel name associated with sensor
/// </summary>
string ISOChannelName{ get; }
/// <summary>
/// user code associated with sensor
/// </summary>
string UserCode { get; }
/// <summary>
/// user channel name associated with sensor
/// </summary>
string UserChannelName { get; }
}
}