Channel.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. namespace NationalInstruments.Tdms
  6. {
  7. public class Channel
  8. {
  9. private readonly IEnumerable<Reader.RawData> _rawData;
  10. private readonly Reader _reader;
  11. public Channel(string name, IDictionary<string, object> properties, IEnumerable<Reader.RawData> rawData, Reader reader)
  12. {
  13. _rawData = rawData;
  14. _reader = reader;
  15. Name = name;
  16. Properties = properties;
  17. }
  18. public string Name { get; private set; }
  19. public bool HasData { get { return _rawData.Any(); } }
  20. public long DataCount { get { return _rawData.Sum(x => x.Count); } }
  21. public Type DataType { get { return _rawData.Select(x => x.ClrDataType).FirstOrDefault(); } }
  22. public IDictionary<string, object> Properties { get; private set; }
  23. public IEnumerable<Reader.RawData> RawData { get { return _rawData; } }
  24. public IEnumerable<T> GetData<T>()
  25. {
  26. return _rawData.SelectMany(_reader.ReadRawData).Select(value => (T)value);
  27. }
  28. }
  29. }