--- source_files: - DataPRO/SensorDB/TSF/TSFChannel.cs - DataPRO/SensorDB/TSF/G5DigitalInputChannelTSFEntry.cs - DataPRO/SensorDB/TSF/TSFCalculatedChannelEntry.cs - DataPRO/SensorDB/TSF/TSFTCFSection.cs - DataPRO/SensorDB/TSF/TSFSquibFireEntry.cs - DataPRO/SensorDB/TSF/TSFDigitalChannel.cs - DataPRO/SensorDB/TSF/TSFDIMEntry.cs - DataPRO/SensorDB/TSF/TSFSensorEntry.cs - DataPRO/SensorDB/TSF/TSFCalibrationInformation.cs - DataPRO/SensorDB/TSF/TSFSamplingInformationSection.cs - DataPRO/SensorDB/TSF/TSFModuleDescription.cs - DataPRO/SensorDB/TSF/TSFOutputChannelDescription.cs - DataPRO/SensorDB/TSF/TSFInputChannelDescription.cs - DataPRO/SensorDB/TSF/TSFRackInformationSection.cs - DataPRO/SensorDB/TSF/TSFSystemDescription.cs - DataPRO/SensorDB/TSF/TSFModuleInformationSection.cs generated_at: "2026-04-17T15:45:32.064653+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "183a641a3ddd29ec" --- # TSF Module Documentation ## 1. Purpose This module provides data structures and parsing logic for Test Setup Files (TSF) used in the DTS SensorDB/DataPRO data acquisition system. It defines channel entry types for various hardware configurations (analog sensors, digital I/O, squib fire channels, calculated channels), section parsers for TSF file structure (sampling information, rack/module information, TCF sections), and hardware description classes for system configuration. The TSF format serves as a configuration file format for data acquisition hardware including SIMs (Sensor Input Modules), TOMs (Trigger/Output Modules), and G5 modules. --- ## 2. Public Interface ### TSFChannel (abstract class) Base class providing a unified indexing mechanism for all channel types. | Member | Signature | Description | |--------|-----------|-------------| | `NOT_ASSIGNED` | `const int = -1` | Constant indicating an unassigned channel number | | `TestChannelNumber` | `int { get; set; }` | Unified channel index for all channel types, defaults to `NOT_ASSIGNED` | --- ### G5DigtalInputChannelTSFEntry : TSFChannel Represents an entry in the G5 Digital Input Channels section. | Member | Signature | Description | |--------|-----------|-------------| | `DataChan` | `int { get; set; }` | Data channel number | | `Rack` | `int { get; set; }` | Rack identifier | | `Module` | `int { get; set; }` | Module identifier | | `Chan` | `int { get; set; }` | Channel number | | `Descripton` | `string { get; set; }` | Channel description (note: typo in property name) | | `ISOCode` | `string { get; set; }` | ISO code identifier | | `Scale` | `double { get; set; }` | Scaling factor | | `Invert` | `bool { get; set; }` | Inversion flag | | `Fields` | `enum` | Enum values: `datachan, rack, mod, chan, descrip, ISOCode, scale, invert` | --- ### TSFCalculatedChannelEntry : TSFChannel Represents a calculated channel section entry. | Member | Signature | Description | |--------|-----------|-------------| | `Chan` | `int { get; set; }` | Channel number | | `Description` | `string { get; set; }` | Channel description | | `ProcessType` | `int { get; set; }` | Processing type identifier | | `FirstChan`, `SecondChan`, `ThirdChan` | `int { get; set; }` | Source channel references | | `Value` | `double { get; set; }` | Constant value | | `EU` | `string { get; set; }` | Engineering units label | | `ExpMaxRange` | `double { get; set; }` | Expected maximum range | | `Progress2`, `Progress3` | `double { get; set; }` | Progress values | | `Fields` | `enum` | Enum values: `chan, descrip, processtype, firstchan, secondchan, thirdchan, value, EU, expmaxrange, progress2, progress3` | --- ### TSFTCFSection Handles the TCF (Test Configuration File) section of a TSF. | Member | Signature | Description | |--------|-----------|-------------| | `TCFPath` | `string { get; set; }` | Path to the TCF file | | `ReadFrom` | `void ReadFrom(List lines, ref int currentLine, ref List errors)` | Parses the TCF section from TSF lines; expects `currentLine` to point to section start | --- ### TSFSquibFireEntry : TSFChannel Represents an entry in the TOM Squib Fire Channels section. | Member | Signature | Description | |--------|-----------|-------------| | `Rack`, `Module`, `Chan` | `int { get; set; }` | Hardware location identifiers | | `Description` | `string { get; set; }` | Channel description | | `Id` | `string { get; set; }` | Identifier; setter converts "none" (case-insensitive) to empty string | | `Type` | `int { get; set; }` | Squib type identifier | | `Current` | `double { get; set; }` | Current value | | `Delay` | `double { get; set; }` | Delay time | | `DurationOn` | `bool { get; set; }` | Duration enabled flag | | `Duration` | `double { get; set; }` | Duration value | | `OhmLow`, `OhmHigh` | `double { get; set; }` | Resistance tolerance range | | `ISOcode` | `string { get; set; }` | ISO code identifier | | `Fields` | `enum` | Enum values: `rack, module, chan, descrip, id, type, current, delay, durationON, duration, OhmLow, OhmHigh, ISOcode` | --- ### TSFTOMDigitalOutputChannel : TSFChannel Represents an entry in the TOM Digital Channels (output) section. | Member | Signature | Description | |--------|-----------|-------------| | `Rack`, `Module`, `Chan` | `int { get; set; }` | Hardware location identifiers | | `Type` | `DigitalOutputTypes { get; set; }` | Output type; defaults to `NONE` | | `Delay` | `double { get; set; }` | Delay time | | `DurationOn` | `bool { get; set; }` | Duration enabled flag | | `Duration` | `double { get; set; }` | Duration value | | `Description` | `string { get; set; }` | Channel description; defaults to "N/A" | | `DigitalOutputTypes` | `enum` | Values: `NONE = 0, FiveVLH = 1, FiveVHL = 2, CCNO = 3, CCNC = 4` | | `GetDigitalOutputMode` | `static DigitalOutputModes GetDigitalOutputMode(DigitalOutputTypes outputType)` | Converts `DigitalOutputTypes` to `DigitalOutputModes` enum | | `Fields` | `enum` | Enum values: `rack, module, chan, type, delay, durationON, duration` | --- ### TSFDIMEntry : TSFChannel Represents an entry in the DIM (Digital Input Module) Begin section. | Member | Signature | Description | |--------|-----------|-------------| | `DataChan` | `int { get; set; }` | Data channel number | | `Rack`, `Module`, `Chan` | `int { get; set; }` | Hardware location identifiers | | `Description` | `string { get; set; }` | Channel description | | `SerialNumber` | `string { get; set; }` | Serial number | | `Mode` | `string { get; set; }` | Mode setting | | `Inverted` | `int { get; set; }` | Inversion flag (integer) | | `EID` | `string { get; set; }` | Event identifier | | `FileName` | `string { get; set; }` | Associated filename | | `Scale` | `double { get; set; }` | Scaling factor | | `FilterMode` | `int { get; set; }` | Filter mode setting | | `FilterThreshold` | `double { get; set; }` | Filter threshold value | | `ISOCode` | `string { get; set; }` | ISO code identifier | | `CableTest` | `int { get; set; }` | Cable test setting | | `Fields` | `enum` | Enum values: `Datachan, Rack, Module, Chan, Description, SerialNo, Mode, Inverted, EID, Filename, Scale, FilterMode, FilterThreshold, ISOCODE, CableTest` | --- ### TSFSensorEntry : TSFChannel Represents an entry in the Sensor Channel Information section (analog sensor channels). | Member | Signature | Description | |--------|-----------|-------------| | `DataChan`, `Rack`, `Module`, `Chan` | `int { get; set; }` | Hardware location identifiers | | `Description` | `string { get; set; }` | Channel description | | `SerialNumber` | `string { get; set; }` | Sensor serial number | | `OffsetLow`, `OffsetHigh` | `double { get; set; }` | Offset range values | | `RemoveOffset` | `bool { get; set; }` | Offset removal flag; defaults to `true` | | `CalMode` | `CalMode { get; set; }` | Calibration mode object | | `CalStep`, `ShuntValue` | `double { get; set; }` | Calibration parameters | | `ProportionalToExcitation` | `bool { get; set; }` | Excitation proportionality flag | | `Sensitivity`, `Gain`, `ExtVolt` | `double { get; set; }` | Signal conditioning parameters | | `EU` | `string { get; set; }` | Engineering units label | | `Filter` | `double { get; set; }` | Filter setting | | `Invert` | `bool { get; set; }` | Inversion flag | | `ZeroRef` | `ZeroRef { get; set; }` | Zero reference configuration | | `DesiredMaxRange` | `double { get; set; }` | Desired maximum range | | `CommentField` | `string { get; set; }` | Comment text | | `CalDate` | `DateTime { get; set; }` | Calibration date | | `Offset` | `bool { get; set; }` | Offset flag | | `InitialEU` | `double { get; set; }` | Initial engineering units value | | `SensorId` | `string { get; set; }` | Sensor identifier; setter converts "none" to empty string | | `ISOCode` | `string { get; set; }` | ISO code identifier | | `IRTRACCexponent` | `double { get; set; }` | IRTRACC exponent value | | `SensorCategory` | `SensorInformationFile.TDCSensorCategory { get; set; }` | Sensor category; defaults to `Normal` | | `DesiredMaxRangeScaling` | `double { get; set; }` | Max range scaling factor | | `C0` through `C6` | `double { get; set; }` | Polynomial coefficients | | `Fields` | `enum` | Enum with 32 field identifiers for TSF parsing | --- ### TSFCalibrationInformation Handles calibration information for a channel. | Member | Signature | Description | |--------|-----------|-------------| | `Version` | `int { get; set; }` | Version number | | `Parent` | `TSFChannelDescription { get; set; }` | Parent channel reference | | `Source` | `int { get; set; }` | Source identifier | | `CRC32` | `ulong { get; set; }` | CRC32 checksum | | `CalibrationValid`, `CalPass` | `bool { get; set; }` | Calibration validity flags | | `CalGainErrorPercent`, `CalShuntErrorPercent` | `double { get; set; }` | Error percentages | | `CalMeasuredScaleFactorMV` | `double { get; set; }` | Measured scale factor in mV | | `CalExcitationVolts` | `double { get; set; }` | Excitation voltage | | `CalChannelOffsetADC`, `CalChannelZeroADC` | `int { get; set; }` | ADC offset values | | `CalNaturalSensorOffsetMV` | `double { get; set; }` | Natural sensor offset in mV | | `CalNaturalFloorADC` | `int { get; set; }` | Natural floor ADC value | | `CalInputRangeMV` | `double { get; set; }` | Input range in mV | | `CalNoiseFloorADC`, `CalNoiseAtRangeADC` | `double { get; set; }` | Noise measurements | | `TSFCalibrationInformation()` | Constructor | Default constructor | | `TSFCalibrationInformation(TSFCalibrationInformation copy, TSFChannelDescription channel)` | Constructor | Copy constructor with new parent reference | --- ### TSFSamplingInformationSection Handles the sampling information section of a TSF. | Member | Signature | Description | |--------|-----------|-------------| | `SampleRateHz` | `double { get; set; }` | Sample rate in Hz | | `PreTriggerSeconds` | `double { get; set; }` | Pre-trigger time in seconds (always positive) | | `PostTriggerSeconds` | `double { get; set; }` | Post-trigger time in seconds (always positive) | | `AAF` | `double { get; set; }` | Adjustable anti-aliasing filter frequency in Hz | | `PostCalTimeSeconds` | `double { get; set; }` | Post-calibration time in seconds | | `TSFSamplingInformationSection(List lines, ref int currentLine)` | Constructor | Parses sampling section from TSF lines; throws `EndOfStreamException` or `InvalidDataException` on errors | --- ### TSFModuleDescription Describes a hardware module (derived from HLAPI). | Member | Signature | Description | |--------|-----------|-------------| | `Version` | `int { get; set; }` | Version number | | `Type` | `int { get; set; }` | Module type (see HLAPI_MODULE_TYPE_) | | `Parent` | `TSFRackDescription { get; set; }` | Parent rack reference | | `Source` | `int { get; set; }` | Source identifier | | `Slot` | `int { get; set; }` | Slot position | | `CRC32` | `ulong { get; set; }` | CRC32 checksum | | `HardwareInfoValid` | `bool { get; set; }` | Hardware info validity flag | | `HWSerialNumber` | `string { get; set; }` | Hardware serial number | | `HWTOMTriggerType` | `int { get; set; }` | TOM trigger type (see HLAPI_MODULE_TOM_TRIGGER_) | | `HWRackPosition` | `int { get; set; }` | Rack position | | `HWChannelCount` | `int { get; set; }` | Number of channels | | `HWChannelList` | `TSFChannelDescription[] { get; set; }` | Array of channel descriptions | | `DownloadDescriptionValid`, `DownloadTriggerDetected` | `bool { get; set; }` | Download status flags | | `DownloadDataFlag` | `char { get; set; }` | Download data flag | | `DownloadBeginSeconds`, `DownloadEndSeconds` | `double { get; set; }` | Download time range | | `ModuleBatteryVolts` | `double { get; set; }` | Battery voltage | | `TSFModuleDescription()` | Constructor | Default constructor | | `TSFModuleDescription(TSFModuleDescription copy, TSFRackDescription rack)` | Constructor | Copy constructor with new parent reference | --- ### TSFOutputChannelDescription Describes an output channel (derived from HLAPI). | Member | Signature | Description | |--------|-----------|-------------| | `Version`, `Source` | `int { get; set; }` | Version and source identifiers | | `Parent` | `TSFChannelDescription { get; set; }` | Parent channel reference | | `CRC32` | `ulong { get; set; }` | CRC32 checksum | | `SquibInfoValid` | `bool { get; set; }` | Squib info validity flag | | `SquibFireMode` | `char { get; set; }` | Fire mode (see HLAPI_OUTPUT_FIRE_MODE) | | `SquibMeasurementType` | `char { get; set; }` | Measurement type (see HLAPI_OUTPUT_MEASUREMENT_TYPE) | | `SquibBypassCurrentFilter`, `SquibBypassVoltageFilter` | `bool { get; set; }` | Filter bypass flags | | `SquibToleranceLow`, `SquibToleranceHigh` | `double { get; set; }` | Tolerance range | | `SquibOutputCurrent` | `double { get; set; }` | Output current | | `DigitalInfoValid` | `bool { get; set; }` | Digital info validity flag | | `DigitalOutputMode` | `char { get; set; }` | Digital output mode (see HLAPI_OUTPUT_DIGITAL_MODE) | | `SquibMeasurementValid` | `bool { get; set; }` | Measurement validity flag | | `SquibMeasuredOhms` | `double { get; set; }` | Measured resistance | | `SquibFireValid`, `Squib