Files
DP44/enriched-partialglm/Common/DTS.CommonCore/Interface/BuildTestSetup.md

126 lines
9.5 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.CommonCore/Interface/BuildTestSetup/IBuildTestSetup.cs
generated_at: "2026-04-16T12:17:19.769596+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5d29553a439a7fc1"
---
# Documentation: IBuildTestSetup
## 1. Purpose
The `IBuildTestSetup` interface defines a data contract for configuring a "Build Test Setup" within the DTS system. It appears to model the configuration state for a Data Acquisition System (DAS) test execution, encapsulating settings for hardware checks (voltage, squib resistance, sensors), data acquisition parameters (sampling rates, triggers), data export formats (CSV, HDF, ISO, etc.), and user interface behaviors. By inheriting from `INotifyPropertyChanged`, it is designed to support data-binding scenarios, likely for a configuration UI or view model where property changes must notify observers.
## 2. Public Interface
The interface contains the following members. All properties are read/write.
**Identification & Metadata**
* `string DASSerialNumber { get; set; }`: Serial number of the DAS unit.
* `string SetupName { get; set; }`: Name of the test setup configuration.
* `string SetupDescription { get; set; }`: Description of the test setup.
* `string LastModified { get; set; }`: Timestamp of the last modification.
* `string LastModifiedBy { get; set; }`: User who last modified the setup.
**Execution Modes & Timing**
* `string AutomaticMode { get; set; }`: Setting for automatic operation mode.
* `string AutomaticModeDelay { get; set; }`: Delay duration for automatic mode.
* `string RecordingMode { get; set; }`: Defines how recording is handled.
* `string SamplesPerSecond { get; set; }`: Sampling rate configuration.
* `string PreTriggerSeconds { get; set; }`: Duration of pre-trigger data capture.
* `string PostTriggerSeconds { get; set; }`: Duration of post-trigger data capture.
* `string NumberOfEvents { get; set; }`: Number of events to capture.
* `string WakeUpMotionTimeout { get; set; }`: Timeout setting for wake-up motion.
* `string Streaming { get; set; }`: Streaming configuration.
**User Interface & Behavior**
* `string ViewRealtime { get; set; }`: Flag/setting to view data in realtime.
* `string WarnOnBatteryFail { get; set; }`: Flag to warn if battery fails.
* `string StrictDiagnostics { get; set; }`: Enables strict diagnostic checks.
* `string RequireConfirmationOnErrors { get; set; }`: UI behavior for error handling.
* `string QuitTestWithoutWarning { get; set; }`: Flag to suppress quit warnings.
* `string CommonStatusLine { get; set; }`: Status line text.
* `string RealtimeCharts { get; set; }`: Configuration for realtime charts.
**Hardware Checks & Diagnostics**
* `string PerformArmChecklist { get; set; }`: Flag to perform arming checklist.
* `string CheckInputVoltage { get; set; }`: Enables input voltage check.
* `string CheckBatteryVoltage { get; set; }`: Enables battery voltage check.
* `string CheckSquibResistance { get; set; }`: Enables squib resistance check.
* `string MeasureSquibResistances { get; set; }`: Enables squib resistance measurement.
* `string CheckSensorIds { get; set; }`: Enables sensor ID verification.
* `string CheckStartEventLines { get; set; }`: Enables start event line checks.
* `string CheckTiltSensor { get; set; }`: Enables tilt sensor check.
* `string CheckTemperature { get; set; }`: Enables temperature check.
* `string RequireAllUnitsPassArmCheckList { get; set; }`: Validation rule for arming.
* `string PostTestDiagnostics { get; set; }`: Post-test diagnostic settings.
* `string CalibrationBehavior { get; set; }`: Defines calibration actions.
* `string TriggerCheckStep { get; set; }`: Trigger check configuration.
**Data Management (Download/ROI/Upload)**
* `string ROIDownload { get; set; }`: Region of Interest download setting.
* `string ViewROIDownload { get; set; }`: UI setting for viewing ROI downloads.
* `string DownloadAll { get; set; }`: Flag to download all data.
* `string ViewDownloadAll { get; set; }`: UI setting for viewing full downloads.
* `string ROIStart { get; set; }`: Start time/point for Region of Interest.
* `string ROIEnd { get; set; }`: End time/point for Region of Interest.
* `string DownloadFolder { get; set; }`: Target directory for downloads.
* `string UploadData { get; set; }`: Flag to enable data upload.
* `string UploadDataFolder { get; set; }`: Source directory for uploads.
**Export Configuration**
* `string Export { get; set; }`: General export setting.
* `string ExportFolder { get; set; }`: Destination directory for exports.
* `string ExportCh10FilteredEUDesired { get; set; }`: Export flag for filtered Ch10 EU data.
* `string ExportChryslerDDASDesired { get; set; }`: Export flag for Chrysler DDAS format.
* `string ExportCSVADCDesired { get; set; }`: Export flag for CSV ADC format.
* `string ExportCSVFilteredDesired { get; set; }`: Export flag for filtered CSV.
* `string ExportCSVMVDesired { get; set; }`: Export flag for CSV MV format.
* `string ExportCSVUnfilteredDesired { get; set; }`: Export flag for unfiltered CSV.
* `string ExportDiademADCDesired { get; set; }`: Export flag for Diadem ADC format.
* `string ExportHDFADCDesired { get; set; }`: Export flag for HDF ADC format.
* `string ExportHDFMVDesired { get; set; }`: Export flag for HDF MV format.
* `string ExportHDFUnfilteredDesired { get; set; }`: Export flag for unfiltered HDF.
* `string ExportISOFilteredDesired { get; set; }`: Export flag for filtered ISO format.
* `string ExportISOUnfilteredDesired { get; set; }`: Export flag for unfiltered ISO format.
* `string ExportRDFADCDesired { get; set; }`: Export flag for RDF ADC format.
* `string ExportTDASADCDesired { get; set; }`: Export flag for TDAS ADC format.
* `string ExportTDMSADCDesired { get; set; }`: Export flag for TDMS ADC format.
* `string ExportToyotaUnfilteredDesired { get; set; }`: Export flag for unfiltered Toyota format.
* `string ExportTSVFilteredDesired { get; set; }`: Export flag for filtered TSV.
* `string ExportTSVUnfilteredDesired { get; set; }`: Export flag for unfiltered TSV.
* `string ExportXLSXFilteredDesired { get; set; }`: Export flag for filtered XLSX.
* `string ExportXLSXUnfilteredDesired { get; set; }`: Export flag for unfiltered XLSX.
* `string ExportASCDesired { get; set; }`: Export flag for ASC format.
**Miscellaneous Configuration**
* `string AllowSensorIdToBlankChannel { get; set; }`: Permission setting for sensor IDs.
* `string ExcitationWarmupTimeMS { get; set; }`: Warmup time in milliseconds.
* `string UseLabDetails { get; set; }`: Flag to use lab details.
* `string UseCustomerDetails { get; set; }`: Flag to use customer details.
* `string UseTestEngineerDetails { get; set; }`: Flag to use test engineer details.
* `string AllowMissingSensors { get; set; }`: Permission to proceed with missing sensors.
* `string SuppressMissingSensorsWarning { get; set; }`: UI warning suppression.
* `string NotAllChannelsRealTime { get; set; }`: Setting regarding realtime channel limits.
* `string NotAllChannelsViewer { get; set; }`: Setting regarding viewer channel limits.
* `string UserTags { get; set; }`: User-defined tags for the setup.
* `string AutoArm { get; set; }`: Auto-arm feature setting.
**Complex Types**
* `List<GroupXMLClass> Groups { get; set; }`: A list of groups, presumably defining channel groups or sensor groupings, utilizing the `DTS.Common.XMLUtils.GroupXMLClass` type.
## 3. Invariants
* **INotifyPropertyChanged Contract:** Any class implementing `IBuildTestSetup` must implement the `PropertyChanged` event (from `System.ComponentModel`). Consumers expect this event to be raised when any of the string properties or the `Groups` list is modified.
* **String-based Values:** Despite many properties representing numeric values (e.g., `SamplesPerSecond`), boolean flags (e.g., `CheckInputVoltage`), or enumerations, the interface defines them strictly as `string`. Implementations may require parsing/validation logic to convert these to appropriate types for internal use.
## 4. Dependencies
* **System.ComponentModel:** Required for the `INotifyPropertyChanged` interface.
* **System.Collections.Generic:** Required for the `List` generic collection used by the `Groups` property.
* **DTS.Common.XMLUtils:** Required for the `GroupXMLClass` type used in the `Groups` property.
* **Consumers:** Unknown from the source alone, but likely includes ViewModels, Serializers (XML/JSON), and Test Configuration managers within the DTS ecosystem.
## 5. Gotchas
* **"Stringly-Typed" Configuration:** The interface uses `string` for almost all properties, including those that logically represent numbers (`ExcitationWarmupTimeMS`, `SamplesPerSecond`) or boolean flags (`AutoArm`, `CheckBatteryVoltage`). This suggests a lack of strong typing which could lead to runtime parsing errors or invalid state representation (e.g., setting `SamplesPerSecond` to "abc").
* **Commented-Out Properties:** The source contains several commented-out properties (e.g., `ExportFormat`, `ExportCh10UnfilteredEUDesired`, `ExportSomatFilteredDesired`). This indicates legacy features or deprecated export formats that were removed from the interface contract but not cleaned up, which may cause confusion regarding supported features.
* **Naming Inconsistencies:** Some export properties end in `Desired` (e.g., `ExportCSVADCDesired`), implying a request or preference, whereas others (like `Export`) do not. The semantic difference between `Export` and the specific `Export[Format]Desired` properties is not defined in the interface.