--- source_files: - DataPRO/Modules/PreviousDBVersions/Version57/DatabaseExport/Classes/Enums.cs generated_at: "2026-04-16T04:57:15.509262+00:00" model: "Qwen/Qwen3-Coder-Next-FP8" schema_version: 1 sha256: "a6932d6dcfd8e263" --- # Classes ### **Purpose** This module defines a set of core enumerations used throughout the `DatabaseExport` subsystem for version 57 of the database schema. These enums standardize the representation of test configuration settings (`TestSettingsEnum`), data acquisition modes (`RecordingModes`), sensor compatibility policies (`IsoChannelSensorCompatibilityLevels`), export format capabilities (`SupportedExportFormatBitFlags`), template tag identifiers (`TestTemplateTags`), and validation behavior levels (`StrictLevel`). They serve as foundational constants for serialization, UI binding, and logic branching in downstream export, configuration, and test execution components. --- ### **Public Interface** #### **`TestSettingsEnum`** - **Definition**: `public enum TestSettingsEnum` - **Description**: Represents non-columned test settings—i.e., configuration flags or steps not stored as database columns but used in test logic or UI. Values correspond to checklist items and warmup/excitation settings. - **Members**: - `ArmCheckListStep` - `CheckListInputVoltageCheck` - `CheckListBatteryVoltageCheck` - `CheckListSquibResistanceCheck` - `CheckListSensorIDCheck` - `CheckListTriggerStartCheck` - `EW` *(ExcitationWarmup)* - `CheckListMustPass` #### **`RecordingModes`** - **Definition**: `public enum RecordingModes` - **Description**: Specifies the data acquisition recording strategy during a test. - **Members**: - `CircularBuffer`: Continuous overwrite buffer; only recent data retained until triggered. - `Recorder`: Standard sequential recording from start to end. - `HybridRecorder`: Combination of circular buffer pre-trigger and sequential post-trigger recording. #### **`IsoChannelSensorCompatibilityLevels`** - **Definition**: `public enum IsoChannelSensorCompatibilityLevels` - **Description**: Controls how the system responds to incompatibility between ISO channels and connected sensors. - **Members**: - `DontWarn`: No warning or error raised for incompatibility. - `Warn`: Log warning but allow proceeding. - `DontAllow`: Block test execution if incompatibility detected. #### **`SupportedExportFormatBitFlags`** - **Definition**: `[Flags] public enum SupportedExportFormatBitFlags` - **Description**: Bit-flag enumeration of supported export formats. Used to compose sets of formats via bitwise OR. *Note: `diademfiltered` is commented out and unused.* - **Members** (selected notable examples): - `csvunfiltered = 0x1` - `isounfiltered = 0x4` - `tdmsadc = 0x10` - `csvfiltered = 0x80` - `isofiltered = 0x200` - `HDFUnfiltered = 0x10000` - `xlsxfiltered = 0x100000` - `ChryslerDDAS = 0x8000` - **Full list**: All 20 explicitly defined flags (including `none = 0x0`) are present; no gaps except `diademfiltered`. #### **`TestTemplateTags`** - **Definition**: `public enum TestTemplateTags` - **Description**: Defines string identifiers used as keys in test templates (e.g., XML/JSON config files) to map UI elements, data fields, or logic hooks. Includes both legacy and current test configuration properties. - **Members**: 102 named constants, e.g.: - `UploadData`, `UploadFolder`, `CommonLine`, `AllCustomers`, `Test`, `SamplesPerSecond`, `PreTriggerSeconds`, `RecordingMode`, `EW`, `ExcitationWarmupTimeMS`, `TestDirectory`, `ISFFile`, `GroupsStepValid`, etc. - **Note**: Duplicates exist between `TestSettingsEnum` (e.g., `EW`, `ArmCheckListStep`, `CheckListBatteryVoltageCheck`, etc.)—this is intentional per source. #### **`StrictLevel`** - **Definition**: `public enum StrictLevel` - **Description**: Controls strictness of validation or schema compliance during export or import. - **Members**: - `Strict`: Enforce full compliance; fail on mismatches. - `UpdateTable`: Allow schema updates/relaxations (e.g., add missing columns). --- ### **Invariants** - `SupportedExportFormatBitFlags` is explicitly marked `[Flags]`; valid combinations must be constructed via bitwise OR of individual flags (e.g., `csvunfiltered | tdmsadc`). - Values in `TestTemplateTags` include both direct mappings to `TestSettingsEnum` members (e.g., `EW`, `ArmCheckListStep`) and additional tags—indicating that `TestTemplateTags` serves as a superset of template keys, not a one-to-one mapping. - `RecordingModes` has exactly three mutually exclusive values; no combination is intended or supported. - `IsoChannelSensorCompatibilityLevels` values form a strict hierarchy: `DontWarn` ≤ `Warn` ≤ `DontAllow` in enforcement level. - No enum value is assigned explicitly beyond `SupportedExportFormatBitFlags` (which uses hex literals); all others rely on implicit sequential numbering starting at 0. --- ### **Dependencies** - **Internal**: This module resides in the `DatabaseExport` namespace and is likely consumed by: - Classes in the same `DatabaseExport` project (e.g., export pipeline, test runner, config parser). - UI layers that bind `TestTemplateTags` to form fields or template variables. - Validation modules using `StrictLevel` and `IsoChannelSensorCompatibilityLevels`. - **External**: Depends solely on `System` (no external NuGet or third-party dependencies inferred). - **No reverse dependencies inferred**: This file defines *only* enums; no class or method implementations are present to indicate what *imports* it. --- ### **Gotchas** - **Duplicate enum members across `TestSettingsEnum` and `TestTemplateTags`**: Identical names (e.g., `EW`, `ArmCheckListStep`, `CheckListBatteryVoltageCheck`) appear in both enums. This suggests they are *not* semantically identical—`TestSettingsEnum` likely represents internal logic flags, while `TestTemplateTags` represents template key strings. Confusing them may cause runtime errors. - **`diademfiltered` is commented out**: Though defined as `0x100`, it is unused and commented. Do *not* assume support for Diadem filtered exports unless validated in consuming code. - **`LastMmodifiedBy` typo**: The enum member `LastMmodifiedBy` (with double `m`) likely contains a typo for `LastModifiedBy`. Verify usage in consuming code before renaming. - **`EW` ambiguity**: Appears in both `TestSettingsEnum` and `TestTemplateTags`. In `TestTemplateTags`, it likely maps to a template key (e.g., `...`), while in `TestSettingsEnum` it represents a checklist step. Ensure context distinguishes usage. - **No documentation on `StrictLevel.UpdateTable` behavior**: The meaning of “UpdateTable” is not self-evident; its semantics (e.g., auto-migrate schema?) must be verified in dependent code. - **`TestTemplateTags` includes `GroupsStepValid`**: Suggests a specific validation state for group-based test steps; ensure logic handling this tag aligns with actual test execution flow. None identified beyond these.