rfbeam 0.5.0 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/.pre-commit-config.yaml +8 -0
  3. data/.streerc +1 -0
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +48 -47
  6. data/Gemfile +10 -7
  7. data/Gemfile.lock +48 -44
  8. data/README.md +71 -113
  9. data/Rakefile +3 -2
  10. data/cliff.toml +74 -0
  11. data/cog.toml +28 -0
  12. data/exe/rfbeam +0 -1
  13. data/lib/rfbeam/cli.rb +93 -36
  14. data/lib/rfbeam/kld7/constants.rb +66 -138
  15. data/lib/rfbeam/kld7/detection_params.rb +149 -0
  16. data/lib/rfbeam/kld7/module_params.rb +96 -0
  17. data/lib/rfbeam/kld7/operation_params.rb +162 -0
  18. data/lib/rfbeam/kld7/radar_messages.rb +18 -17
  19. data/lib/rfbeam/kld7/serial_connection.rb +13 -14
  20. data/lib/rfbeam/kld7/streamer.rb +83 -0
  21. data/lib/rfbeam/version.rb +1 -1
  22. data/lib/rfbeam.rb +8 -7
  23. data/output.csv +257 -0
  24. data/rfbeam.gemspec +6 -11
  25. data/streamer2.rb +55 -0
  26. data/streaming.rb +71 -0
  27. data/yarn.lock +221 -12
  28. metadata +23 -173
  29. data/.rubocop.yml +0 -25
  30. data/.streerc +0 -2
  31. data/lib/rfbeam/kld7/cli_formatter.rb +0 -61
  32. data/lib/rfbeam/kld7/cli_output.rb +0 -141
  33. data/lib/rfbeam/kld7/radar_parameters.rb +0 -397
  34. data/node_modules/.bin/prettier +0 -1
  35. data/node_modules/.yarn-integrity +0 -19
  36. data/node_modules/@prettier/plugin-ruby/CHANGELOG.md +0 -1351
  37. data/node_modules/@prettier/plugin-ruby/CODE_OF_CONDUCT.md +0 -76
  38. data/node_modules/@prettier/plugin-ruby/CONTRIBUTING.md +0 -185
  39. data/node_modules/@prettier/plugin-ruby/LICENSE +0 -21
  40. data/node_modules/@prettier/plugin-ruby/README.md +0 -226
  41. data/node_modules/@prettier/plugin-ruby/docs/logo.png +0 -0
  42. data/node_modules/@prettier/plugin-ruby/node_modules/.bin/prettier +0 -1
  43. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/LICENSE +0 -5945
  44. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/README.md +0 -109
  45. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/bin-prettier.js +0 -62
  46. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/cli.js +0 -15136
  47. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/doc.js +0 -1473
  48. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-angular.mjs +0 -2
  49. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-babel.mjs +0 -29
  50. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-espree.mjs +0 -26
  51. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-flow.mjs +0 -35
  52. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-glimmer.mjs +0 -27
  53. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-graphql.mjs +0 -15
  54. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-html.mjs +0 -36
  55. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-markdown.mjs +0 -76
  56. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-meriyah.mjs +0 -19
  57. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-postcss.mjs +0 -76
  58. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-typescript.mjs +0 -257
  59. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-yaml.mjs +0 -150
  60. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/standalone.mjs +0 -116
  61. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/index.js +0 -37885
  62. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/package.json +0 -21
  63. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-angular.js +0 -2
  64. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-babel.js +0 -29
  65. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-espree.js +0 -26
  66. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-flow.js +0 -35
  67. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-glimmer.js +0 -27
  68. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-graphql.js +0 -15
  69. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-html.js +0 -36
  70. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-markdown.js +0 -76
  71. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-meriyah.js +0 -19
  72. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-postcss.js +0 -76
  73. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-typescript.js +0 -257
  74. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-yaml.js +0 -150
  75. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/standalone.js +0 -116
  76. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/third-party.js +0 -8978
  77. data/node_modules/@prettier/plugin-ruby/package.json +0 -64
  78. data/node_modules/@prettier/plugin-ruby/prettier.gemspec +0 -36
  79. data/node_modules/@prettier/plugin-ruby/rubocop.yml +0 -64
  80. data/node_modules/@prettier/plugin-ruby/src/getInfo.js +0 -23
  81. data/node_modules/@prettier/plugin-ruby/src/netcat.js +0 -13
  82. data/node_modules/@prettier/plugin-ruby/src/parseSync.js +0 -236
  83. data/node_modules/@prettier/plugin-ruby/src/plugin.js +0 -172
  84. data/node_modules/@prettier/plugin-ruby/src/server.rb +0 -199
  85. data/node_modules/prettier/LICENSE +0 -5970
  86. data/node_modules/prettier/README.md +0 -109
  87. data/node_modules/prettier/bin-prettier.js +0 -64
  88. data/node_modules/prettier/cli.js +0 -15364
  89. data/node_modules/prettier/doc.js +0 -1473
  90. data/node_modules/prettier/esm/parser-angular.mjs +0 -2
  91. data/node_modules/prettier/esm/parser-babel.mjs +0 -29
  92. data/node_modules/prettier/esm/parser-espree.mjs +0 -26
  93. data/node_modules/prettier/esm/parser-flow.mjs +0 -35
  94. data/node_modules/prettier/esm/parser-glimmer.mjs +0 -27
  95. data/node_modules/prettier/esm/parser-graphql.mjs +0 -15
  96. data/node_modules/prettier/esm/parser-html.mjs +0 -36
  97. data/node_modules/prettier/esm/parser-markdown.mjs +0 -76
  98. data/node_modules/prettier/esm/parser-meriyah.mjs +0 -19
  99. data/node_modules/prettier/esm/parser-postcss.mjs +0 -76
  100. data/node_modules/prettier/esm/parser-typescript.mjs +0 -49
  101. data/node_modules/prettier/esm/parser-yaml.mjs +0 -150
  102. data/node_modules/prettier/esm/standalone.mjs +0 -116
  103. data/node_modules/prettier/index.js +0 -38236
  104. data/node_modules/prettier/package.json +0 -21
  105. data/node_modules/prettier/parser-angular.js +0 -2
  106. data/node_modules/prettier/parser-babel.js +0 -29
  107. data/node_modules/prettier/parser-espree.js +0 -26
  108. data/node_modules/prettier/parser-flow.js +0 -35
  109. data/node_modules/prettier/parser-glimmer.js +0 -27
  110. data/node_modules/prettier/parser-graphql.js +0 -15
  111. data/node_modules/prettier/parser-html.js +0 -36
  112. data/node_modules/prettier/parser-markdown.js +0 -76
  113. data/node_modules/prettier/parser-meriyah.js +0 -19
  114. data/node_modules/prettier/parser-postcss.js +0 -76
  115. data/node_modules/prettier/parser-typescript.js +0 -49
  116. data/node_modules/prettier/parser-yaml.js +0 -150
  117. data/node_modules/prettier/standalone.js +0 -116
  118. data/node_modules/prettier/third-party.js +0 -8978
  119. data/package.json +0 -6
data/.rubocop.yml DELETED
@@ -1,25 +0,0 @@
1
- inherit_gem:
2
- syntax_tree: config/rubocop.yml
3
-
4
- AllCops:
5
- TargetRubyVersion: 3.1
6
- NewCops: enable
7
-
8
- Layout/LineLength:
9
- Max: 120
10
- AutoCorrect: true
11
-
12
- Style/StringLiterals:
13
- EnforcedStyle: single_quotes
14
-
15
- Metrics/ModuleLength:
16
- Enabled: false
17
-
18
- Metrics/MethodLength:
19
- Max: 20
20
-
21
- Metrics/ClassLength:
22
- Enabled: false
23
-
24
- Documentation:
25
- Enabled: false
data/.streerc DELETED
@@ -1,2 +0,0 @@
1
- --print-width=120
2
- --plugins=plugin/single_quotes
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'tty-table'
4
-
5
- module RfBeam
6
- module Kld7
7
- class CliFormatter
8
- def self.format(type, data)
9
- new.format(type, data)
10
- end
11
-
12
- def format(type, data)
13
- case type
14
- when :tdat
15
- tdat(data)
16
- when :pdat
17
- pdat(data)
18
- when :ddat
19
- ddat(data)
20
- end
21
- end
22
-
23
- def pdat_table(data)
24
- table = TTY::Table.new header: ['index', 'dist (M)', 'speed (Km/h)', 'angle (°)', 'mag (db)']
25
- count = data[1] / 8
26
- data.shift(2)
27
- count.times do |index|
28
- values = data.shift(4).map { |value| value.to_f / 100.0 }
29
- table << [index, values].flatten
30
- end
31
- table
32
- end
33
-
34
- private
35
-
36
- def ddat(data)
37
- labels = ['Detection', 'Micro Detection', 'Angle', 'Direction', 'Range', 'Speed']
38
- labels
39
- .map
40
- .with_index { |label, index| "#{label}: #{DETECTION_FLAGS[to_symbol(label)][data[index + 2]]}" }
41
- .join("\n")
42
- end
43
-
44
- def tdat(data)
45
- return 'No target detected' unless data[1].positive?
46
-
47
- [
48
- "Distance: #{data[2].to_f / 100.0} m",
49
- "Speed: #{data[3].to_f / 100.0} km/h",
50
- "Angle: #{data[4].to_f / 100.0}°",
51
- "Mag: #{data[5].to_f / 100.0} db"
52
- ].join("\n")
53
- end
54
-
55
- def to_symbol(string)
56
- modified_string = string.gsub(' ', '_').downcase
57
- modified_string.to_sym
58
- end
59
- end
60
- end
61
- end
@@ -1,141 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'unicode_plot'
4
- require 'io/console'
5
- require 'stringio'
6
- require 'tty-screen'
7
- require 'tty-logger'
8
-
9
- module RfBeam
10
- module Kld7
11
- class CliOutput
12
- attr_reader :radar
13
-
14
- def initialize(radar_id)
15
- devices = RfBeam.connected
16
- if devices.empty?
17
- TTY::Logger.new.warn 'No Radar modules found.'
18
- else
19
- @radar = RfBeam::KLD7.new(devices[radar_id.to_i])
20
- end
21
- end
22
-
23
- def display(type, options)
24
- display_method = options[:stream].nil? ? 'display' : 'stream'
25
- send("#{display_method}_#{type}", options)
26
- end
27
-
28
- def plot(type, stream: false)
29
- stream ? stream_plot(type) : display_plot(type)
30
- end
31
-
32
- def display_plot(type)
33
- out = StringIO.new
34
- def out.tty?
35
- true
36
- end
37
- out.truncate(0)
38
-
39
- plot = send("#{type}_plot")
40
- plot.render(out)
41
-
42
- lines = out.string.lines
43
- lines.each { |line| $stdout.print "\r#{line}" }
44
- $stdout.print "\e[0J"
45
- $stdout.flush
46
-
47
- return unless @streaming
48
-
49
- n = lines.count
50
- $stdout.print "\e[#{n}F"
51
- end
52
-
53
- def stream_plot(type)
54
- @streaming = true
55
- Thread.new { monitor_keypress }
56
-
57
- loop do
58
- display_plot(type)
59
- break unless @streaming
60
- end
61
- end
62
-
63
- private
64
-
65
- def monitor_keypress
66
- loop do
67
- key = $stdin.getch
68
- if key.downcase == 'q'
69
- @streaming = false
70
- break
71
- end
72
- end
73
- end
74
-
75
- def rfft_plot_data(data)
76
- {
77
- x: Array(-128...128),
78
- series1: data.shift(256).map { |value| value / 100 },
79
- series2: data.shift(256).map { |value| value.to_i / 100 }
80
- }
81
- end
82
-
83
- def display_ddat(options)
84
- if options[:raw].nil?
85
- puts RfBeam::Kld7::CliFormatter.format(:ddat, @radar.ddat)
86
- else
87
- puts @radar.ddat.inspect
88
- end
89
- end
90
-
91
- def stream_ddat
92
- @streaming = true
93
- Thread.new { monitor_keypress }
94
- spinner = TTY::Spinner.new('[:spinner] :title ', format: :bouncing_ball)
95
- spinner.run('Done!') do |sp|
96
- loop do
97
- break unless @streaming
98
-
99
- data = @radar.ddat
100
- sp.update title: "Detection: #{DETECTION_FLAGS[:detection][data[2]]}"
101
- end
102
- spinner.update title: ''
103
- end
104
- end
105
-
106
- def display_tdat(options)
107
- if options[:raw].nil?
108
- puts RfBeam::Kld7::CliFormatter.format(:tdat, @radar.tdat)
109
- else
110
- puts @radar.tdat.inspect
111
- end
112
- end
113
-
114
- def display_pdat(options)
115
- table = RfBeam::Kld7::CliFormatter.new.pdat_table(@radar.pdat)
116
- puts "\n Detected Raw Targets"
117
- puts table.render(:unicode, alignment: :center)
118
- end
119
-
120
- def rfft_plot
121
- screen_width = TTY::Screen.width * 0.65
122
- data = rfft_plot_data(@radar.rfft)
123
- plot =
124
- UnicodePlot.lineplot(
125
- data[:x],
126
- data[:series1],
127
- name: 'IF1/2 Averaged',
128
- title: 'Raw FFT',
129
- height: 25,
130
- width: screen_width,
131
- xlabel: 'Speed (km/h)',
132
- ylabel: 'Signal (db)',
133
- xlim: [-128, 128],
134
- ylim: [0, 100]
135
- )
136
- UnicodePlot.lineplot!(plot, data[:x], data[:series2], name: 'Threshold')
137
- plot
138
- end
139
- end
140
- end
141
- end
@@ -1,397 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RfBeam
4
- module Kld7
5
- # -----------------
6
- # Software Version, 'K-LD7_APP-RFB-XXXX'
7
- # -----------------
8
- def sw_version
9
- query_parameter RADAR_PARAMETERS[:sw_version].grps_index
10
- end
11
-
12
- # -----------------
13
- # Base Frequency, 0 = low, 1 = middle (default), 2 = high
14
- # -----------------
15
- def base_frequency
16
- query_parameter RADAR_PARAMETERS[:base_frequency].grps_index
17
- end
18
- alias rbfr base_frequency
19
-
20
- def base_frequency=(frequency = 1)
21
- value =
22
- case frequency
23
- when 0, :low, 'low'
24
- 0
25
- when 1, :middle, 'middle'
26
- 1
27
- when 2, :high, 'high'
28
- 2
29
- else
30
- raise ArgumentError, "Invalid arg: '#{frequency}'"
31
- end
32
- set_parameter(:rbfr, value, :uint32)
33
- end
34
-
35
- alias set_base_frequency base_frequency=
36
- alias rbfr= base_frequency=
37
-
38
- # -----------------
39
- # Maximum Speed, 0 = 12.5km/h, 1 = 25km/h (default), 2 = 50km/h, 3 = 100km/h
40
- # -----------------
41
- def max_speed
42
- query_parameter(RADAR_PARAMETERS[:max_speed].grps_index)
43
- end
44
-
45
- def max_speed=(speed = 1)
46
- raise ArgumentError, "Invalid arg: '#{speed}'" unless (0..3).include?(speed)
47
- raise ArgumentError, 'Expected an Integer' unless speed.is_a?(Integer)
48
-
49
- set_parameter :rspi, speed, :uint32
50
- end
51
-
52
- alias set_max_speed max_speed=
53
- alias rspi max_speed=
54
-
55
- # -----------------
56
- # Maximum Range, 0 = 5m, 1 = 10m (default), 2 = 30m, 3 = 100m
57
- # -----------------
58
- def max_range
59
- query_parameter(RADAR_PARAMETERS[:max_range].grps_index)
60
- end
61
-
62
- def max_range=(range = 1)
63
- raise ArgumentError, "Invalid arg: '#{range}'" unless (0..3).include?(range)
64
- raise ArgumentError, 'Expected an Integer' unless range.is_a?(Integer)
65
-
66
- set_parameter :rrai, range, :uint32
67
- end
68
-
69
- alias rrai= max_range=
70
- alias set_max_range max_range=
71
-
72
- # -----------------
73
- # Threshold Offset, 10 - 60db, (default = 30)
74
- # -----------------
75
- def threshold_offset
76
- query_parameter RADAR_PARAMETERS[:threshold_offset].grps_index
77
- end
78
-
79
- def threshold_offset=(offset = 30)
80
- raise ArgumentError, "Invalid arg: '#{offset}'" unless (10..60).include?(offset)
81
- raise ArgumentError, 'Expected an Integer' unless offset.is_a?(Integer)
82
-
83
- set_parameter :thof, offset, :uint32
84
- end
85
-
86
- alias thof= threshold_offset=
87
- alias set_threshold_offset threshold_offset=
88
-
89
- # -----------------
90
- # Tracking filter type, 0 = Standard (Default), 1 = Fast Tracking, 2 = Long visibility
91
- # -----------------
92
- def tracking_filter
93
- query_parameter RADAR_PARAMETERS[:tracking_filter].grps_index
94
- end
95
-
96
- def tracking_filter=(type = 0)
97
- raise ArgumentError, "Invalid arg: '#{type}'" unless (0..2).include?(type)
98
- raise ArgumentError, 'Expected an Integer' unless type.is_a?(Integer)
99
-
100
- set_parameter :trft, type, :uint32
101
- end
102
- alias trtf= tracking_filter=
103
- alias set_tracking_filter tracking_filter=
104
-
105
- # -----------------
106
- # Vibration suppression, 0 - 16, 0 = No Suppression, 16 = High Suppression, default = 2
107
- # -----------------
108
- def vibration_suppression
109
- query_parameter RADAR_PARAMETERS[:vibration_suppression].grps_index
110
- end
111
-
112
- def vibration_suppression=(value = 2)
113
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..16).include?(value)
114
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
115
-
116
- set_parameter :visu, value, :uint32
117
- end
118
- alias visu= vibration_suppression=
119
- alias set_vibration_suppression vibration_suppression=
120
-
121
- # -----------------
122
- # Minimum Detection distance, 0 - 100% of Range setting, default = 0
123
- # -----------------
124
- def min_detection_distance
125
- query_parameter RADAR_PARAMETERS[:min_detection_distance].grps_index
126
- end
127
-
128
- def min_detection_distance=(value = 0)
129
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..100).include?(value)
130
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
131
-
132
- set_parameter :mira, value, :uint32
133
- end
134
- alias mira= min_detection_distance=
135
- alias set_min_detection_distance min_detection_distance=
136
-
137
- # -----------------
138
- # Maximum Detection distance, 0 - 100% of Range setting, default = 50
139
- # -----------------
140
- def max_detection_distance
141
- query_parameter RADAR_PARAMETERS[:min_detection_distance].grps_index
142
- end
143
-
144
- def max_detection_distance=(value = 50)
145
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..100).include?(value)
146
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
147
-
148
- set_parameter :mara, value, :uint32
149
- end
150
- alias mara= max_detection_distance=
151
- alias set_max_detection_distance max_detection_distance=
152
-
153
- # -----------------
154
- # Minimum Detection Angle, -90° - 90°, default = -90
155
- # -----------------
156
- def min_detection_angle
157
- query_parameter RADAR_PARAMETERS[:min_detection_angle].grps_index
158
- end
159
-
160
- def min_detection_angle=(angle = -90)
161
- raise ArgumentError, "Invalid arg: '#{angle}'" unless (-90..90).include?(angle)
162
- raise ArgumentError, 'Expected an Integer' unless angle.is_a?(Integer)
163
-
164
- set_parameter :mian, angle, :int32
165
- end
166
- alias mian= min_detection_angle=
167
- alias set_min_detection_angle min_detection_angle=
168
-
169
- # -----------------
170
- # Maximum Detection Angle, -90° - 90°, default = 90
171
- # -----------------
172
- def max_detection_angleq
173
- query_parameter RADAR_PARAMETERS[:max_detection_angle].grps_index
174
- end
175
-
176
- def max_detection_angle=(angle = 90)
177
- raise ArgumentError, "Invalid arg: '#{angle}'" unless (-90..90).include?(angle)
178
- raise ArgumentError, 'Expected an Integer' unless angle.is_a?(Integer)
179
-
180
- set_parameter :maan, angle, :int32
181
- end
182
- alias maan= max_detection_angle=
183
- alias set_max_detection_angle max_detection_angle=
184
-
185
- # -----------------
186
- # Minimum Detection Speed, 0 - 100% of Speed setting, default = 0
187
- # -----------------
188
- def min_detection_speed
189
- query_parameter RADAR_PARAMETERS[:min_detection_angle].grps_index
190
- end
191
-
192
- def min_detection_speed=(speed = 0)
193
- raise ArgumentError, "Invalid arg: '#{speed}'" unless (0..100).include?(speed)
194
- raise ArgumentError, 'Expected an Integer' unless speed.is_a?(Integer)
195
-
196
- set_parameter :misp, speed, :uint32
197
- end
198
- alias misp= min_detection_speed=
199
- alias set_min_detection_speed min_detection_speed=
200
-
201
- # -----------------
202
- # Maximum Detection Speed, 0 - 100% of Speed setting, default = 100
203
- # -----------------
204
- def max_detection_speed
205
- query_parameter RADAR_PARAMETERS[:max_detection_speed].grps_index
206
- end
207
-
208
- def max_detection_speed=(speed = 100)
209
- raise ArgumentError, "Invalid arg: '#{speed}'" unless (0..100).include?(speed)
210
- raise ArgumentError, 'Expected an Integer' unless speed.is_a?(Integer)
211
-
212
- set_parameter :masp, speed, :uint32
213
- end
214
- alias masp= max_detection_speed=
215
- alias set_max_detection_speed max_detection_speed=
216
-
217
- # -----------------
218
- # Detection Direction, 0 = Receding, 1 = Approaching, 2 = Both (default)
219
- # -----------------
220
- def detection_direction
221
- query_parameter RADAR_PARAMETERS[:detection_direction].grps_index
222
- end
223
-
224
- def detection_direction=(direction = 2)
225
- raise ArgumentError, "Invalid arg: '#{direction}'" unless (0..2).include?(direction)
226
- raise ArgumentError, 'Expected an Integer' unless direction.is_a?(Integer)
227
-
228
- set_parameter :dedi, direction, :uint32
229
- end
230
- alias dedi= detection_direction=
231
- alias set_detection_direction detection_direction=
232
-
233
- # -----------------
234
- # Range Threshold, 0 - 100% of Range setting, default = 10
235
- # -----------------
236
- def range_threshold
237
- query_parameter RADAR_PARAMETERS[:range_threshold].grps_index
238
- end
239
-
240
- def range_threshold=(value = 10)
241
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..100).include?(value)
242
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
243
-
244
- set_parameter :rath, value, :uint32
245
- end
246
- alias rath= range_threshold=
247
- alias set_range_threshold range_threshold=
248
-
249
- # -----------------
250
- # Angle Threshold, -90° to 90°, default = 0
251
- # -----------------
252
- def angle_threshold
253
- query_parameter RADAR_PARAMETERS[:angle_threshold].grps_index
254
- end
255
-
256
- def angle_threshold=(value = 0)
257
- raise ArgumentError, "Invalid arg: '#{value}'" unless (-90..90).include?(value)
258
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
259
-
260
- set_parameter :anth, value, :int32
261
- end
262
- alias anth= angle_threshold=
263
- alias set_angle_threshold angle_threshold=
264
-
265
- # -----------------
266
- # Speed Threshold, 0 - 100% of speed setting, default = 50
267
- # -----------------
268
- def speed_threshold
269
- query_parameter RADAR_PARAMETERS[:speed_threshold].grps_index
270
- end
271
-
272
- def speed_threshold=(value = 50)
273
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..100).include?(value)
274
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
275
-
276
- set_parameter :spth, value, :uint32
277
- end
278
- alias spth= angle_threshold=
279
- alias set_speed_threshold angle_threshold=
280
-
281
- # -----------------
282
- # Digital output 1, 0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection, default = 0
283
- # -----------------
284
- def digital_output1
285
- query_parameter RADAR_PARAMETERS[:digital_output1].grps_index
286
- end
287
-
288
- def digital_output1=(value = 0)
289
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..4).include?(value)
290
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
291
-
292
- set_parameter :dig1, value, :uint32
293
- end
294
- alias dig1= digital_output1=
295
- alias set_digital_output1 digital_output1=
296
-
297
- # -----------------
298
- # Digital output 2, 0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection, default = 1
299
- # -----------------
300
- def digital_output2
301
- query_parameter RADAR_PARAMETERS[:digital_output2].grps_index
302
- end
303
-
304
- def digital_output2=(value = 1)
305
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..4).include?(value)
306
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
307
-
308
- set_parameter :dig2, value, :uint32
309
- end
310
- alias dig2= digital_output2=
311
- alias set_digital_output2 digital_output2=
312
-
313
- # -----------------
314
- # Digital output 3, 0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection, default = 2
315
- # -----------------
316
- def digital_output3
317
- query_parameter RADAR_PARAMETERS[:digital_output3].grps_index
318
- end
319
-
320
- def digital_output3=(value = 2)
321
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..4).include?(value)
322
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
323
-
324
- set_parameter :dig3, value, :uint32
325
- end
326
- alias dig3= digital_output3=
327
- alias set_digital_output3 digital_output3=
328
-
329
- # -----------------
330
- # Hold Time, 1 - 7200s, default = 1
331
- # -----------------
332
- def hold_time
333
- query_parameter RADAR_PARAMETERS[:hold_time].grps_index
334
- end
335
-
336
- def hold_time=(time = 1)
337
- raise ArgumentError, "Invalid arg: '#{time}'" unless (1..7200).include?(time)
338
- raise ArgumentError, 'Expected an Integer' unless time.is_a?(Integer)
339
-
340
- set_parameter :hold, time, :uint32
341
- end
342
- alias hold= hold_time=
343
- alias set_hold_time hold_time=
344
-
345
- # -----------------
346
- # Micro Detection retrigger, 0 = Off (default), 1 = Retrigger
347
- # -----------------
348
- def micro_detection_retrigger
349
- query_parameter RADAR_PARAMETERS[:set_micro_detection_retrigger].grps_index
350
- end
351
-
352
- def micro_detection_retrigger=(value = 0)
353
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..1).include?(value)
354
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
355
-
356
- set_parameter :mide, value, :uint32
357
- end
358
- alias mide= micro_detection_retrigger=
359
- alias set_micro_detection_retrigger micro_detection_retrigger=
360
-
361
- # -----------------
362
- # Micro Detection sensitivity, 0 - 9, 0 = Min, 9 = Max, default = 4
363
- # -----------------
364
- def micro_detection_sensitivity
365
- query_parameter RADAR_PARAMETERS[:micro_detection_sensitivity].grps_index
366
- end
367
-
368
- def micro_detection_sensitivity=(value = 4)
369
- raise ArgumentError, "Invalid arg: '#{value}'" unless (0..9).include?(value)
370
- raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
371
-
372
- set_parameter :mids, value, :uint32
373
- end
374
- alias mids= micro_detection_sensitivity=
375
- alias set_micro_detection_sensitivity micro_detection_sensitivity=
376
-
377
- private
378
-
379
- def query_parameter(index)
380
- data = grps
381
- data[index]
382
- end
383
-
384
- def set_parameter(header, value, return_type = :uint32)
385
- return_type =
386
- case return_type
387
- when :int32
388
- 'l'
389
- else
390
- 'L'
391
- end
392
- command = [header.upcase.to_s, 4, value]
393
- write command.pack("a4L#{return_type}")
394
- check_response
395
- end
396
- end
397
- end
@@ -1 +0,0 @@
1
- ../prettier/bin-prettier.js
@@ -1,19 +0,0 @@
1
- {
2
- "systemParams": "linux-arm64-108",
3
- "modulesFolders": [
4
- "node_modules"
5
- ],
6
- "flags": [],
7
- "linkedModules": [],
8
- "topLevelPatterns": [
9
- "@prettier/plugin-ruby@^3.2.2",
10
- "prettier@^2.8.7"
11
- ],
12
- "lockfileEntries": {
13
- "@prettier/plugin-ruby@^3.2.2": "https://registry.yarnpkg.com/@prettier/plugin-ruby/-/plugin-ruby-3.2.2.tgz#43c9d85349032f74d34c4f57e6a77487d5c5bdc1",
14
- "prettier@>=2.3.0": "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9",
15
- "prettier@^2.8.7": "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450"
16
- },
17
- "files": [],
18
- "artifacts": {}
19
- }