How gunnarluebbermann/go-tdms works
go-tdms is a pure-Go TDMS file parser. The main workflow opens a file or index, parses segment metadata into file properties, groups, and channels, then streams channel values in batches with optional DAQmx interpretation and scaling. Users can also inspect properties and derive waveform x-axis values. The graph follows the documented capabilities; unsampled implementation details are represented only where the tree or README supports them.
Main entry points: file.go File API · stream_reader.go Batch stream reader · scaling.go Channel scaling · channel.go Channel API
Components 13
File parsing
- File API
file.go - Segment parser
segment.go
Channel reading
- Channel API
channel.go - Batch stream reader
stream_reader.go
Data interpretation
- Properties
property.go - DAQmx scalers
daqmx.go - Channel scaling
scaling.go - Type promotion
type_promotion.go - Waveform values
waveform.go - Thermocouple math
thermocouple.go
Other components
- Go caller
- TDMS file data
- Channel values
Connections 16
- Go caller → File API: opens or constructs
- File API → TDMS file data: reads metadata
- File API → Segment parser: parses segments
- Segment parser → File API: provides metadata
- File API → Properties: exposes properties
- File API → Channel API: builds channels
- Go caller → Channel API: requests reads
- Channel API → Batch stream reader: creates stream
- Batch stream reader → TDMS file data: reads channel bytes
- Batch stream reader → DAQmx scalers: interprets DAQmx
- Batch stream reader → Channel scaling: applies scaling
- Channel scaling → Type promotion: promotes types
- Channel scaling → Thermocouple math: uses thermocouple math
- Batch stream reader → Channel values: yields batches
- Go caller → Waveform values: requests x-axis
- Waveform values → Properties: reads waveform properties