182 lines
10 KiB
Markdown
182 lines
10 KiB
Markdown
|
|
---
|
||
|
|
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.*
|