rfbeam 0.4.8 → 0.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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