rfbeam 0.4.8 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a0b3dc099fbf26e535ffa58dad9e643a2556168528d206d8f0fb7d73507cba3e
4
- data.tar.gz: f75cfd53fe0bc32e982dd75e53af8a9e7c976f64abc3eca43ea1a31549ba6bd8
3
+ metadata.gz: a3ca645044245d21d0248633dc68c5ac8608102c0fe4d8a93d825b7735bc225f
4
+ data.tar.gz: 5a443dad972d3c26d5e462597f166c7fa333bc2294ecd3b0529ad036fbe23375
5
5
  SHA512:
6
- metadata.gz: 6f00551148744f9d8f214ebef729fa5f26e84c8403f88ce1cd6534c407a577fc439f284c20899d08d861252f269c007126a06501a4175d0c802c0581c0030861
7
- data.tar.gz: cf59d75f0b12ea6bfa7b6d0dd519da5f8ef5c700c5cdf66d177e8e6bcea59911550aa7c7215049deebc7e13c0c9430ae8b6d6c5ba44c57ad9db6a1155e2c7f86
6
+ metadata.gz: 46e7f4cadd95cfabce4025d34e3cca666c655510b18e74edd451f3194ff70dfbd25bb116c88380873b34416c69f25274a2ee924ec45ac6913eb7cd76392d2c9d
7
+ data.tar.gz: f22887f60570dfa98d0430de0a6a487a3da566f1a9776058466015baa09b259026b4d064be99804669fddb9e1703ef8afc5892d5f42e22e6ecca8394278fdc28
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- rfbeam (0.4.8)
12
+ rfbeam (0.4.9)
13
13
  activesupport (~> 6.1.0)
14
14
  rubyserial (~> 0.6.0)
15
15
  thor (~> 1.2.1)
data/README.md CHANGED
@@ -1,11 +1,14 @@
1
1
  # Rfbeam
2
2
 
3
- ![Gem](https://img.shields.io/gem/v/rfbeam?color=green&label=version)
4
3
  ![Ruby](https://img.shields.io/static/v1?message=Ruby&color=red&logo=Ruby&logoColor=FFFFFF&label=v3.1.2)
5
4
  ![Ruby](https://img.shields.io/gitlab/license/robcarruthers/rfbeam?color=orange)
6
5
 
7
- RfBeam is a simple, high-level interface for the RFBeam radar modules.
8
- The user can query process and raw detection data and set the radar parameters for the sensor.
6
+ ![Gem](https://img.shields.io/gem/v/rfbeam?color=green&label=version)
7
+ ![Build](https://img.shields.io/gitlab/pipeline-status/robcarruthers/rfbeam?branch=master)
8
+ ![Build](https://img.shields.io/gitlab/last-commit/robcarruthers/rfbeam)
9
+
10
+ RfBeam is a simple, high-level interface and CLI for the RFBeam radar modules.
11
+ The user can query/set radar parameters, raw detection data and stream data from the sensor.
9
12
 
10
13
  At this stage it only works on Linux and Mac with the K-LD7 module.
11
14
 
@@ -5,39 +5,46 @@ require 'tty-table'
5
5
  module RfBeam
6
6
  module Kld7
7
7
  class CliFormatter
8
- def tdat(data)
9
- { dist: data[2], speed: data[3], angle: data[4], mag: data[5] }
10
- end
11
-
12
- def pdat_table(data)
13
- table = TTY::Table.new header: ['index', 'dist (M)', 'speed (Km/h)', 'angle (°)', 'mag (db)']
14
- count = data[1] / 8
15
- data.shift(2)
16
- count.times do |index|
17
- values = data.shift(4).map { |value| value.to_f / 100.0 }
18
- table << [index, values].flatten
8
+ def format(type, data)
9
+ case type
10
+ when :tdat
11
+ tdat(data)
12
+ when :pdat
13
+ pdat_table(data)
14
+ when :ddat
15
+ ddat(data)
19
16
  end
20
- table
21
17
  end
18
+ end
22
19
 
23
- def ddat(data)
24
- if data[2] == 1
25
- labels = ['Detection', 'Micro Detection', 'Angle', 'Direction', 'Range', 'Speed']
26
- labels
27
- .map
28
- .with_index { |label, index| "#{label}: #{DETECTION_FLAGS[to_symbol(label)][data[index + 2]]}" }
29
- .join("\n")
30
- else
31
- 'DDAT: No Detection'
32
- end
20
+ def tdat(data)
21
+ { dist: data[2], speed: data[3], angle: data[4], mag: data[5] }
22
+ end
23
+
24
+ def pdat_table(data)
25
+ table = TTY::Table.new header: ['index', 'dist (M)', 'speed (Km/h)', 'angle (°)', 'mag (db)']
26
+ count = data[1] / 8
27
+ data.shift(2)
28
+ count.times do |index|
29
+ values = data.shift(4).map { |value| value.to_f / 100.0 }
30
+ table << [index, values].flatten
33
31
  end
32
+ table
33
+ end
34
34
 
35
- private
35
+ private
36
36
 
37
- def to_symbol(string)
38
- modified_string = string.gsub(' ', '_').downcase
39
- modified_string.to_sym
40
- end
37
+ def ddat(data)
38
+ labels = ['Detection', 'Micro Detection', 'Angle', 'Direction', 'Range', 'Speed']
39
+ labels
40
+ .map
41
+ .with_index { |label, index| "#{label}: #{DETECTION_FLAGS[to_symbol(label)][data[index + 2]]}" }
42
+ .join("\n")
43
+ end
44
+
45
+ def to_symbol(string)
46
+ modified_string = string.gsub(' ', '_').downcase
47
+ modified_string.to_sym
41
48
  end
42
49
  end
43
50
  end
@@ -80,7 +80,7 @@ module RfBeam
80
80
  end
81
81
 
82
82
  def display_ddat
83
- puts RfBeam::Kld7::CliFormatter.new.ddat(@radar.ddat)
83
+ puts RfBeam::Kld7::CliFormatter.new.format(:ddat, @radar.ddat)
84
84
  end
85
85
 
86
86
  def stream_ddat
@@ -28,7 +28,7 @@ module RfBeam
28
28
  detection: %w[No Yes],
29
29
  micro_detection: %w[No Yes],
30
30
  angle: %w[Left Right],
31
- direction: %w[Receding Approaching],
31
+ direction: ['Going away', 'Approaching'],
32
32
  range: %w[Far Near],
33
33
  speed: %w[Low High]
34
34
  }.freeze
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RfBeam
4
- VERSION = '0.4.8'
4
+ VERSION = '0.4.9'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfbeam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Carruthers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-09 00:00:00.000000000 Z
11
+ date: 2023-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport