Files
2026-04-17 14:55:32 -04:00

10 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/BuildTestSetup/IBuildTestSetup.cs
2026-04-16T02:22:58.506403+00:00 Qwen/Qwen3-Coder-Next-FP8 1 5d29553a439a7fc1

BuildTestSetup

Purpose

This module defines the IBuildTestSetup interface, which serves as the contract for build/test configuration data in the DTS (Data Acquisition and Test System) framework. It encapsulates a comprehensive set of user-configurable parameters governing test execution behavior—such as device identification, acquisition settings, diagnostic checks, export formats, and upload/download behavior—enabling serialization, UI binding, and runtime configuration of test setups. As it extends INotifyPropertyChanged, it is designed for data-binding scenarios (e.g., UI forms) where real-time updates to configuration changes are required.


Public Interface

All members are properties; no methods are declared in this interface.

Core Metadata Properties

  • string DASSerialNumber { get; set; }
    Serial number of the DAS (Data Acquisition System) unit under test.
  • string SetupName { get; set; }
    Human-readable name for the test setup instance.
  • string SetupDescription { get; set; }
    Optional descriptive text for the setup.
  • string LastModified { get; set; }
    Timestamp (as string) of the last modification to the setup.
  • string LastModifiedBy { get; set; }
    Identifier (e.g., username) of the last modifier.

Test Execution Control Properties

  • string AutomaticMode { get; set; }
    Enables/disables automatic test mode.
  • string AutomaticModeDelay { get; set; }
    Delay (as string) before automatic mode starts.
  • string AutoArm { get; set; }
    Enables/disables automatic arming of the test.
  • string QuitTestWithoutWarning { get; set; }
    If true, permits exiting the test without user confirmation.
  • string Streaming { get; set; }
    Enables/disables streaming mode (continuous data acquisition).
  • string UploadData { get; set; }
    Enables/disables post-test data upload.
  • string UploadDataFolder { get; set; }
    Target folder path for uploaded data.
  • string DownloadFolder { get; set; }
    Folder path for downloading test data.

Diagnostic & Safety Checks

  • string WarnOnBatteryFail { get; set; }
    Triggers warning if battery check fails.
  • string StrictDiagnostics { get; set; }
    Enforces strict diagnostic compliance (e.g., abort on minor failures).
  • string RequireConfirmationOnErrors { get; set; }
    Requires user confirmation before proceeding after an error.
  • string PerformArmChecklist { get; set; }
    Enables/disables the pre-arm checklist.
  • string RequireAllUnitsPassArmCheckList { get; set; }
    If true, all units must pass the checklist before arming.
  • string CheckInputVoltage { get; set; }
    Enables input voltage check during diagnostics.
  • string CheckBatteryVoltage { get; set; }
    Enables battery voltage check.
  • string CheckSquibResistance { get; set; }
    Enables squib (pyro) resistance check.
  • string MeasureSquibResistances { get; set; }
    Explicitly enables squib resistance measurement (distinct from check).
  • string CheckSensorIds { get; set; }
    Enables sensor ID validation.
  • string CheckStartEventLines { get; set; }
    Validates start event line states.
  • string CheckTiltSensor { get; set; }
    Enables tilt sensor diagnostics.
  • string CheckTemperature { get; set; }
    Enables temperature sensor diagnostics.
  • string TriggerCheckStep { get; set; }
    Enables/disables a dedicated trigger verification step.
  • string PostTestDiagnostics { get; set; }
    Enables diagnostics run after test completion.

Data Acquisition Configuration

  • string ViewRealtime { get; set; }
    Enables/disables real-time data visualization.
  • string RecordingMode { get; set; }
    Specifies recording mode (e.g., continuous, event-triggered).
  • string SamplesPerSecond { get; set; }
    Sampling rate (as string).
  • string PreTriggerSeconds { get; set; }
    Duration of pre-trigger buffer (seconds).
  • string PostTriggerSeconds { get; set; }
    Duration of post-trigger buffer (seconds).
  • string NumberOfEvents { get; set; }
    Maximum number of events to record.
  • string WakeUpMotionTimeout { get; set; }
    Timeout (seconds) for motion-based wake-up detection.
  • string AllowSensorIdToBlankChannel { get; set; }
    If true, permits mapping sensor IDs to blank/unconfigured channels.
  • string ExcitationWarmupTimeMS { get; set; }
    Warm-up delay (ms) for sensor excitation before acquisition.
  • string UseTestEngineerDetails { get; set; }
    If true, embeds test engineer identity in output data.

ROI (Region of Interest) & Download Settings

  • string ROIDownload { get; set; }
    Enables ROI-based data download.
  • string ViewROIDownload { get; set; }
    Enables ROI download visualization.
  • string ROIStart { get; set; }
    Start time (as string, likely seconds) for ROI.
  • string ROIEnd { get; set; }
    End time (as string) for ROI.

Export Configuration

  • string Export { get; set; }
    Enables/disables data export.
  • string ExportFolder { get; set; }
    Output directory for exported files.
  • string UseLabDetails { get; set; }
    If true, includes lab-specific metadata in exports.
  • string UseCustomerDetails { get; set; }
    If true, includes customer-specific metadata in exports.
  • string UserTags { get; set; }
    Custom tags to embed in exported data.
  • string CalibrationBehavior { get; set; }
    Controls calibration application during export (e.g., raw, calibrated).
  • string SuppressMissingSensorsWarning { get; set; }
    Suppresses warnings for missing sensors during export.
  • string NotAllChannelsRealTime { get; set; }
    Indicates not all channels are available in real-time (affects UI/logic).
  • string NotAllChannelsViewer { get; set; }
    Indicates not all channels are available in post-processing viewer.
  • string AllowMissingSensors { get; set; }
    Permits test completion despite missing sensors.
Export Format Flags

Each Export*Desired property is a string flag indicating whether a specific export format is requested.

  • ExportCh10FilteredEUDesired, ExportChryslerDDASDesired, ExportCSVADCDesired, ExportCSVFilteredDesired, ExportCSVMVDesired, ExportCSVUnfilteredDesired, ExportDiademADCDesired, ExportHDFADCDesired, ExportHDFMVDesired, ExportHDFUnfilteredDesired, ExportISOFilteredDesired, ExportISOUnfilteredDesired, ExportRDFADCDesired, ExportTDASADCDesired, ExportTDMSADCDesired, ExportToyotaUnfilteredDesired, ExportTSVFilteredDesired, ExportTSVUnfilteredDesired, ExportXLSXFilteredDesired, ExportXLSXUnfilteredDesired, ExportASCDesired
    Boolean-like string values (e.g., "True"/"False") indicating inclusion of the respective export format.
    Note: Several commented-out properties (e.g., ExportCh10UnfilteredEUDesired, ExportHDFFilteredDesired) suggest historical or deprecated formats.

Grouping & UI

  • List<GroupXMLClass> Groups { get; set; }
    Collection of GroupXMLClass objects defining logical groupings of channels or tests.
  • string CommonStatusLine { get; set; }
    Shared status message displayed across UI components.

Invariants

  • All properties are string-typed, even those logically representing booleans (e.g., "True"/"False") or numbers (e.g., "1000" for SamplesPerSecond). Parsing is deferred to consumers.
  • Groups must be non-null when accessed; implementations must initialize it (e.g., in constructor) to avoid NullReferenceException.
  • INotifyPropertyChanged compliance: Any change to a property must raise PropertyChanged with the correct property name.
  • No validation is enforced by the interface itself; validation rules (e.g., numeric range checks) are implemented externally.
  • Commented-out properties are not part of the interface and must not be assumed to exist.

Dependencies

  • Direct Dependencies:
    • System.ComponentModel (for INotifyPropertyChanged).
    • System.Collections.Generic (for List<T>).
    • DTS.Common.XMLUtils (specifically GroupXMLClass, used in the Groups property).
  • Inferred Consumers:
    • UI layers (e.g., WPF/WinForms) binding to this interface for configuration forms.
    • Serialization/deserialization modules (e.g., XML/JSON converters) that persist/load IBuildTestSetup instances.
    • Test execution engine that reads properties to configure acquisition, diagnostics, and export pipelines.
  • Inferred Dependents:
    • Implementations (e.g., BuildTestSetup class) in the same or related modules.
    • XML serialization utilities (via GroupXMLClass dependency) for saving/loading setups.

Gotchas

  • String-based booleans/numbers: Consumers must parse values (e.g., bool.Parse(Export)) and handle format exceptions—no built-in type safety.
  • Deprecated export formats: Commented-out properties (e.g., ExportSomatFilteredDesired) indicate legacy formats no longer supported; avoid referencing them.
  • Ambiguous semantics: Properties like AutomaticMode and RecordingMode lack documentation on valid values (e.g., "On", "Auto", "Manual"); these must be inferred from implementation or external docs.
  • No validation guarantees: The interface does not enforce constraints (e.g., SamplesPerSecond must be numeric), leading to potential runtime errors if consumers assume validity.
  • CommonStatusLine purpose unclear: Its role as a shared status string suggests UI coordination, but its lifecycle (e.g., who sets/updates it) is not defined here.
  • Missing ExportFormat property: The commented-out ExportFormat suggests a previous unified format selector, now replaced by per-format flags—potential source of confusion during migration.

None identified beyond the above.