Class: Tdms::ChannelEnumerator

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/tdms/channel.rb

Instance Method Summary collapse

Constructor Details

#initialize(channel) ⇒ ChannelEnumerator



31
32
33
# File 'lib/tdms/channel.rb', line 31

def initialize(channel)
  @channel = channel
end

Instance Method Details

#[](i) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/tdms/channel.rb', line 43

def [](i)
  if (i < 0) || (i >= size)
    raise RangeError, "Channel %s has a range of 0 to %d, got invalid index: %d" %
                      [@channel.path, size - 1, i]
  end

  @channel.file.seek @channel.raw_data_pos + (i * @channel.data_type::LengthInBytes)
  @channel.data_type.read_from_stream(@channel.file).value
end

#eachObject



39
40
41
# File 'lib/tdms/channel.rb', line 39

def each
  0.upto(size - 1) { |i| yield self[i] }
end

#sizeObject



35
36
37
# File 'lib/tdms/channel.rb', line 35

def size
  @size ||= @channel.num_values
end