class Castle::Log::Session

Represents a single session from a Castle data logger file.

Attributes

source[R]
tick[R]

Public Class Methods

new(tick, source, data) click to toggle source
# File lib/castle/log/session.rb, line 11
def initialize tick, source, data
  @tick = tick
  @source = source
  @data = data
end

Public Instance Methods

current() click to toggle source
# File lib/castle/log/session.rb, line 67
def current
  # FIXME current values seem pretty funky...
  @current ||= float_fields 'Current'
end
current?() click to toggle source
# File lib/castle/log/session.rb, line 63
def current?
  present? 'Current'
end
duration() click to toggle source

Gets the duration of the session, in seconds.

@return [Float] duration of the session, in seconds

# File lib/castle/log/session.rb, line 20
def duration
  @duration ||= tick * @data.values[0].length
end
milliseconds() click to toggle source

Gets an array of millisecond times that correspond to data points.

@return [Array] millisecond times corresponding to data points

# File lib/castle/log/session.rb, line 27
def milliseconds
  @milliseconds ||= build_milliseconds
end
power_out() click to toggle source
# File lib/castle/log/session.rb, line 43
def power_out
  @power_out ||= float_fields 'Power-Out'
end
power_out?() click to toggle source
# File lib/castle/log/session.rb, line 39
def power_out?
  present? 'Power-Out'
end
ripple() click to toggle source
# File lib/castle/log/session.rb, line 59
def ripple
  @ripple ||= float_fields 'Ripple'
end
ripple?() click to toggle source
# File lib/castle/log/session.rb, line 55
def ripple?
  present? 'Ripple'
end
speed(factor = 1.0) click to toggle source

Gets the speed field values.

@param [Float] factor value to multiply each speed by @return [Array] speed field values

# File lib/castle/log/session.rb, line 88
def speed factor = 1.0
  @speed ||= int_fields('Speed').map { |s| s * factor }
end
speed?() click to toggle source
# File lib/castle/log/session.rb, line 80
def speed?
  present? 'Speed'
end
temperature() click to toggle source
# File lib/castle/log/session.rb, line 76
def temperature
  @temperature ||= float_fields 'Temperature'
end
temperature?() click to toggle source
# File lib/castle/log/session.rb, line 72
def temperature?
  present? 'Temperature'
end
throttle() click to toggle source
# File lib/castle/log/session.rb, line 35
def throttle
  @throttle ||= float_fields 'Throttle'
end
throttle?() click to toggle source
# File lib/castle/log/session.rb, line 31
def throttle?
  present? 'Throttle'
end
voltage() click to toggle source
# File lib/castle/log/session.rb, line 51
def voltage
  @voltage ||= float_fields 'Voltage'
end
voltage?() click to toggle source
# File lib/castle/log/session.rb, line 47
def voltage?
  present? 'Voltage'
end

Private Instance Methods

build_milliseconds() click to toggle source
# File lib/castle/log/session.rb, line 94
def build_milliseconds
  count = @data.values[0].length
  increment = tick * 1000.0
  count.times.map { |i| i * increment }
end
float_fields(name) click to toggle source
# File lib/castle/log/session.rb, line 108
def float_fields name
  @data[name].map(&:to_f)
end
int_fields(name) click to toggle source
# File lib/castle/log/session.rb, line 104
def int_fields name
  @data[name].map(&:to_i)
end
present?(name) click to toggle source
# File lib/castle/log/session.rb, line 100
def present? name
  !@data[name].empty?
end