Sha256: 466ad0b2f3465517d12cd30fbba5ef1b402df5d51dbae4c37c5b27ff8fdca1ba

Contents?: true

Size: 1.05 KB

Versions: 3

Compression:

Stored size: 1.05 KB

Contents

require 'tty-table'

module RfBeam
  module KLD7
    class CliFormatter
      def tdat(data)
        { dist: data[2], speed: data[3], angle: data[4], mag: data[5] }
      end

      def pdat_table(data)
        table = TTY::Table.new header: ['index', 'dist (M)', 'speed (Km/h)', 'angle (°)', 'mag (db)']
        count = data[1] / 8
        data.shift(2)
        count.times.with_index do |index|
          values = data.shift(4).map { |value| value.to_f / 100.0 }
          table << [index, values].flatten
        end
        table
      end

      def ddat(data)
        if data[2] == 1
          labels = ['Detection', 'Micro Detection', 'Angle', 'Direction', 'Range', 'Speed']
          labels
            .map
            .with_index { |label, index| "#{label}: #{DETECTION_FLAGS[to_symbol(label)][data[index + 2]]}" }
            .join("\n")
        else
          'DDAT: No Detection'
        end
      end

      private

      def to_symbol(string)
        modified_string = string.gsub(' ', '_').downcase
        modified_string.to_sym
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rfbeam-0.4.3 lib/rfbeam/kld7/cli_formatter.rb
rfbeam-0.4.2 lib/rfbeam/kld7/cli_formatter.rb
rfbeam-0.4.1 lib/rfbeam/kld7/cli_formatter.rb