init
This commit is contained in:
@@ -0,0 +1,315 @@
|
||||
using DTS.Common.Interface.DASFactory.Config;
|
||||
|
||||
namespace DTS.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// different variables to optimize or change the behavior of das factory based on whether a test
|
||||
/// is currently executing or not
|
||||
/// </summary>
|
||||
public abstract class RunTestVariables
|
||||
{
|
||||
public static bool TestSetupIdPrefill { get; set; } = false;
|
||||
public static bool IsTSRAIRGo { get; set; } = false;
|
||||
/// <summary>
|
||||
/// the delay in seconds before arm/record in auto arm recording modes
|
||||
/// http://manuscript.dts.local/f/cases/43048/Support-Delay-to-arm-record-with-power-on-with-autoarm-enabled
|
||||
/// </summary>
|
||||
public static int AutoArmRecordDelaySeconds { get; set; } = 1;
|
||||
public static string DbName { get; set; } = "DataPRO";
|
||||
/// <summary>
|
||||
/// whether to show ADC unsigned or not
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool ShowADCUnsigned { get; set; } = false;
|
||||
/// <summary>
|
||||
/// The realtime sample rate for TDAS
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static double RealtimeSampleRateTDAS { get; set; } = 1000;
|
||||
/// <summary>
|
||||
/// The default udp stream time channel id
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int DefaultUDPStreamTimeChannelId { get; set; } = 1;
|
||||
/// <summary>
|
||||
/// the default udp stream data channel id
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int DefaultUDPStreamDataChannelId { get; set; } = 3;
|
||||
/// <summary>
|
||||
/// the default irig time data packet interval in ms
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int DefaultIRIGTimeDataPacketIntervalMs { get; set; } = 1000;
|
||||
/// <summary>
|
||||
/// the default udp stream tmns config property as a string
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static string DefaultUDPStreamTmNSConfig { get; set; } = "";
|
||||
/// <summary>
|
||||
/// The ISO view mode
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static IsoViewMode ISOViewMode { get; set; } = IsoViewMode.ISOOnly;
|
||||
/// <summary>
|
||||
/// the realtime level trigger percentage
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static double RealtimeLevelTriggerPercentage { get; set; } = 100;
|
||||
/// <summary>
|
||||
/// the realtime level trigger beep interval in ms
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int RealtimeLevelTriggerBeepIntervalMS { get; set; } = 10;
|
||||
/// <summary>
|
||||
/// the realtime level trigger beep count
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int RealtimeLevelTriggerBeepCount { get; set; } = 10;
|
||||
/// <summary>
|
||||
/// whether to auto advance in realtime level trigger
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool RealtimeLevelTriggerAutoAdvance { get; set; } = false;
|
||||
/// <summary>
|
||||
/// how long to freeze after a level trigger in realtime in seconds
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int RealtimeLevelTriggerFreezeTimeSec { get; set; } = 3;
|
||||
/// <summary>
|
||||
/// whether to require completion of realtime level trigger checks or not
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool RealtimeLevelTriggerRequireCheckCompletion { get; set; } = false;
|
||||
/// <summary>
|
||||
/// realtime level trigger qualifying number of samples for a level trigger
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int RealtimeLevelTriggerQualifyingSamples { get; set; } = 5;
|
||||
/// <summary>
|
||||
/// whether to beep in realtime level trigger while idle
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool RealtimeLevelTriggerIdleBeep { get; set; } = false;
|
||||
/// <summary>
|
||||
/// realtime level trigger idle beep interval in ms
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int RealtimeLevelTriggerIdleBeepIntervalMS { get; set; } = 1000;
|
||||
/// <summary>
|
||||
/// whether to use realtime in metermode table mode
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool UseMeterModeTable { get; set; } = false;
|
||||
/// <summary>
|
||||
/// whether to save realtime snapshots to clipboard or not
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool SaveSnapshotToClipboard { get; set; } = false;
|
||||
/// <summary>
|
||||
/// the default UDP stream address
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static string RealtimeUDPStreamAddress { get; set; } = "";
|
||||
/// <summary>
|
||||
/// whether to use UDP for realtime streaming
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool UseUDPStreaming { get; set; } = false;
|
||||
/// <summary>
|
||||
/// the number of realtime charts to show
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static int NumberOfRealtimeCharts { get; set; } = 6;
|
||||
/// <summary>
|
||||
/// realtime sample rate for SLICE6
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static double RealtimeSampleRateSLICE6 { get; set; } = 1000;
|
||||
/// <summary>
|
||||
/// realtime sample rate
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static double RealtimeSampleRate { get; set; } = 1000;
|
||||
/// <summary>
|
||||
/// realtime sample rate for USB SLICE
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static double RealtimeSampleRateUSBSLICE { get; set; } = 1000;
|
||||
public static double RealtimeSampleRateEthSLICE { get; set; } = 120;
|
||||
/// <summary>
|
||||
/// default realtime chart width in seconds
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static double ChartWidthInSeconds { get; set; } = 2;
|
||||
/// <summary>
|
||||
/// whether to enable dynamic realtime optimization
|
||||
/// This is just a property to hold the value during run test
|
||||
/// http://manuscript.dts.local/f/cases/33110/Eliminate-DB-communication-while-in-realtime
|
||||
/// </summary>
|
||||
public static bool EnableDynamicRealtimeOptimization { get; set; } = false;
|
||||
/// <summary>
|
||||
/// the number of ADC samples per data packet
|
||||
/// http://manuscript.dts.local/f/cases/31754/
|
||||
/// </summary>
|
||||
public static int ADCSamplesPerPacket { get; set; } = 100;
|
||||
/// <summary>
|
||||
/// whether to remove leap seconds from streaming timestamps
|
||||
/// note that this property does not retrieve the setting from the database, and only holds the value
|
||||
/// between operations, it must be updated separately
|
||||
/// </summary>
|
||||
public static bool RemoveLeapSeconds { get; set; } = false;
|
||||
/// <summary>
|
||||
/// whether to output reports in XLSM format or XLSX
|
||||
/// 20152 DataPRO Test Summary Preview - .xlsm support
|
||||
/// note that Test Summary is the only one requested so far, so that's the only one we do
|
||||
/// </summary>
|
||||
public static bool OutputXLSMReports { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 43731 [SW] NFR - DataPRO - Allow users to turn off sensor ID reading
|
||||
/// this property controls whether EIDs are disabled in run test tabs
|
||||
/// It does not retrieve the setting, only holds the property between processes
|
||||
/// </summary>
|
||||
public static bool DisableEIDs { get; set; } = false;
|
||||
public static bool BypassEIDRead
|
||||
{
|
||||
get => DisableEIDs && InRunTest;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// controls whether to mask EU meta data when streaming
|
||||
/// 25597 Add option in System Settings to populate TMATs without offset values or scalefactors; "Stream without EU Metadata in TMATs"
|
||||
/// does not query setting, only holds the setting in memory for use
|
||||
/// across modules
|
||||
/// </summary>
|
||||
public static bool MaskEUMetaData { get; set; } = false;
|
||||
/// <summary>
|
||||
/// the protocol version S6 are assumed to be when running a test (protocol version not queried)
|
||||
/// </summary>
|
||||
public static byte AssumedProtocolVersionForSlice6InRunTest { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// whether to query cal date when running a test
|
||||
/// </summary>
|
||||
public static bool QueryCalDateInRunTest { get; set; } = false;
|
||||
/// <summary>
|
||||
/// whether currently running a test or not
|
||||
/// </summary>
|
||||
public static bool InRunTest { get; set; } = false;
|
||||
/// <summary>
|
||||
/// whether to query connected devices when running a test or not
|
||||
/// </summary>
|
||||
public static bool QueryConnectedDevicesInRunTest { get; set; } = false;
|
||||
/// <summary>
|
||||
/// the minimum time between different ATDs when connecting
|
||||
/// </summary>
|
||||
public static int PerBucketOffsetMS { get; set; } = 2000;
|
||||
/// <summary>
|
||||
/// the maximum time variance within the bucket itself for an ATD (so 2000, 1000 means all units in ATD2 should have their chance to start between 2 and 3s)
|
||||
/// </summary>
|
||||
public static int BucketVariance { get; set; } = 1000;
|
||||
/// <summary>
|
||||
/// performance improvement possibility, skip QueryProtocolVersion in RunTest and just
|
||||
/// assume the protocol version of devices
|
||||
/// a value of -1 means the version will still be queried
|
||||
/// </summary>
|
||||
public static byte Assumed_S6DB_ProtocolVersion = 13;
|
||||
/// <summary>
|
||||
/// performance improvement, skip QueryBaseHardwareRevision and use this assumed value in RunTest
|
||||
/// a value of -1 means it will be queried anyhow
|
||||
/// </summary>
|
||||
public static int AssumedBaseHardwareRevisionSLICE6 = 0;
|
||||
/// <summary>
|
||||
/// performance improvement, skip QueryBaseType in RunTest for S6 and just use this value as the
|
||||
/// assumed base type, a value of -1 means it will be queried anyhow
|
||||
/// </summary>
|
||||
public static int AssumeBaseTypeSLICE6 = 6;
|
||||
/// <summary>
|
||||
/// performance improvement, skip QueryEventData in run test or not
|
||||
/// </summary>
|
||||
public static bool OptimizeQueryEventData = true;
|
||||
/// <summary>
|
||||
/// performance improvement, skip setting polarity in run test
|
||||
/// </summary>
|
||||
public static bool DontSetPolarityInRunTest = false;
|
||||
/// <summary>
|
||||
/// performance improvement, whether to cache voltage settings in runtest
|
||||
/// rather than always retrieving from db
|
||||
/// </summary>
|
||||
public static bool CacheVoltageSettingsInRunTest = true;
|
||||
/// <summary>
|
||||
/// performance improvment, skip getting TiltSensorScaleFactor from S6
|
||||
/// as they aren't currently calibrated and use the same scalefactor
|
||||
/// </summary>
|
||||
public static float TiltSensorScaleFactor = 0.0009765625F;
|
||||
/// <summary>
|
||||
/// performance improvment, whether to check for autoarmed in runtest or not
|
||||
/// </summary>
|
||||
public static bool CheckForAutoArmedInRunTest = true;
|
||||
/// <summary>
|
||||
/// performance, whether to avoid executing PrepareDataCollection when arming
|
||||
/// [per LP since arming does same work]
|
||||
/// </summary>
|
||||
public static bool EliminatePrepareForDataCollection = true;
|
||||
/// <summary>
|
||||
/// performance improvement, whether to check hardware first use date in run test
|
||||
/// </summary>
|
||||
public static bool CheckHardwareFirstUseDateInRunTest = true;
|
||||
|
||||
/// <summary>
|
||||
/// The current value for how long to wait for excitation warmup for a TOM
|
||||
/// http://manuscript.dts.local/f/cases/39396/TOM-diagnostic-delay-not-being-observed
|
||||
/// </summary>
|
||||
public static int TOMExcitationWarmupTimeMS = TOM_EXCITATIONWARMUPTIME_MS;
|
||||
/// <summary>
|
||||
/// default value for TOM excitation warmup time in ms
|
||||
/// </summary>
|
||||
public const int TOM_EXCITATIONWARMUPTIME_MS = 20000;
|
||||
|
||||
public static int IEPEExcitationWamupTimeMS = IEPE_EXCITATIONWARMUPTIME_MS;
|
||||
public const int IEPE_EXCITATIONWARMUPTIME_MS = 30000;
|
||||
|
||||
/// <summary>
|
||||
/// initiales all channels to have no EIDs
|
||||
/// </summary>
|
||||
/// <param name="configData"></param>
|
||||
public static void BlankIds(IConfigurationData configData)
|
||||
{
|
||||
if (null == configData) { return; }
|
||||
if (null == configData.Modules || 0 == configData.Modules.Length) { return; }
|
||||
foreach (var module in configData.Modules)
|
||||
{
|
||||
if (null == module.Channels || 0 == module.Channels.Length) { continue; }
|
||||
foreach (var channel in module.Channels)
|
||||
{
|
||||
channel.IDs = new IEID[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using DTS.Common.Interface.Sensors.SoftwareFilters;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DTS.Common.Interface.Sensors
|
||||
{
|
||||
//FB 13120 new interface to support filter class mapping settings
|
||||
public interface IAnalogDefaults
|
||||
{
|
||||
/// <summary>
|
||||
/// the current selected default filter
|
||||
/// </summary>
|
||||
IFilterClass SelectedFilterOption { get; set; }
|
||||
/// <summary>
|
||||
/// all available filters
|
||||
/// </summary>
|
||||
List<IFilterClass> FilterOptions { get; }
|
||||
|
||||
//FB 18727 Setting to use MeasuredExcitation or not
|
||||
bool UseMeasuredExcitation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// indicates whether the setting is valid or not
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
bool Validate();
|
||||
void Save();
|
||||
|
||||
/// <summary>
|
||||
/// FB15758 Import/Export settings
|
||||
/// </summary>
|
||||
void ReadXML(System.Xml.XmlElement root);
|
||||
void WriteXML(ref System.Xml.XmlWriter writer);
|
||||
bool TrackAnalogDiagnosticsEnabled { get; }
|
||||
|
||||
//http://manuscript.dts.local/f/cases/39148/DataPRO-Instrumentation-Tracking-Functions-FAA-Request-Diagnostics-Tracking
|
||||
bool TrackAnalogDiagnostics { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using DTS.Common.Enums;
|
||||
using System;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace DTS.Common.Converters
|
||||
{
|
||||
public class StatusToColorConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
|
||||
{
|
||||
if (!(value is UIItemStatus itemStatus))
|
||||
{
|
||||
return Brushes.Transparent;
|
||||
}
|
||||
switch (itemStatus)
|
||||
{
|
||||
case UIItemStatus.None: return Brushes.Black;
|
||||
case UIItemStatus.Success: return BrushesAndColors.Brush_ApplicationStatus_Complete;
|
||||
case UIItemStatus.Failed: return BrushesAndColors.Brush_ApplicationStatus_Failed;
|
||||
case UIItemStatus.Error: return Brushes.Red;
|
||||
case UIItemStatus.Warning: return Brushes.OrangeRed;
|
||||
}
|
||||
return Brushes.Black;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
|
||||
namespace DTS.Common.Classes.DSP
|
||||
{
|
||||
/// <summary>
|
||||
/// generic attribute to store doubles, so for say scalers or ratios
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Enum | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Field, AllowMultiple = false)]
|
||||
public class ScalerAttribute : Attribute
|
||||
{
|
||||
public double Scaler { get; set; }
|
||||
|
||||
public ScalerAttribute(double d)
|
||||
{
|
||||
Scaler = d;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using Prism.Events;
|
||||
|
||||
namespace DTS.Common.Events
|
||||
{
|
||||
/// <summary>
|
||||
/// The TabControlSelectionChanged event.
|
||||
/// </summary>
|
||||
///
|
||||
/// <remarks>This event has to be used by the TabControl to indicate that its tab has been changed.</remarks>
|
||||
///
|
||||
public class TabControlSelectionChanged : PubSubEvent<TabControlSelectionEventArgs> { }
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using Prism.Events;
|
||||
|
||||
namespace DTS.Common.Events
|
||||
{
|
||||
/// <summary>
|
||||
/// Event to inform app that it should mark itself busy or available
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
public class PageSelectionChanged : PubSubEvent<PageSelectionChangedArg> { }
|
||||
|
||||
public class PageSelectionChangedArg
|
||||
{
|
||||
public object Page { get; }
|
||||
|
||||
public int Count { get; }
|
||||
|
||||
public PageSelectionChangedArg(int count, object page)
|
||||
{
|
||||
Page = page;
|
||||
Count = count;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,280 @@
|
||||
using System.Collections.Generic;
|
||||
using DTS.Common.Enums;
|
||||
using DTS.Common.Enums.DASFactory;
|
||||
using DTS.Common.SharedResource.Strings;
|
||||
|
||||
namespace DTS.Common
|
||||
{
|
||||
public static class Constants
|
||||
{
|
||||
public const int GETARMSTATUS_TIMEOUT = 30000;
|
||||
public static readonly string[] ACCELERATION_UNITS = new[] { "g", "msec", "m/sec", "m/sec^2", "m/s^2" };
|
||||
public const string ROI_TAG = "ROI";
|
||||
public const string ALL_TAG = "ALL";
|
||||
public const string DAS_TEST_SETUPS = "DASTestSetup";
|
||||
public const int MINIMUM_VOLTAGE_INSERTION_RANGE_MV_SLICE = 10;
|
||||
/// <summary>
|
||||
/// Senstivity change tolerance percent default value
|
||||
/// </summary>
|
||||
public const double SENSITIVITY_CHANGE_TOLERANCE_PERCENT_DEFAULT = 5D;
|
||||
/// <summary>
|
||||
/// The max zoom to apply to a graph if the data in the graph does not meet the zoom ranges. This is specified as % full scale
|
||||
/// (of capacity)
|
||||
/// so for 2400 EU if the graph is a flat line the max over or under of the plot would be 24 units.
|
||||
/// http://manuscript.dts.local/f/cases/29416/Limit-view-of-TSR-AIR-data-to-2-of-full-scale-in-auto-range-mode
|
||||
/// these variables already existed, I just abstracted them to a common spot from two disparate spots
|
||||
/// </summary>
|
||||
public const double GRAPH_MIN_AUTOZOOM = 0.01D;
|
||||
/// <summary>
|
||||
/// The max zoom to apply to a graph. This is specified as % full scale (of signal)
|
||||
/// http://manuscript.dts.local/f/cases/29416/Limit-view-of-TSR-AIR-data-to-2-of-full-scale-in-auto-range-mode
|
||||
/// these variables already existed, I just abstracted them to a common spot from two disparate spots
|
||||
/// </summary>
|
||||
public const double GRAPH_MAX_AUTOZOOM = 1.2D;
|
||||
/// <summary>
|
||||
/// whether to check status line while doing realtime polling
|
||||
/// http://manuscript.dts.local/f/cases/27067/
|
||||
/// </summary>
|
||||
public static bool CheckStatusLinesInRealtime { get; set; } = true;
|
||||
/// <summary>
|
||||
/// sleep time between chart updates
|
||||
/// http://manuscript.dts.local/f/cases/27067/
|
||||
/// </summary>
|
||||
public static int UpdateIntervalRealtimeCharts { get; set; } = 100;
|
||||
public const string USB = "USB";
|
||||
public const string BACKUP_HEADER_EXTENSION = ".header.bak";
|
||||
public const string BACKUP_FILE_EXTENSION = ".bak";
|
||||
public const string DAS_CONFIGS = "DASConfigs";
|
||||
public const double UNUSED_START_TIME = 0;
|
||||
public const int UNUSED_DATA_COLLECTION_LENGTH = 0;
|
||||
public const int MAX_USER_CHANNEL_NAME_LENGTH = 100;
|
||||
public const string REPORT_DIR_NAME = "Reports";
|
||||
public const string REPORT_TEMPLATE_DIR_NAME = "ReportTemplates";
|
||||
public const string TEMP_FILE_EXTENSION = ".tmp";
|
||||
public const string UDP_STREAM_CH10_TF2 = "2HDR";
|
||||
public const string EventNumber = "_Event Number";
|
||||
public const string CHANNEL_FILE_EXTENSION = ".chn";
|
||||
public const string BINARY_FILE_EXTENSION = ".bin";
|
||||
public const string BINARY = "Binary";
|
||||
public const string ALL = "ALL";
|
||||
public const string CURRENT_SUFFIX = "_CU";
|
||||
public const string MESSAGEBOXBUTTON_OK = "MessageBoxButton_OK";
|
||||
/// <summary>
|
||||
/// This is the string _ROI_PERIOD - I'm using it when calculating extra space that might be needed
|
||||
/// for downloading when you have multiple ROI
|
||||
/// </summary>
|
||||
public const string ROI_PERIOD = "_ROI Period";
|
||||
public const string UseMeasuredExcitation = "UseMeasuredExcitation";
|
||||
public const int TRACK_ANALOG_DIAGNOSTICS_DB_VERSION = 98;
|
||||
// http://manuscript.dts.local/f/cases/39470/Add-UI-for-configurable-option-to-allow-UDP-aligning-to-PPS
|
||||
public const int ALIGNUDPTOPPS_DB_VERSION = 98;
|
||||
public const string TrackAnalogDiagnostics = "TrackAnalogDiagnostics";
|
||||
public const string SensorAssembly = "SensorAssembly";
|
||||
public const string ManualsFolder = "Manuals";
|
||||
public const string WindowsExplorer = "explorer.exe";
|
||||
|
||||
//FB 23926 Moved to constants
|
||||
public const string NoValue = "NOVALUE";
|
||||
|
||||
public const string ISO_CH_ONLY_PREFIX = "__ISO_CH_ONLY__";
|
||||
|
||||
//FB 25526 Moved from SLICE6AIR so they can be used by multiple classes
|
||||
public const uint XML_HEADER_LENGTH = 8;
|
||||
public readonly static byte[] XML_STORE_MAGIC_BYTES = new byte[] { 0xAA, 0x55, 0xA5, 0x5A };
|
||||
public const ushort FILE_STORE_DSP_FILTER_ID = 104;
|
||||
public const byte DEVICE_STREAMING_ONLY = 1;
|
||||
|
||||
/// <summary>
|
||||
///FB 28107 Maximum value allowed for TDAS Tom Digital out duration
|
||||
/// </summary>
|
||||
public const double TDAS_TOM_DIGITAL_OUT_DURATION_MAX = 1600;
|
||||
|
||||
/// <summary>
|
||||
/// bps = (32bit + 6x16bit) * sampling rate. Our PCM data payload is 128bit per minor frame
|
||||
/// </summary>
|
||||
public const int BITS_PER_MINOR_FRAME_S6A = 128;
|
||||
//bps = (32 + 18*16)*sampling rate for TSR AIR - per EF
|
||||
//[2:14 PM] Eric Fizer should be 18 * 16bit +32bit frame sync, no?
|
||||
public const int BITS_PER_MINOR_FRAME_TSRAIR = 320;
|
||||
|
||||
/// <summary>
|
||||
/// FB15339 DACs are 16-bit, so midpoint ADC value would be 2^15 - 1
|
||||
/// </summary>
|
||||
public const int ADC_MIDPOINT = 32767;
|
||||
/// <summary>
|
||||
/// timeout supplied to ping_ICMP
|
||||
/// 14735 Updates for GM Process flow, time improvement and bug fix
|
||||
/// max time in MS to wait for an individual ping attempt
|
||||
/// </summary>
|
||||
public static int PING_ICMP_TIMEOUT { get; set; } = 500;
|
||||
/// <summary>
|
||||
/// 14966 AAF Realtime rate if we're turning off AAFRealtime via the config file
|
||||
/// </summary>
|
||||
public const float SLICE2_NO_AAF_REALTIME_RATE = 100000F;
|
||||
/// <summary>
|
||||
/// FB15313 Configure S6A udp streaming
|
||||
/// </summary>
|
||||
public const int UDP_STREAMPROFILES_MAX = 15;
|
||||
/// <summary>
|
||||
/// FB15323 Restrict Sample Rates when in UART recording modes
|
||||
/// </summary>
|
||||
public const int UART_MODE_MAX_SAMPLERATE = 30000;
|
||||
/// <summary>
|
||||
/// FB30273 Implement 'Warning' Validation for Streaming sample rate greater than 10k when Digital Filtering is configured
|
||||
/// </summary>
|
||||
public const int SLICE6AIR_STREAMING_DIGITAL_FILTERING_MAX_SAMPLERATE = 10000;
|
||||
public const int SLICE6AIR_STREAMING_DIGITAL_FILTERING_MAX_SAMPLERATE_20k = 20000;
|
||||
public const int SLICE6AIR_20K_DIGITAL_FILTER_MIN_PROTOCOL = 46;
|
||||
/// <summary>
|
||||
/// max sample rate that digital filtering will reliably work for S6A F/W version 46 and beyond
|
||||
/// http://manuscript.dts.local/f/cases/39106/Datapro-shouldnt-be-warning-about-digital-filter-availability-until-20k-sps
|
||||
/// </summary>
|
||||
public const decimal NANOS_PER_SECOND = 1000000000m;
|
||||
public const double TEN_MILLIS_IN_SEC = 0.01D;
|
||||
/// <summary>
|
||||
/// Wait timeout for 3rd party executables
|
||||
/// </summary>
|
||||
public const int EXECUTABLE_TIMEOUT = 30000;
|
||||
/// <summary>
|
||||
/// FB15154 Restrict Clock Master & Clock Slave Test Setup Default profile selections
|
||||
/// </summary>
|
||||
public static readonly ClockSyncProfile[] MasterProfiles = { ClockSyncProfile.None,
|
||||
ClockSyncProfile.Manual,
|
||||
ClockSyncProfile.Master_E2E,
|
||||
ClockSyncProfile.Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.Master_E2E_IRIG,
|
||||
ClockSyncProfile.IRIG_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.IRIG_PPS_OUT,
|
||||
ClockSyncProfile.Master_E2E_IRIG_EXT_PPS,
|
||||
ClockSyncProfile.Master_E2E_GPS_EXT_PPS,
|
||||
ClockSyncProfile.Master_E2E_EXT_PPS,
|
||||
ClockSyncProfile.IRIG,
|
||||
ClockSyncProfile.IRIG_EXT_PPS,
|
||||
ClockSyncProfile.GPS_EXT_PPS,
|
||||
ClockSyncProfile.EXT_PPS,
|
||||
//Combinations that are possible in UI, but no device supports
|
||||
//30487: GPS only clock sync option should be removed
|
||||
// also clean up available selections in TSD
|
||||
/*ClockSyncProfile.PPS_OUT,
|
||||
ClockSyncProfile.GPS,
|
||||
ClockSyncProfile.GPS_PPS_OUT,
|
||||
ClockSyncProfile.GPS_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.GPS_EXT_PPS_PPS_OUT,
|
||||
ClockSyncProfile.GPS_EXT_PPS_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.EXT_PPS_PPS_OUT,
|
||||
ClockSyncProfile.EXT_PPS_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.IRIG_EXT_PPS_PPS_OUT,
|
||||
ClockSyncProfile.IRIG_EXT_PPS_Master_E2E_PPS_OUT,*/
|
||||
};
|
||||
public static readonly ClockSyncProfile[] SlaveProfiles = { ClockSyncProfile.None,
|
||||
ClockSyncProfile.Manual,
|
||||
ClockSyncProfile.Slave_E2E,
|
||||
ClockSyncProfile.Slave_E2E_PPS_OUT,
|
||||
//Combinations that are possible in UI, but no device supports
|
||||
//30487: also clean up available selections in TSD
|
||||
/*ClockSyncProfile.Auto_E2E,
|
||||
ClockSyncProfile.Slave_E2E_Master_E2E_OUT,
|
||||
ClockSyncProfile.Slave_E2E_Master_E2E_PPS_OUT,*/
|
||||
};
|
||||
public static readonly ClockSyncProfile[] OnePPSOutProfiles = { ClockSyncProfile.Slave_E2E_PPS_OUT,
|
||||
ClockSyncProfile.Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.IRIG_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.IRIG_PPS_OUT,
|
||||
//Combinations that are possible in UI, but no device supports
|
||||
ClockSyncProfile.PPS_OUT,
|
||||
ClockSyncProfile.GPS_PPS_OUT,
|
||||
ClockSyncProfile.GPS_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.GPS_EXT_PPS_PPS_OUT,
|
||||
ClockSyncProfile.GPS_EXT_PPS_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.EXT_PPS_PPS_OUT,
|
||||
ClockSyncProfile.EXT_PPS_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.IRIG_EXT_PPS_PPS_OUT,
|
||||
ClockSyncProfile.IRIG_EXT_PPS_Master_E2E_PPS_OUT,
|
||||
ClockSyncProfile.Slave_E2E_Master_E2E_PPS_OUT,
|
||||
};
|
||||
/// <summary>
|
||||
/// FB15520 Restrict Recording Mode Test Setup Default selections to non-streaming
|
||||
/// FB39190 Also restrict multiple-event variants of regular modes
|
||||
/// FB39189 Add scheduled
|
||||
/// </summary>
|
||||
public static readonly RecordingModes[] NonStreamingRecordingModes = { RecordingModes.CircularBuffer, RecordingModes.CircularBufferPlusUART, RecordingModes.CircularBufferAndStreamSubSample,
|
||||
RecordingModes.Recorder, RecordingModes.RecorderPlusUART, RecordingModes.RecorderAndStreamSubSample,
|
||||
RecordingModes.HybridRecorder, RecordingModes.HybridAndStream, RecordingModes.ContinuousRecorder, RecordingModes.ContinuousRecorderPlusUART,
|
||||
RecordingModes.RAMActive, RecordingModes.RecordOnBoot, RecordingModes.RecordOnBootPlusUART,
|
||||
RecordingModes.Active, RecordingModes.Scheduled
|
||||
};
|
||||
/// <summary>
|
||||
/// 17650 sanitize name output for certain exports
|
||||
/// </summary>
|
||||
public static readonly Dictionary<string, string> ExportNameFilters = new Dictionary<string, string> { { "(Voltage)", "Voltage" }, { "(Current)", "Current" } };
|
||||
|
||||
public const string DUMMY_MOD_DESCRIP_S6DB = "slice6db module";
|
||||
public const string DUMMY_MOD_DESCRIP_POWERPRO = "powerpro module";
|
||||
public const uint MaxAAFilterRateHz = 200000;
|
||||
|
||||
public const int PSD_DEFAULT_MAX_POW10 = 0;
|
||||
public const int PSD_DEFAULT_MIN_POW10 = -12;
|
||||
public const string ISOTestInfo = "_";
|
||||
|
||||
/// <summary>
|
||||
/// 18361 NMEA data exports
|
||||
/// 28173 NMEA additional data
|
||||
/// </summary>
|
||||
public const string NMEA_GPRMC_HEADER = "$GPRMC";
|
||||
public const int NMEA_GPRMC_TIME_POSN = 1;
|
||||
public const int NMEA_GPRMC_VALID_POSN = 2;
|
||||
public const int NMEA_GPRMC_LAT_POSN = 3;
|
||||
public const int NMEA_GPRMC_LAT_LEN = 9;
|
||||
public const int NMEA_GPRMC_LATD_POSN = 4;
|
||||
public const int NMEA_GPRMC_LONG_POSN = 5;
|
||||
public const int NMEA_GPRMC_LONG_LEN = 10;
|
||||
public const int NMEA_GPRMC_LONGD_POSN = 6;
|
||||
public const int NMEA_GPRMC_VELO_POSN = 7;
|
||||
public const int NMEA_GPRMC_DIR_POSN = 8;
|
||||
public const int NMEA_GPRMC_DATE_POSN = 9;
|
||||
public const string NMEA_GPGGA_HEADER = "$GPGGA";
|
||||
public const int NMEA_GPGGA_TIME_POSN = 1;
|
||||
public const int NMEA_GPGGA_VALID_POSN = 6;
|
||||
public const int NMEA_GPGGA_ALT_POSN = 9;
|
||||
public const int NMEA_GPGGA_ALTU_POSN = 10;
|
||||
|
||||
public const int ROITables_DB_VERSION = 92;
|
||||
public const int EnableRepeat_DB_VERSION = 92;
|
||||
public const int IgnoreShorted_DB_VERSION = 92;
|
||||
public const int ONEPPS_OUT_DB_VERSION = 92;
|
||||
public const int UNIX_EPOCH_TIME = 93;
|
||||
//http://manuscript.dts.local/f/cases/29987/Add-CG-DP-TMATS-interval-UI-support
|
||||
public const int TMATS_INTERVAL_VERSION = 93;
|
||||
//FB 29978 Allowed directory & file name in Windows
|
||||
public const int ALLOWED_DOWNLOAD_FILE_LENGTH = 260;
|
||||
public const int ALLOWED_DOWNLOAD_DIRECTORY_LENGTH = 248;
|
||||
public const int ADC_TO_UART_DB_VERSION = 93;
|
||||
public const int SLICE6AIR_BR_DB_VERSION = 95;
|
||||
public const int PTP_DOMAIN_ID_DB_VERSION = 95;
|
||||
public const int BULK_GROUPCHANNELSETTINGS_GET_DB_VERSION = 95;
|
||||
// 35514 Multiple-event UART support
|
||||
public const int MULTIPLE_EVENT_UART_DB_VERSION = 96;
|
||||
public const int RECORD_ON_BOOT_VERSION = 96;
|
||||
public const int TSRAIR_GO_VERSION = 97;
|
||||
public const int ROIPERIODCHANNELS_CHANNELID_DB_VERSION = 98;
|
||||
public const int SENSOR_ASSEMBLY_DB_VERSION = 98;
|
||||
public const int ALLOW_INSPECT_BEFORE_USE_DB_VERSION = 98;
|
||||
public const int SLICE_TC_DB_VERSION = 99;
|
||||
/// <summary>
|
||||
/// 38048 maximum points for a Viewer graph
|
||||
/// </summary>
|
||||
public const int MAX_VIEWER_POINTS = 45000000;
|
||||
|
||||
public const double LOWEST_NONZERO_TSR_AIR_PRETRIGGER_SECONDS = 0.0128D;
|
||||
private static string scheduleStartTimeError = string.Format(StringResources.EditTestSetupPage_ScheduleMustBeInFuture, DFConstantsAndEnums.SCHEDULE_AHEAD_IN_MINUTES);
|
||||
public static string ScheduleStartTimeError
|
||||
{
|
||||
get => scheduleStartTimeError;
|
||||
}
|
||||
private static string intervalError = string.Format(StringResources.EditTestSetupPage_EventLengthTooLong, DFConstantsAndEnums.TIME_TO_REARM_SECONDS);
|
||||
public static string IntervalError
|
||||
{
|
||||
get => intervalError;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user