--- 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.