Files
DP44/enriched-partialglm/Common/DTS.Common.Import.md
2026-04-17 14:55:32 -04:00

66 lines
4.1 KiB
Markdown

---
source_files:
- Common/DTS.Common.Import/ImportError.cs
- Common/DTS.Common.Import/ParseProcessor.cs
- Common/DTS.Common.Import/TsetSetupImportSensorInfo.cs
- Common/DTS.Common.Import/CsvUtil.cs
- Common/DTS.Common.Import/ImportNotification.cs
- Common/DTS.Common.Import/XMLParseProcessor.cs
- Common/DTS.Common.Import/CalibrationImport.cs
- Common/DTS.Common.Import/GroupHelper.cs
- Common/DTS.Common.Import/ImportObject.cs
generated_at: "2026-04-16T11:29:51.864320+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e94d77a26e8f0798"
---
# Documentation: DTS.Common.Import
## 1. Purpose
The `DTS.Common.Import` namespace provides the infrastructure for parsing and importing test configuration data (sensors, calibrations, groups, test setups) into the system. It defines `ImportObject` as the central data transfer object that accumulates state during the import process. The module includes orchestration processors for handling files (CSV and XML), utility classes for data normalization and calibration logic, and notification mechanisms to report progress and errors to the UI or calling application.
## 2. Public Interface
### Classes
#### `ImportObject`
The primary state container for an import operation. It holds collections of sensors, calibrations, hardware, groups, and lookup dictionaries.
* **Properties**:
* `SourceFormat`: Gets or sets the `ImportFormats` enum value.
* `TestSetupImportFileFormat`: Gets or sets the `ImportFileFormat` (Single, Multiple, No TestSetup).
* **Methods**:
* `AddSensor(SensorData sensorData)` / `AddSensors(IEnumerable<SensorData> sensorsData)`: Adds sensors to the import list.
* `AddCalibration(SensorCalibration sensorCalibration)` / `AddCalibrations(...)`: Adds calibration records.
* `AddTestSetup(TestTemplate testTemplate)` / `AddTestSetups(...)`: Adds test setups.
* `AddError(ImportError d)` / `AddErrors(IEnumerable<ImportError> d)`: Registers import errors.
* `AssignParseParameters(ParseParameters parseParameters)`: Assigns parameters used during parsing.
* `GetSensorLookup()`: Returns a `IReadOnlyDictionary<int, ISensorData>` mapped by `DatabaseId`. Logs duplicates to `System.Diagnostics.Trace`.
* `GetImportFileFormat()`: Returns `ImportFileFormat` based on the count of test setups.
#### `ParseProcessor`
Orchestrates the parsing of files using a list of `IParseVariant` implementations.
* **Constructor**: `ParseProcessor(ImportObject importObject, IEnumerable<string> fileNames, IEnumerable<IParseVariant> parseVariants)`
* **Methods**:
* `Process()`: Iterates through `fileNames` and `parseVariants`, executing `variant.Parse(ref _importObject)`. Returns the modified `ImportObject`.
#### `XMLParseProcessor`
Orchestrates XML file parsing with progress notification and cancellation support.
* **Constructor**: `XMLParseProcessor(ImportObject importObject, IImportNotification importNotification, IEnumerable<string> fileNames, Func<bool> isCancelled, bool skipNormalizing)`
* **Properties**:
* `UIItems`: List of `IUIItems` used by the parser factory.
* **Methods**:
* `Process()`: Invokes `XmlParserFactory.CreateXMLParsers`, executes parsing, and reports progress via `IImportNotification`. Progress is calculated based on the sum of counts of various imported entities (Calibrations, Sensors, Groups, etc.).
#### `CalibrationImport`
Implements `ICalibrationImport` to manipulate sensor calibration data.
* **Methods**:
* `CheckForExcitationCalibration(SensorCalibration sc, ...)`: Adds a new `CalibrationRecord` if the excitation type does not match the first record.
* `AddLinearCalRecordIfNeeded(SensorCalibration sc, ...)`: If only one record exists, adds a second linear record and adjusts `IsProportional`/`RemoveOffset` flags.
* `AddLinearZeroMethodIfNeeded(SensorCalibration sc, ...)`: Adds a second `ZeroMethod` if only one exists.
#### `CsvUtil`
Static utility class for CSV file handling.
* **Methods**:
* `CreateCsvReader(string filename)`: Creates a `CsvReader` wrapping a `StreamReader` for the given file.