8.9 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | ||||
|---|---|---|---|---|---|---|---|---|
|
2026-04-17T15:53:29.795646+00:00 | zai-org/GLM-5-FP8 | 1 | 75360f877b7fe798 |
Documentation: DatabaseExport Module (Version 57)
1. Purpose
This module provides data structures and utilities for managing database export operations within the DataPRO system, specifically for Version 57 database schema compatibility. It defines channel type hierarchies for Data Acquisition System (DAS) hardware, provides a settings abstraction layer over a global settings database, enables user-defined custom channels that extend beyond the ISO13499 standard, and manages test graph configurations including channel selection and threshold definitions. The module serves as a bridge between the domain model and database persistence layer.
2. Public Interface
IServicePublic.cs
DASChannel
[Serializable]
public class DASChannel
Base class for all DAS channels. Marked as Serializable. Contains no members in this version (commented-out IXmlSerializable implementation suggests future extensibility).
OutputTOMDigitalChannel
[Serializable]
public class OutputTOMDigitalChannel : DigitalOutputDASChannel
Inherits from DigitalOutputDASChannel. Defines digital output modes via nested enum:
DigitalOutputMode.NONE = 0— Mode not setDigitalOutputMode.FVLH = 1 << 0— 5 volt, low-to-high transitionDigitalOutputMode.FVHL = 1 << 1— 5 volt, high-to-low transitionDigitalOutputMode.CCNO = 1 << 2— Contact closure normally openDigitalOutputMode.CCNC = 1 << 3— Contact closure normally closed
OutputSquibChannel
[Serializable]
public class OutputSquibChannel
Defines squib (explosive initiator) channel configuration via two nested enums:
SquibFireMode:
NONE = 1 << 0,CAP = 1 << 1,CONSTANT = 1 << 2,AC = 1 << 3
SquibMeasurementType:
NONE = 0,CURRENT = 1 << 0,INIT_SIGNAL = 1 << 1,VOLTAGE = 1 << 2
OutputDASChannel
[Serializable]
public class OutputDASChannel : DASChannel
Base class for output channels, inherits from DASChannel.
DigitalOutputDASChannel
[Serializable]
public class DigitalOutputDASChannel : OutputDASChannel
Digital output channel, inherits from OutputDASChannel.
SerializedSettings.cs
SerializedSettings
public sealed class SerializedSettings
Static facade for application settings stored via SettingsDB. All properties are static.
Key Properties:
| Property | Type | Default | Description |
|---|---|---|---|
ExportINIFile |
string |
"" |
Location of export INI file |
IsoChannelSensorCompatibilityLevel |
IsoChannelSensorCompatibilityLevels |
Warn |
ISO channel/sensor compatibility level |
TestSetupAutomaticMode |
bool |
false |
Test setup automatic mode flag |
TestSetupDefaultCommonStatusLine |
bool |
true |
Common status line default |
TestSetupAutomaticProgressDelayMS |
int |
0 |
Automatic mode delay in milliseconds |
ISOSupportLevel |
ISOSupportLevels |
ISO_ONLY |
ISO support level |
TestSetupDefaultWarnOnBatteryFail |
bool |
false |
Warn on battery failure |
TestSetupDefaultDontAllowOutOfCalSensors |
bool |
false |
Disallow out-of-calibration sensors |
Nested Types:
Keys— Enum with ~100+ setting key names (e.g.,IgnorePowerMode,UseUserCodes,TDASCalPeriod, etc.)ISOSupportLevels— Enum:ISO_ONLY,TRANSITORY,NO_ISO
CustomChannel.cs
CustomChannel
public class CustomChannel : IComparable<CustomChannel>
Wrapper for MMEPossibleChannels enabling user-defined channels outside ISO13499.
Constructor:
public CustomChannel(MMEPossibleChannels channel, bool newChannel = true)
Properties:
Channel(MMEPossibleChannels) — The wrapped channelTestObject,Position,MainLocation,FinLoc1,FinLoc2,FinLoc3,PhysicalDimension,Direction,FilterClass— ISO reference fields that sync to underlying channelText1,Remarks— Text fields
Methods:
public int CompareTo(CustomChannel other) // Compares by Text1
public Dictionary<string, string> GetValues() // Returns all field values as string dictionary
CustomChannelList
public class CustomChannelList
Thread-safe singleton managing all custom channels.
Static Property:
public static CustomChannelList List { get; } // Singleton accessor with lazy initialization
Instance Property:
public CustomChannel[] AllChannels { get; } // Returns all channels, populates on first access
TestGraph.cs
TestGraph
public class TestGraph
Manages test graph configuration including channel selection and thresholds.
Constructor:
public TestGraph(TestTemplate template)
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
GraphName |
string |
"" |
Graph name |
GraphDescription |
string |
"" |
Description |
UseDomainMin/Max |
bool |
false |
Domain axis constraints |
DomainMin |
double |
double.MinValue |
Minimum domain value |
DomainMax |
double |
double.MaxValue |
Maximum domain value |
UseRangeMin/Max |
bool |
false |
Range axis constraints |
RangeMin/RangeMax |
double |
double.MinValue/double.MaxValue |
Range constraints |
Thresholds |
double[] |
empty | Threshold values |
Channels |
TestObjectChannel[] |
— | Channels in graph (auto-removes orphaned) |
AvailableChannels |
TestObjectChannel[] |
— | Channels available to add |
Methods:
public string GetThresholdsSQL() // Serialize thresholds to SQL format
public void SetThresholdsFromSQL(string) // Deserialize thresholds
public string GetChannelsForSQL() // Serialize channels to SQL format
public void SetChannelsFromSQL(string) // Deserialize channels
3. Invariants
-
Channel Hierarchy:
DASChannel→OutputDASChannel→DigitalOutputDASChannel→OutputTOMDigitalChannelforms a strict inheritance chain. -
Bit Flag Enums:
DigitalOutputMode,SquibFireMode, andSquibMeasurementTypeuse bit-shifted values (1 << n) intended for bitwise combination. -
Singleton Pattern:
CustomChannelList.Listuses double-checked locking with a privateobject MyLockto ensure thread-safe singleton initialization. -
Channel Synchronization: In
CustomChannel, setting any location/direction property (e.g.,Position,MainLocation) automatically updates the underlyingMMEPossibleChannelsobject viaChannel.Set_*methods. -
Graph Channel Consistency:
TestGraph.Channelsgetter automatically removes channels whose parentTestTestObjectis no longer in_groupsor_addedGroups. -
Squib Channel Handling: Squib channels generate two available channels (Current and Voltage) with distinct graph IDs; Current channels are suffixed with
_CU.
4. Dependencies
This module depends on:
System,System.Collections.Generic,System.Globalization,System.Linq,System.Text(standard .NET)SettingsDB(inferred fromSettingsDB.GetGlobalValue*calls)ISO13499FileDb.IsoDb(ISO database operations)MMEPossibleChannels,MMETestObjects,MMEPositions,MMETransducerMainLocation,MMEFineLocations1/2/3,MMEPhysicalDimensions,MMEDirections,MMEFilterClasses(domain entities)DbOperations.MMETables.MMEPossibleChannelsFields(field enumeration)SensorsCollection.SensorsList(sensor lookup)Test.Module.Channel.Sensor.BridgeType(sensor bridge types)TestObjectChannel,TestTestObject,TestTemplate,TestObjectTemplate(test domain objects)IsoChannelSensorCompatibilityLevels(enum, source not provided)
What depends on this module:
- Cannot be determined from source alone; these are entity/utility classes likely consumed by higher-level test management and export modules.
5. Gotchas
-
Misleading XML Comments:
OutputTOMDigitalChannelhas XML comment "Base class for SQUIB channels" which appears incorrect—it inherits fromDigitalOutputDASChanneland defines digital output modes, not squib functionality. The same comment is correctly applied toOutputSquibChannel. -
Inconsistent Enum Base Values:
SquibFireMode.NONE = 1 << 0(value 1)SquibMeasurementType.NONE = 0(value 0)DigitalOutputMode.NONE = 0(value 0)
This inconsistency could cause issues when checking for "not set" states.
-
Commented-Out Interfaces:
DASChanneland `Output