261 lines
14 KiB
Markdown
261 lines
14 KiB
Markdown
---
|
|
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<string> lines, ref int currentLine, ref List<ReadTSFError> 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<string> 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 |