--- source_files: - Common/DTS.CommonCore/Interface/TestSetups/ITestSetupsView.cs - Common/DTS.CommonCore/Interface/TestSetups/ITestSetupsViewModel.cs - Common/DTS.CommonCore/Interface/TestSetups/ITestDASOrder.cs - Common/DTS.CommonCore/Interface/TestSetups/IROIPeriodChannelRecord.cs - Common/DTS.CommonCore/Interface/TestSetups/ITestSetupHardwareRecord.cs - Common/DTS.CommonCore/Interface/TestSetups/ITestSetupROIRecord.cs - Common/DTS.CommonCore/Interface/TestSetups/ICalculatedChannelRecord.cs - Common/DTS.CommonCore/Interface/TestSetups/IISFFile.cs generated_at: "2026-04-16T12:21:25.334372+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "f7166919537b0724" --- # Documentation: DTS.Common.Interface.TestSetups ## 1. Purpose This module defines the interface contracts for the TestSetups domain within the DTS (Data Test System) application. It provides abstractions for test configuration data including hardware setup records, Region of Interest (ROI) definitions, calculated channel configurations, and ISF (Instrument Setup File) file format handling. The module supports the MVVM architectural pattern through view/view model interfaces and establishes data contracts for database records and legacy file format interoperability. --- ## 2. Public Interface ### ITestSetupsView **Namespace:** `DTS.Common.Interface` **Inheritance:** `IBaseView` Marker interface for test setups view. No members defined. --- ### ITestSetupsViewModel **Namespace:** `DTS.Common.Interface` **Inheritance:** `IBaseViewModel` Marker interface for test setups view model. No members defined. --- ### ITestDASOrder **Namespace:** `DTS.Common.Interface.TestSetups` Allows DAS (Data Acquisition System) ordering within a test setup. | Property | Type | Access | |----------|------|--------| | `DASIndex` | `int` | get/set | --- ### IROIPeriodChannelRecord **Namespace:** `DTS.Common.Interface.TestSetups` Describes a record in the ROIPeriodChannels table. | Property | Type | Access | |----------|------|--------| | `TestSetupROIId` | `int` | get/set | | `ChannelName` | `string` | get/set | --- ### ITestSetupHardwareRecord **Namespace:** `DTS.Common.Interface.TestSetups` Describes hardware records for test setup configuration. | Property | Type | Access | |----------|------|--------| | `DASId` | `int` | get/set | | `TestSetupId` | `int` | get/set | | `AddDAS` | `bool` | get/set | | `SamplesPerSecond` | `int` | get/set | | `IsClockMaster` | `bool` | get/set | | `AntiAliasFilterRate` | `int` | get/set | | `PTPDomainId` | `byte` | get/set | --- ### ITestSetupROIRecord **Namespace:** `DTS.Common.Interface.TestSetups` Describes a record in the TestSetupROIs table. | Property | Type | Access | |----------|------|--------| | `TestSetupROIId` | `int` | get/set | | `TestSetupId` | `int` | get/set | | `Suffix` | `string` | get/set | | `ROIStart` | `double` | get/set | | `ROIEnd` | `double` | get/set | | `IsEnabled` | `bool` | get/set | | `IsDefault` | `bool` | get/set | --- ### Operations (Enum) **Namespace:** `DTS.Common.Interface.TestSetups` Defines calculation operations for calculated channels. Uses `EnumDescriptionTypeConverter` for localized descriptions via `DescriptionResource` attributes. | Member | Value | Description Resource Key | |--------|-------|--------------------------| | `SUM` | 1 | "CalculatedChannel_Sum" | | `AVERAGE` | 2 | "CalculatedChannel_Average" | | `IRTRACC3D` | 3 | "CalculatedChannel_IRTRACC3D_Thorax" | | `IRTRACC3D_ABDOMEN` | 4 | "CalculatedChannel_IRTRACC3D_Abdomen" | | `IRTRACC3D_LOWERTHORAX` | 5 | "CalculatedChannel_IRTRACC3D_LowerThorax" | | `Resultant` | 6 | "CalculatedChannel_Resultant" | | `HIC` | 7 | "HIC" | --- ### ICalculatedChannelRecord **Namespace:** `DTS.Common.Interface.TestSetups` Describes a calculated channel record in the database. | Property | Type | Access | Description | |----------|------|--------|-------------| | `Name` | `string` | get/set | Channel name | | `TestSetupName` | `string` | get/set | Test setup name | | `Id` | `int` | get/set | Database record ID | | `Operation` | `Operations` | get/set | Operation to apply to input channels | | `CalculatedValueCode` | `string` | get/set | ISO or user code for calculated channel | | `InputChannelIds` | `string[]` | get/set | Array of channel IDs that are inputs for calculation | | `CFCForInputChannels` | `string` | get/set | CFC (Channel Filter Class) to apply to inputs prior to calculation | | `ChannelFilterClassForOutput` | `string` | get/set | CFC to apply to output of calculation | | `TestSetupId` | `int` | get/set | Database ID for test setup record | | `ViewInRealtime` | `bool` | get/set | Whether channel can be viewed in realtime | | `ClipLength` | `int` | get/set | Clip length for calculations (e.g., max over clip) | --- ### IISFFile **Namespace:** `DTS.Common.Interface.TestSetups` Defines the ISF (Instrument Setup File) file structure with fixed-width records. | Property | Type | Access | Position/Length | |----------|------|--------|-----------------| | `HeaderLine1` | `char[]` | get/set | 80 bytes (RECORD_LENGTH) | | `TestSetupName` | `char[]` | get/set | 8 characters, starting at character 7 | | `NumberOfRecords` | `short` | get | 5 characters, starting at character 15 | | `TestType` | `char[]` | get/set | 22 characters, starting at character 20 | | `TestDivision` | `char[]` | get/set | 30 characters, starting at character 42 | | `TCFile` | `char[]` | get/set | 8 characters, starting at character 72 (without .TCF extension) | | `HeaderLine2` | `char[]` | get/set | 80 bytes (currently unused) | | `HeaderLine3` | `char[]` | get/set | 80 bytes (currently unused) | | `Records` | `IISFSensorRecord[]` | get | Sensor records array | | Method | Signature | Description | |--------|-----------|-------------| | `AddRecord` | `void AddRecord(IISFSensorRecord record)` | Adds a record and updates record count | | `WriteToFile` | `void WriteToFile(string pathToFile)` | Writes the ISF file to disk | | `AddSensors` | `void AddSensors(ISensorData[] sensors)` | Adds sensors to the file | --- ### IISFSensorRecord **Namespace:** `DTS.Common.Interface.TestSetups` Defines a sensor record within an ISF file (4 records of 80 bytes each). | Property | Type | Position/Length | |----------|------|-----------------| | `Record1` | `char[]` | 80 bytes (RECORD_LENGTH) | | `Tag` | `char[]` | 2 characters, starting at character 75 | | `DataChannelNumber` | `char[]` | 5 characters, starting at character 7 | | `UserIdSensorIDIsNotSpecified` | `bool` | 1 character, starting at character 15 | | `CapacityCharacters` | `char[]` | 11 characters, starting at character 19 | | `SerialNumber` | `char[]` | 12 characters, starting at character 30 | | `Sensitivity` | `char[]` | 11 characters, starting at character 42 (Sensitivity/1000 V, or c0 for polynomial) | | `BridgeResistance` | `char[]` | 11 characters, starting at character 53 | | `Record2` | `char[]` | 80 bytes (RECORD_LENGTH) | | `EngineeringUnits` | `char[]` | 12 characters, starting at character 7 of record 2 | | `C1` | `char[]` | 11 characters, starting at character 20 of record 2 | | `EID` | `char[]` | 17 characters, starting at character 31 of record 2 | | `Unknown1` | `char[]` | 4 characters, starting at character 49 of record 2 | | `Unknown2` | `char[]` | 2 characters, starting at character 53 of record 2 | | `FireDelay` | `char[]` | 11 characters, starting at character 55 (TOM only, sensor type TI) | | `TOMConfigurationName` | `char[]` | 8 characters, starting at character 66 | | `Record3` | `char[]` | 80 bytes (RECORD_LENGTH) | | `CommentPart1` | `char[]` | 15 characters, starting at character 14 of record 3 | | `CommentPart2` | `char[]` | 40 characters, starting at character 33 of record 3 | | `Record4` | `char[]` | 80 bytes (RECORD_LENGTH) | | `CommentPart3` | `char[]` | 15 characters, starting at character 12 of record 4 | | `SensorType` | `char[]` | 20 characters, starting at character 30 of record 4 (checked for N/O or N/C for digital inputs) | | `C2` | `char[]` | 11 characters, starting at character 50 of record 4 | | `C3` | `char[]` | 11 characters, starting at character 61 of record 4 | | Method | Signature | |--------|-----------| | `SetDataChannelNumber` | `void SetDataChannelNumber(short value)` | | `SetCapacity` | `void SetCapacity(double capacity)` | | `GetCapacity` | `double GetCapacity()` | | `SetSensitivity` | `void SetSensitivity(double sensitivity)` | | `GetSensitivity` | `double GetSensitivity()` | | `SetBridgeResistance` | `void SetBridgeResistance(double resistance)` | | `SetC1` | `void SetC1(double c1)` | | `GetC1` | `double GetC1()` | | `SetSensorComment` | `void SetSensorComment(string s)` | | `SetC2` | `void SetC2(double c2)` | | `SetC3` | `void SetC3(double c3)` | | `Write` | `void Write(System.IO.BinaryWriter writer)` | | `SetSensor` | `void SetSensor(ISensorData sensor)` | --- ### ConstantsAndEnums (Abstract Class) **Namespace:** `DTS.Common.Interface.TestSetups` | Constant | Value | Description | |----------|-------|-------------| | `RECORD_LENGTH` | 80 | Fixed record length for ISF files | **ISFKnownChannelTypes Enum:** | Member | Notes | |--------|-------| | `VS` | - | | `VU` | - | | `SB` | - | | `TI` | Not analog (TOM) | | `TC` | Not analog (TOM) | | `CT` | Digital | | `XP` | - | | `P4` | - | | `VF` | - | | `NB` | - |