class EGauge::Register
Attributes
index[RW]
label[RW]
type_code[RW]
Public Class Methods
new(data, index, def_node)
click to toggle source
# File lib/egauge/register.rb, line 8 def initialize(data, index, def_node) @data = data @index = index @label = def_node.text @type_code = def_node['t'] end
Public Instance Methods
count()
click to toggle source
# File lib/egauge/register.rb, line 41 def count @data.num_rows end
each_row() { |ts, val| ... }
click to toggle source
Run each value in this register, yielding |timestamp, value| for each
# File lib/egauge/register.rb, line 17 def each_row @data.xml.group.elements.each do |chunk| # Set up for running this data chunk - prep timestamp and increment step from source xml ts = EGauge::parse_time(chunk['time_stamp']) step = chunk['time_delta'].to_i # Run each row in the chunk, and yield our results (chunk / './r').each do |row| val = (row / './c')[@index].text.to_i yield ts, val ts += step end end end
to_a()
click to toggle source
Return results as a 2D array, like so: [ [timestamp1, val1], [timestamp2, val2], … ]
# File lib/egauge/register.rb, line 33 def to_a res = [] each_row do |ts, val| res << [ts, val] end res end