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