Files

132 lines
11 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/XMLUtils/TestSetupExportXML/TestSetups/TestSetup/Fields/FieldsXMLClass.cs
generated_at: "2026-04-16T03:23:35.267864+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "5d62bfce4b670b8f"
---
# Fields
### **Purpose**
The `FieldsXMLClass` serves as a data container for serializing and deserializing test setup configuration metadata to/from XML format within the DTS system. It encapsulates a comprehensive set of properties representing user-configurable settings for test execution—such as trigger behavior, recording parameters, diagnostics, export options, and metadata—without implementing any business logic itself. Its role is purely structural: to act as a Plain Old CLR Object (POCO) that mirrors the schema of XML elements used in test setup persistence, enabling round-trip conversion between in-memory configuration and XML representation.
---
### **Public Interface**
All members are public auto-implemented properties of type `string`. No methods, constructors, or events are defined.
| Property Name | Type | Description |
|---------------|------|-------------|
| `SetupName` | `string` | Name of the test setup. |
| `SetupDescription` | `string` | Human-readable description of the test setup. |
| `AutomaticTestProgression` | `string` | Indicates whether automatic progression between test steps is enabled. |
| `AutomaticProgressionDelayMS` | `string` | Delay (in milliseconds) before automatic progression after a step completes. |
| `InvertTrigger` | `string` | Whether the trigger signal is logically inverted. |
| `InvertStart` | `string` | Whether the start signal is logically inverted. |
| `IgnoreShortedStart` | `string` | Whether to ignore start events caused by a shorted start input. |
| `IgnoreShortedTrigger` | `string` | Whether to ignore trigger events caused by a shorted trigger input. |
| `ViewDiagnostics` | `string` | Whether diagnostics are displayed during test execution. |
| `VerifyChannels` | `string` | Whether channel verification is enabled. |
| `AutoVerifyChannels` | `string` | Whether channel verification runs automatically. |
| `VerifyChannelsDelayMS` | `string` | Delay (in ms) before channel verification begins. |
| `RecordingMode` | `string` | Mode of data acquisition (e.g., continuous, event-triggered). |
| `SamplesPerSecond` | `string` | Sampling rate for data acquisition. |
| `PreTriggerSeconds` | `string` | Duration (in seconds) of data recorded *before* a trigger event. |
| `PostTriggerSeconds` | `string` | Duration (in seconds) of data recorded *after* a trigger event. |
| `NumberOfEvents` | `string` | Maximum number of events to record per test. |
| `WakeUpMotionTimeout` | `string` | Timeout (in seconds) for motion-based wake-up. |
| `ScheduledStartDateTime` | `string` | ISO 8601 or similar formatted datetime string for scheduled test start. |
| `IntervalBetweenEventStartsMinutes` | `string` | Minimum interval (in minutes) between consecutive event starts. |
| `StartWithEvent` | `string` | Whether the test starts automatically upon the first event. |
| `WakeUpWithMotion` | `string` | Whether motion detection is used to wake the system. |
| `StrictDiagnostics` | `string` | Whether diagnostics failures should halt test execution. |
| `RequireConfirmationOnErrors` | `string` | Whether operator confirmation is required before proceeding after an error. |
| `ROIDownload` | `string` | Whether Regions of Interest (ROI) are included in downloads. |
| `ViewROIDownload` | `string` | Whether ROI download settings are visible in the UI. |
| `DownloadAll` | `string` | Whether all data (not just ROI) is downloaded. |
| `ViewRealtime` | `string` | Whether real-time plotting is enabled. |
| `RealtimePlotCount` | `string` | Number of channels to display in real-time plots. |
| `ROIStart` | `string` | Start time (in seconds) of the ROI window relative to trigger. |
| `ROIEnd` | `string` | End time (in seconds) of the ROI window relative to trigger. |
| `ViewDownloadAll` | `string` | Whether the “Download All” option is visible in the UI. |
| `Export` | `string` | Whether post-test export is enabled. |
| `ExportFormat` | `string` | Format identifier for exported data (e.g., CSV, HDF5). |
| `LabDetails` | `string` | Serialized lab metadata (e.g., JSON string or XML fragment). |
| `UseLabDetails` | `string` | Whether lab details are included in reports. |
| `CustomerDetails` | `string` | Serialized customer metadata. |
| `UseCustomerDetails` | `string` | Whether customer details are included in reports. |
| `AllowMissingSensors` | `string` | Whether the test may proceed if some sensors are missing. |
| `AllowSensorIdToBlankChannel` | `string` | Whether a sensor ID may be assigned to an unconfigured (blank) channel. |
| `ExcitationWarmupTimeMS` | `string` | Warm-up delay (in ms) for excitation circuits before measurement. |
| `LocalOnly` | `string` | Whether the test runs without network connectivity. |
| `LastModified` | `string` | Timestamp of last modification (ISO 8601 format expected). |
| `LastModifiedBy` | `string` | User identifier of the last modifier. |
| `TurnOffExcitation` | `string` | Whether excitation is disabled after test completion. |
| `TriggerCheckRealtime` | `string` | Whether trigger validation occurs in real time. |
| `TriggerCheckStep` | `string` | Whether trigger validation occurs at a specific step. |
| `PostTestDiagnostics` | `string` | Whether diagnostics run after test completion. |
| `ExportFolder` | `string` | Directory path for exported files. |
| `DownloadFolder` | `string` | Directory path for downloaded data. |
| `CommonStatusLine` | `string` | Shared status message displayed across UI components. |
| `SameAsDownloadFolder` | `string` | Whether export folder is identical to download folder. |
| `UploadData` | `string` | Whether acquired data is uploaded post-test. |
| `UploadDataFolder` | `string` | Remote path or identifier for data upload destination. |
| `UploadExportsOnly` | `string` | Whether only exported files (not raw data) are uploaded. |
| `Settings` | `string` | Arbitrary serialized settings (e.g., JSON or XML). |
| `WarnOnBatteryFail` | `string` | Whether to warn if battery voltage drops below threshold. |
| `Dirty` | `string` | Whether the setup has unsaved changes. |
| `Complete` | `string` | Whether the test setup is fully configured and ready to run. |
| `ErrorMessage` | `string` | Last recorded error message. |
| `TestEngineerDetails` | `string` | Serialized test engineer metadata. |
| `UseTestEngineerDetails` | `string` | Whether test engineer details are included in reports. |
| `UserTags` | `string` | User-defined tags (e.g., comma-separated list or JSON array). |
| `DoAutoArm` | `string` | Whether auto-arming is enabled (e.g., for squib circuits). |
| `DoEnableRepeat` | `string` | Whether repeated test execution is enabled. |
| `DoStreaming` | `string` | Whether streaming mode is active. |
| `CheckoutMode` | `string` | Whether the system is in checkout/verification mode. |
| `QuitTestWithoutWarning` | `string` | Whether to suppress warnings when exiting a test prematurely. |
| `SuppressMissingSensorsWarning` | `string` | Whether to suppress warnings about missing sensors. |
| `ISFFile` | `string` | Path or identifier for the ISF (Instrument Setup File). |
| `NotAllChannelsRealTime` | `string` | Whether not all channels support real-time monitoring. |
| `NotAllChannelsViewer` | `string` | Whether not all channels are visible in the viewer. |
| `CalibrationBehavior` | `string` | Strategy for handling calibration data (e.g., “UseStored”, “Prompt”). |
| `ClockSyncProfileMaster` | `string` | Identifier for the clock synchronization profile used by master devices. |
| `ClockSyncProfileSlave` | `string` | Identifier for the clock synchronization profile used by slave devices. |
| `ExtraProperties` | `string` | Additional custom properties (e.g., JSON object). |
| `MeasureSquibResistancesStep` | `string` | Step index or name where squib resistance measurement occurs. |
| `TestSetupUniqueId` | `string` | Globally unique identifier (GUID) for the test setup instance. |
> **Note**: All properties are declared as `string`, even those that conceptually represent booleans, numbers, or structured data. This implies that serialization/deserialization logic (outside this class) is responsible for parsing and validating values.
---
### **Invariants**
No explicit invariants are enforced by this class. However, based on naming conventions and typical usage patterns in XML serialization contexts:
- **All properties are nullable**: Since they are auto-properties without initialization, any property may be `null`.
- **No semantic validation**: The class does not validate values (e.g., `AutomaticProgressionDelayMS` may contain non-numeric strings).
- **No ordering guarantees**: Property order in XML serialization depends on the serializer (e.g., `System.Xml.Serialization.XmlSerializer` typically preserves declaration order, but this is not guaranteed by the class itself).
- **No cross-property consistency checks**: For example, `ExportFolder` and `SameAsDownloadFolder` are independent; the class does not enforce that `ExportFolder == DownloadFolder` when `SameAsDownloadFolder == "true"`.
---
### **Dependencies**
- **Dependencies *of* this module**:
- `System`, `System.Collections.Generic`, `System.Linq`, `System.Text`, `System.Threading.Tasks` (standard .NET libraries).
- No external or project-specific dependencies are imported in this file.
- **Dependencies *on* this module**:
- The commented-out line `//public RegionsOfInterestXMLClass RegionsOfInterest { get; set; }` suggests a former or planned relationship with `RegionsOfInterestXMLClass`, implying that other parts of the codebase likely reference this type.
- Given the namespace `DTS.Common.XMLUtils`, this class is almost certainly used by XML serialization/deserialization utilities (e.g., a `TestSetupSerializer` class) elsewhere in the `DTS.Common.XMLUtils` namespace or related modules.
---
### **Gotchas**
- **All values are strings**: Critical business logic (e.g., parsing `AutomaticProgressionDelayMS` as an integer, interpreting `Dirty`/`Complete` as booleans) must be handled externally. This increases the risk of runtime parsing errors if the consumer assumes a specific format.
- **No validation or default values**: Consumers must handle missing or malformed data (e.g., `SamplesPerSecond = "NaN"`).
- **Commented-out property**: The commented-out `RegionsOfInterest` property indicates incomplete or deprecated functionality. Its removal may have been intentional (e.g., refactoring), but its presence in source could confuse developers about current data model scope.
- **Ambiguous boolean/numeric representation**: Properties like `Dirty`, `Complete`, `AllowMissingSensors` are strings—consumers must agree on expected values (e.g., `"true"/"false"`, `"1"/"0"`, `"Yes"/"No"`).
- **No documentation on expected formats**: For fields like `ScheduledStartDateTime`, `LastModified`, or `TestSetupUniqueId`, the expected string format (e.g., ISO 8601, ticks, GUID) is not specified in this class and must be inferred from usage elsewhere.
- **No immutability or encapsulation**: Public setters and lack of constructor initialization make accidental mutation or inconsistent state easy.