RawDataBlock.fs 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. namespace FSharp.Data.Tdms
  2. open System
  3. type FormatChangingScaler =
  4. { DaqMxDataType: uint
  5. RawBufferIndex: uint
  6. RawByteOffsetWithinStride: uint
  7. SampleFormatBitmap: uint
  8. ScaleId: uint }
  9. type InterleavedPrimitiveRawDataBlock =
  10. { Start: uint64
  11. Count: uint64
  12. mutable Skip: uint64 }
  13. type PrimitiveRawDataBlock =
  14. | DecimatedPrimitiveRawDataBlock of (uint64 * uint64)
  15. | InterleavedPrimitiveRawDataBlock of InterleavedPrimitiveRawDataBlock
  16. type RawDataBlocks =
  17. | PrimitiveRawDataBlocks of Type * PrimitiveRawDataBlock ResizeArray
  18. | StringRawDataBlocks of (uint64 * uint64 * uint64) ResizeArray
  19. module RawDataBlock =
  20. let readFormatChangingScaler (buffer: byte ReadOnlySpan byref) bigEndian =
  21. { DaqMxDataType = Buffer.readUInt &buffer bigEndian
  22. RawBufferIndex = Buffer.readUInt &buffer bigEndian
  23. RawByteOffsetWithinStride = Buffer.readUInt &buffer bigEndian
  24. SampleFormatBitmap = Buffer.readUInt &buffer bigEndian
  25. ScaleId = Buffer.readUInt &buffer bigEndian }