class OpenTx::Log::Session
Public Class Methods
known_rows?(headers)
click to toggle source
XXX currently just know Taranis X9D files…
# File lib/opentx/log/session.rb, line 7 def self.known_rows?(headers) return false unless [48].include?(headers.length) # check for a few known headers (%w(Date Time SWR RSSI A1 A2 Long Lat Temp1 Temp2 RPM Fuel) - headers).empty? end
new(csv_rows)
click to toggle source
# File lib/opentx/log/session.rb, line 14 def initialize(csv_rows) @rows = csv_rows end
Public Instance Methods
a1()
click to toggle source
# File lib/opentx/log/session.rb, line 53 def a1 @a1 ||= float_field('A1') end
a1?()
click to toggle source
# File lib/opentx/log/session.rb, line 49 def a1? a1.any? { |v| v > 0.0 } end
a2()
click to toggle source
# File lib/opentx/log/session.rb, line 61 def a2 @a2 ||= float_field('A2') end
a2?()
click to toggle source
# File lib/opentx/log/session.rb, line 57 def a2? a2.any? { |v| v > 0.0 } end
cell(index)
click to toggle source
@param index [1..6]
# File lib/opentx/log/session.rb, line 105 def cell(index) float_field("Cell #{index}") end
cell?(index)
click to toggle source
@param index [1..6]
# File lib/opentx/log/session.rb, line 100 def cell?(index) cell(index).any? { |v| v > 0.0 } end
cell_volts()
click to toggle source
# File lib/opentx/log/session.rb, line 95 def cell_volts @cell_volts ||= float_field('Cell volts') end
cell_volts?()
click to toggle source
# File lib/opentx/log/session.rb, line 91 def cell_volts? cell_volts.any? { |v| v > 0.0 } end
duration()
click to toggle source
# File lib/opentx/log/session.rb, line 18 def duration milliseconds times.last - times.first end
fuel()
click to toggle source
# File lib/opentx/log/session.rb, line 87 def fuel @fuel ||= int_field('Fuel') end
fuel?()
click to toggle source
# File lib/opentx/log/session.rb, line 83 def fuel? fuel.any? { |f| f != 0 } end
milliseconds()
click to toggle source
@return [Array<Float>] millisecond time stamps for all entries, 0-based
# File lib/opentx/log/session.rb, line 24 def milliseconds @milliseconds ||= times.map { |time| ((time - times.first) * 1000).round(2) } end
rssi()
click to toggle source
# File lib/opentx/log/session.rb, line 45 def rssi @rssi ||= int_field('RSSI') end
rssi?()
click to toggle source
# File lib/opentx/log/session.rb, line 41 def rssi? rssi.any? end
swr()
click to toggle source
# File lib/opentx/log/session.rb, line 37 def swr @swr ||= int_field('SWR') end
swr?()
click to toggle source
# File lib/opentx/log/session.rb, line 33 def swr? swr.any? end
temp1(unit = :c)
click to toggle source
# File lib/opentx/log/session.rb, line 69 def temp1(unit = :c) @temp1 ||= int_field('Temp1') @temp1.map { |t| convert_temperature(t, unit) } end
temp1?()
click to toggle source
# File lib/opentx/log/session.rb, line 65 def temp1? int_field('Temp1').any? { |t| t != 0 } end
temp2(unit = :c)
click to toggle source
# File lib/opentx/log/session.rb, line 78 def temp2(unit = :c) @temp2 ||= int_field('Temp2') @temp2.map { |t| convert_temperature(t, unit) } end
temp2?()
click to toggle source
# File lib/opentx/log/session.rb, line 74 def temp2? int_field('Temp2').any? { |t| t != 0 } end
times()
click to toggle source
@return [Array<Time>] all date-times in the session
# File lib/opentx/log/session.rb, line 29 def times @times ||= @rows.map { |row| Time.strptime("#{row['Date']} #{row['Time']}", '%Y-%m-%d %H:%M:%S.%N') } end
Private Instance Methods
convert_temperature(celsius, unit)
click to toggle source
# File lib/opentx/log/session.rb, line 111 def convert_temperature(celsius, unit) case unit when :f (celsius * (9.0 / 5.0)) + 32 else celsius end end
float_field(name)
click to toggle source
# File lib/opentx/log/session.rb, line 120 def float_field(name) @rows.map { |row| row[name].to_f } end
int_field(name)
click to toggle source
# File lib/opentx/log/session.rb, line 124 def int_field(name) @rows.map { |row| row[name].to_i } end