Files

182 lines
10 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.CommonCore/Interface/BuildTestSetup/IBuildTestSetup.cs
generated_at: "2026-04-16T02:22:58.506403+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "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.*