19 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
2026-04-17T15:26:54.219712+00:00 | zai-org/GLM-5-FP8 | 1 | 02238b951afcf713 |
DTS.Common.ISO Module Documentation
1. Purpose
This module provides data structures and utilities for working with ISO 13499 (MME) crash test data standards. It includes classes for managing test object templates, channels, hardware configurations, calculated values, and ISO metadata (positions, filter classes, fine locations). The module serves as a bridge between the database layer and the application's domain model for test setup and data acquisition, handling serialization, database persistence, and ISO code generation for channel identification.
2. Public Interface
IsoMDBFile
public class IsoMDBFile
Empty placeholder class. No members defined in source.
ISerializableFile
public interface ISerializableFile
Interface for serializable file operations.
| Method | Return Type | Description |
|---|---|---|
GetDirectory() |
string |
Returns the directory path for the file |
GetExtension() |
string |
Returns the file extension |
GetFilter() |
string |
Returns the file filter string |
GetFileLocation() |
string |
Returns the full file location |
AbstractOLEDbWrapper
public abstract class AbstractOLEDbWrapper
Base class providing helper methods for database reader operations.
| Method | Signature | Description |
|---|---|---|
GetLong |
protected static long GetLong(IDataReader reader, string field) |
Returns long.MinValue if field is DBNull, otherwise converts to Int64 |
GetDate |
protected static DateTime GetDate(IDataReader reader, string field) |
Returns DateTime.MinValue if field is DBNull, otherwise casts to DateTime |
HardwareChannel
public class HardwareChannel : DASChannelDBRecord, INotifyPropertyChanged
Represents a hardware channel associated with a DAS (Data Acquisition System).
Constructors:
public HardwareChannel()public HardwareChannel(IDASChannelDBRecord record, Hardware h)public HardwareChannel(HardwareChannel copy, Hardware h)
Properties:
| Property | Type | Description |
|---|---|---|
ParentDAS |
Hardware |
Parent hardware device, with INotifyPropertyChanged support |
Methods:
| Method | Signature | Description |
|---|---|---|
PhysicalCompare |
public static int PhysicalCompare(HardwareChannel left, HardwareChannel right) |
Compares two channels by ChannelIdx. Returns -1 if left is null, 1 if right is null, 0 if equal |
Insert |
public void Insert() |
Inserts this channel into database via DbOperations.DASChannelsInsert |
IsSupported |
public bool IsSupported(SensorConstants.BridgeType bridge) |
Checks if bridge type is supported using bitwise AND on SupportedBridges |
IsoCodeStatics
public class IsoCodeStatics
Static utility class for generating ISO code strings.
| Method | Signature | Description |
|---|---|---|
GetString |
public static string GetString(MMEPossibleChannels channel, MMETestObjects container, MMEPositions position, MMEFilterClasses fc) |
Builds ISO code from channel, test object, position, and filter class |
GetString |
public static string GetString(MMEPossibleChannels channel, bool careAboutTestTimeFields) |
Builds ISO code, optionally masking test object and filter class with "??"/"?" |
GetString |
public static string GetString(string testObject, string position, string main, string floc1, string floc2, string floc3, string physdim, string dir, string fc) |
Concatenates all parts into ISO code string |
TestObjectChannel
public class TestObjectChannel : TestObjectTemplateChannel, IComparable<TestObjectChannel>, IGroupChannel
Represents a channel within a test object, extending template channel with metadata.
Constants:
public const int CHANNEL_IDX_UNKNOWN = -1private const char CHANNEL_SEPARATOR = 'x'
Enum:
public enum SquibChannelTypes { None, Voltage, Current }
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
Disabled |
bool |
- | Controls whether channel is used in data collection |
ChannelIdx |
int |
CHANNEL_IDX_UNKNOWN |
Channel index |
SensorSerialNumber |
string |
"" |
Serial number of associated sensor |
HardwareId |
string |
"" |
Physical hardware channel ID (setter parses and reformats) |
SquibChannelType |
SquibChannelTypes |
- | Type of squib channel |
TestObject |
TestObject |
- | Parent test object (read-only) |
Constructors:
public TestObjectChannel(TestObjectTemplateChannel copy, TestObject testObject, TestObjectTemplate template)
Methods:
| Method | Signature | Description |
|---|---|---|
CompareTo |
public int CompareTo(TestObjectChannel right) |
Compares by: 1) DisplayOrder, 2) Name, 3) TestObject.SerialNumberOrOriginalSerialNumber |
CompareTo |
public int CompareTo(IGroupChannel other) |
Delegates to CompareTo(TestObjectChannel) |
GetGraphId |
public string GetGraphId() |
Returns ID with Constants.CURRENT_SUFFIX if SquibChannelType.Current, else GetId() |
GetId |
public string GetId() |
Returns {SerialNumber}_{MMEChannelType}_{Channel.Id} |
GetIdWithSpecificChannelId |
public string GetIdWithSpecificChannelId(long id) |
Returns {SerialNumber}_{MMEChannelType}_{id} |
GetDASId |
public string GetDASId() |
Extracts DAS ID from HardwareId (substring before first '_') |
CalculatedValueClass
public class CalculatedValueClass : CalculatedChannelRecord
Represents a calculated/derived channel value.
Constructors:
public CalculatedValueClass()public CalculatedValueClass(CalculatedValueClass copy)public CalculatedValueClass(ICalculatedChannelRecord record)
Properties:
| Property | Type | Description |
|---|---|---|
SupportsRealtime |
bool |
Returns ViewInRealtime |
Operation |
Operations |
Newed property that raises ViewInRealtime and CanChangeViewInRealtime change notifications |
ViewInRealtime |
bool |
Returns false for IRTRACC3D, IRTRACC3D_ABDOMEN, IRTRACC3D_LOWERTHORAX, HIC operations |
CanChangeViewInRealtime |
bool |
Returns false for same operations as above |
InputChannelIds |
string[] |
Lazily builds from _channels list if populated |
TestObjectChannels |
List<TestObjectChannel> |
Associated test object channels |
InputChannelIdsBlob |
byte[] |
UTF-8 encoded, list-separator joined channel IDs |
Attributes |
CCAttributeBase[] |
Array of calculation attributes |
Methods:
| Method | Signature | Description |
|---|---|---|
IsValid |
public bool IsValid(Dictionary<string, bool> channelIdLookup) |
Validates: non-empty name, at least one input channel, all IDs exist in lookup |
SetChannels |
public void SetChannels(IGroupChannel[] groupChannels) |
Sets internal _channels list |
SetTestObjectChannels |
public void SetTestObjectChannels(TestObjectChannel[] testObjectChannels) |
Sets TestObjectChannels list |
ReplaceInputChannelIdAtIndex |
public void ReplaceInputChannelIdAtIndex(int index, string newId) |
Replaces channel ID at specified index |
CCAttributeBase
public abstract class CCAttributeBase
Abstract base for calculated channel attributes.
| Property | Signature | Description |
|---|---|---|
AttributeId |
public int AttributeId |
Returns protected _attributeId |
_attributeValue |
protected object |
Protected backing field |
| Method | Signature | Description |
|---|---|---|
GetSerializedValue |
public abstract string GetSerializedValue() |
Abstract |
GetDefaultValue |
public abstract string GetDefaultValue() |
Abstract |
GetNameResourceId |
public abstract string GetNameResourceId { get; } |
Abstract property |
Copy |
public abstract CCAttributeBase Copy() |
Abstract |
LevelTriggerChannel
public class LevelTriggerChannel
Stores level trigger configuration for a channel.
Constructors:
public LevelTriggerChannel(LevelTriggerChannel copy)public LevelTriggerChannel(string groupChannelId, string hardwareChannelId, string sensorSerialNumber, bool greaterThanEnabled, double greaterThanEU, bool lessThanEnabled, double lessThanEU, double insideLowerLevelEU, double insideUpperLevelEU, double outsideLowerLevelEU, double outsideUpperLevelEU, bool triggerOutsideBounds, bool triggerInsideBounds)public LevelTriggerChannel(System.Data.DataRow dr)- Populates from database row usingDbOperations.LevelTriggers.Fields
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
GroupChannel |
IGroupChannel |
null |
Associated group channel |
GroupChannelId |
string |
"-1" |
Channel ID |
HardwareChannelId |
string |
"" |
Hardware channel ID |
SensorSerialNumber |
string |
"" |
Sensor serial |
GreaterThanEnabled |
bool |
true |
Greater-than trigger enabled |
GreaterThanThresholdEU |
double |
- | Threshold in engineering units |
LessThanEnabled |
bool |
false |
Less-than trigger enabled |
LessThanThresholdEU |
double |
- | Threshold in engineering units |
TriggerBetweenBounds |
bool |
false |
Inside bounds trigger |
TriggerOutsideBounds |
bool |
false |
Outside bounds trigger |
InsideUpperLevelEU |
double |
- | Upper bound for inside trigger |
InsideLowerLevelEU |
double |
- | Lower bound for inside trigger |
OutsideUpperLevelEU |
double |
- | Upper bound for outside trigger |
OutsideLowerLevelEU |
double |
- | Lower bound for outside trigger |
LevelTriggerText |
string |
- | Human-readable trigger description |
TestSetting
public class TestSetting
Represents a single test setting with ID, value, and default.
Constants:
private const string SEPARATOR = "_x_"
Constructors:
public TestSetting(TestSetting copy, string value)public TestSetting(TestSetting copy)public TestSetting(int id, string value, string defaultValue)public TestSetting(TestSettingsEnum id, string value, string defaultValue)
Properties:
| Property | Type | Description |
|---|---|---|
Id |
int |
Setting identifier |
Value |
string |
Current value |
DefaultValue |
string |
Default value (read-only) |
Methods:
| Method | Signature | Description |
|---|---|---|
ToSerializeString |
public string ToSerializeString() |
Returns {Id}={Value} with '=' replaced by SEPARATOR |
TryParse |
public static bool TryParse(string s, out TestSetting ts) |
Parses serialized string; tries TestSettingsEnum first, then int |
TestSettingsEnum
public enum TestSettingsEnum
Enumeration of test setting identifiers: ArmCheckListStep, CheckListInputVoltageCheck, CheckListBatteryVoltageCheck, CheckListSquibResistanceCheck, CheckListSensorIDCheck, CheckListTriggerStartCheck, CheckListTiltSensorCheck, CheckListTemperatureCheck, CheckListClockSyncCheck, EW, CheckListMustPass.
TestSettingDictionary
public class TestSettingDictionary
Dictionary container for test settings.
Constructors:
public TestSettingDictionary()public TestSettingDictionary(TestSettingDictionary copy)
Methods:
| Method | Signature | Description |
|---|---|---|
GetValue |
public string GetValue(int id, string defaultValue) |
Returns value or default if not found |
GetValue |
public string GetValue(TestSettingsEnum id, string defaultValue) |
Overload for enum |
SetValue |
public void SetValue(TestSetting setting, string value) |
Creates new TestSetting with value |
SetValue |
public void SetValue(TestSetting setting) |
Sets setting directly |
SetValue |
public void SetValue(TestSettingsEnum id, string value) |
Overload for enum |
SetValue |
public void SetValue(int id, string value) |
Creates or updates setting |
UnLoad |
public void UnLoad() |
Clears internal dictionary |
ToSerializeString |
public string ToSerializeString() |
Serializes all settings |
LoadSettings |
public void LoadSettings(string s) |
Deserializes settings, preserving defaults |
TestObjectTemplate
public class TestObjectTemplate : ITestObjectTemplate
Lightweight wrapper for group templates from database.
Constructors:
public TestObjectTemplate(string templateName, bool bLocalOnly)public TestObjectTemplate(TestObjectTemplate copy, ref ISO13499FileDb db)
Properties:
| Property | Type | Description |
|---|---|---|
TemplateName |
string |
Template name (GUID for embedded templates) |
TemplateNameOrOriginalTemplateName |
string |
Human-readable name |
Icon |
string |
Icon identifier |
Description |
string |
Template description |
LocalOnly |
bool |
Whether template is local-only |
Version |
int |
Version number |
LastModifiedBy |
string |
Last modifier |
LastModified |
DateTime |
Last modification date |
CRC32 |
int |
Checksum (not currently used per comments) |
TestObject |
string |
ISO meta field |
TestObjectType |
string |
ISO meta field for channel type |
TemplateParent |
string |
Parent template (for composite templates) |
SysBuilt |
bool |
System-built flag |
Channels |
TestObjectTemplateChannel[] |
All channels |
OriginalTemplateName |
string |
Original name for embedded templates |
Embedded |
bool |
Whether embedded in test setup |
Methods:
| Method | Signature | Description |
|---|---|---|
IsISOMode |
public bool IsISOMode() |
Returns false if TestObjectType contains non-ISO markers |
GetTemplate |
public static TestObjectTemplate GetTemplate(ref ISO13499FileDb db, string name) |
Returns null (unimplemented) |
MMEFilterClasses
public class MMEFilterClasses : AbstractOLEDbWrapper
Represents ISO 13499 filter class metadata.
Constructors:
public MMEFilterClasses(string sGuid, string filterClass, string textL1, string textL2, long version, DateTime date, string remarks, bool bExpired, string sortKey, DateTime lastChange, string lastChangeText, string history, MMEPossibleChannels.MMEChannelTypes type)
Properties: S_GUID, Filter_Class, Text_L1, Text_L2, Version, Date, Remarks, Expired, SortKey, Last_Change, Last_Change_Text, History, RecordType (default: ISO13499_106).
Methods:
| Method | Signature | Description |
|---|---|---|
GetFilterClasses |
public static MMEFilterClasses[] GetFilterClasses() |
Queries database for all filter classes |
ReadXML |
public static MMEFilterClasses ReadXML(XmlElement node) |
Imports from XML using CustomFilterFields enum |
ToString |
public override string ToString() |
Returns Text_L1 |
MMEPositions
public class MMEPositions : AbstractOLEDbWrapper
Represents ISO 13499 position metadata.
Constructors:
public MMEPositions(string sGuid, string position, string textL1, string textL2, long version, DateTime date, string remarks, bool expired, string sortKey, DateTime lastChange, string lastChangeText, string history, MMEPossibleChannels.MMEChannelTypes type)
Properties: S_GUID, Position, Text_L1, Text_L2, Version, Date, Remarks, Expired, SortKey, Last_Change, Last_Change_Text, History, RecordType.
Methods:
| Method | Signature | Description |
|---|---|---|
GetPositions |
public static MMEPositions[] GetPositions() |
Queries database for all positions |
ReadXML |
public static MMEPositions ReadXML(XmlElement node) |
Imports from XML using PositionFields enum |
MMEFineLocations2
public class MMEFineLocations2 : AbstractOLEDbWrapper
Represents ISO 13499 fine location 2 metadata.
Constructors:
public MMEFineLocations2(string sGuid, string fineLoc2, string textL1, string textL2, long version, DateTime date, string remarks, bool expired, string sortKey, DateTime lastChange, string lastChangeText, string history, MMEPossibleChannels.MMEChannelTypes type)
Properties: S_GUID, FINE_LOC_2, Text_L1, Text_L2, Version, Date, Remarks, Expired, SortKey, Last_Change, Last_Change_Text, History, RecordType.
Methods:
| Method | Signature | Description |
|---|---|---|
GetFineLocations2 |
public static MMEFineLocations2[] GetFineLocations2() |
Queries database for all fine locations 2 |
ReadXML |
public static MMEFineLocations2 ReadXML(XmlElement node) |
Imports from XML using CustomFinLoc2Fields enum |
3. Invariants
- HardwareChannel.IsSupported: Uses bitwise AND comparison - the bridge type value must be exactly matchable within
SupportedBridgesflags. - TestObjectChannel.CompareTo: Null right operand returns 1; null left operand (implicit in static compare) returns -1.
- TestObjectChannel.ChannelIdx: Initialized to
CHANNEL_IDX_UNKNOWN(-1). - TestObjectChannel.HardwareId setter: If value contains exactly 3 underscore-separated tokens, reformats to
{token0}_{token1}{suffix}where suffix is everything afterCHANNEL_SEPARATOR('x') in token2. - CalculatedValueClass.ViewInRealtime: Always returns
falsefor operationsIRTRACC3D,IRTRACC3D_ABDOMEN,IRTRACC3D_LOWERTHORAX, andHIC. - CalculatedValueClass.IsValid: Requires non-whitespace
Name, at least oneInputChannelId, and all IDs present in lookup dictionary. - AbstractOLEDbWrapper.GetLong: Returns
long.MinValueforDBNullvalues. - AbstractOLEDbWrapper.GetDate: Returns
DateTime.MinValueforDBNullvalues. - TestSettingDictionary.LoadSettings: Preserves existing default settings; only updates
Valuefor existing keys. - TestObjectTemplate.GetTemplate: Currently returns
null(unimplemented). - **MMEFilterClasses/MMEPositions/MMEFine