rfbeam 0.5.0 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.pre-commit-config.yaml +8 -0
- data/.streerc +1 -0
- data/.tool-versions +1 -1
- data/CHANGELOG.md +48 -47
- data/Gemfile +10 -7
- data/Gemfile.lock +48 -44
- data/README.md +71 -113
- data/Rakefile +3 -2
- data/cliff.toml +74 -0
- data/cog.toml +28 -0
- data/exe/rfbeam +0 -1
- data/lib/rfbeam/cli.rb +93 -36
- data/lib/rfbeam/kld7/constants.rb +66 -138
- data/lib/rfbeam/kld7/detection_params.rb +149 -0
- data/lib/rfbeam/kld7/module_params.rb +96 -0
- data/lib/rfbeam/kld7/operation_params.rb +162 -0
- data/lib/rfbeam/kld7/radar_messages.rb +18 -17
- data/lib/rfbeam/kld7/serial_connection.rb +13 -14
- data/lib/rfbeam/kld7/streamer.rb +83 -0
- data/lib/rfbeam/version.rb +1 -1
- data/lib/rfbeam.rb +8 -7
- data/output.csv +257 -0
- data/rfbeam.gemspec +6 -11
- data/streamer2.rb +55 -0
- data/streaming.rb +71 -0
- data/yarn.lock +221 -12
- metadata +23 -173
- data/.rubocop.yml +0 -25
- data/.streerc +0 -2
- data/lib/rfbeam/kld7/cli_formatter.rb +0 -61
- data/lib/rfbeam/kld7/cli_output.rb +0 -141
- data/lib/rfbeam/kld7/radar_parameters.rb +0 -397
- data/node_modules/.bin/prettier +0 -1
- data/node_modules/.yarn-integrity +0 -19
- data/node_modules/@prettier/plugin-ruby/CHANGELOG.md +0 -1351
- data/node_modules/@prettier/plugin-ruby/CODE_OF_CONDUCT.md +0 -76
- data/node_modules/@prettier/plugin-ruby/CONTRIBUTING.md +0 -185
- data/node_modules/@prettier/plugin-ruby/LICENSE +0 -21
- data/node_modules/@prettier/plugin-ruby/README.md +0 -226
- data/node_modules/@prettier/plugin-ruby/docs/logo.png +0 -0
- data/node_modules/@prettier/plugin-ruby/node_modules/.bin/prettier +0 -1
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/LICENSE +0 -5945
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/README.md +0 -109
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/bin-prettier.js +0 -62
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/cli.js +0 -15136
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/doc.js +0 -1473
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-angular.mjs +0 -2
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-babel.mjs +0 -29
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-espree.mjs +0 -26
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-flow.mjs +0 -35
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-glimmer.mjs +0 -27
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-graphql.mjs +0 -15
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-html.mjs +0 -36
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-markdown.mjs +0 -76
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-meriyah.mjs +0 -19
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-postcss.mjs +0 -76
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-typescript.mjs +0 -257
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-yaml.mjs +0 -150
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/standalone.mjs +0 -116
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/index.js +0 -37885
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/package.json +0 -21
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-angular.js +0 -2
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-babel.js +0 -29
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-espree.js +0 -26
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-flow.js +0 -35
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-glimmer.js +0 -27
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-graphql.js +0 -15
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-html.js +0 -36
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-markdown.js +0 -76
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-meriyah.js +0 -19
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-postcss.js +0 -76
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-typescript.js +0 -257
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-yaml.js +0 -150
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/standalone.js +0 -116
- data/node_modules/@prettier/plugin-ruby/node_modules/prettier/third-party.js +0 -8978
- data/node_modules/@prettier/plugin-ruby/package.json +0 -64
- data/node_modules/@prettier/plugin-ruby/prettier.gemspec +0 -36
- data/node_modules/@prettier/plugin-ruby/rubocop.yml +0 -64
- data/node_modules/@prettier/plugin-ruby/src/getInfo.js +0 -23
- data/node_modules/@prettier/plugin-ruby/src/netcat.js +0 -13
- data/node_modules/@prettier/plugin-ruby/src/parseSync.js +0 -236
- data/node_modules/@prettier/plugin-ruby/src/plugin.js +0 -172
- data/node_modules/@prettier/plugin-ruby/src/server.rb +0 -199
- data/node_modules/prettier/LICENSE +0 -5970
- data/node_modules/prettier/README.md +0 -109
- data/node_modules/prettier/bin-prettier.js +0 -64
- data/node_modules/prettier/cli.js +0 -15364
- data/node_modules/prettier/doc.js +0 -1473
- data/node_modules/prettier/esm/parser-angular.mjs +0 -2
- data/node_modules/prettier/esm/parser-babel.mjs +0 -29
- data/node_modules/prettier/esm/parser-espree.mjs +0 -26
- data/node_modules/prettier/esm/parser-flow.mjs +0 -35
- data/node_modules/prettier/esm/parser-glimmer.mjs +0 -27
- data/node_modules/prettier/esm/parser-graphql.mjs +0 -15
- data/node_modules/prettier/esm/parser-html.mjs +0 -36
- data/node_modules/prettier/esm/parser-markdown.mjs +0 -76
- data/node_modules/prettier/esm/parser-meriyah.mjs +0 -19
- data/node_modules/prettier/esm/parser-postcss.mjs +0 -76
- data/node_modules/prettier/esm/parser-typescript.mjs +0 -49
- data/node_modules/prettier/esm/parser-yaml.mjs +0 -150
- data/node_modules/prettier/esm/standalone.mjs +0 -116
- data/node_modules/prettier/index.js +0 -38236
- data/node_modules/prettier/package.json +0 -21
- data/node_modules/prettier/parser-angular.js +0 -2
- data/node_modules/prettier/parser-babel.js +0 -29
- data/node_modules/prettier/parser-espree.js +0 -26
- data/node_modules/prettier/parser-flow.js +0 -35
- data/node_modules/prettier/parser-glimmer.js +0 -27
- data/node_modules/prettier/parser-graphql.js +0 -15
- data/node_modules/prettier/parser-html.js +0 -36
- data/node_modules/prettier/parser-markdown.js +0 -76
- data/node_modules/prettier/parser-meriyah.js +0 -19
- data/node_modules/prettier/parser-postcss.js +0 -76
- data/node_modules/prettier/parser-typescript.js +0 -49
- data/node_modules/prettier/parser-yaml.js +0 -150
- data/node_modules/prettier/standalone.js +0 -116
- data/node_modules/prettier/third-party.js +0 -8978
- data/package.json +0 -6
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# rubocop:disable all
|
2
3
|
|
3
4
|
module RfBeam
|
4
|
-
module
|
5
|
+
module KLD7
|
5
6
|
# All supported Serial port baude rates
|
6
7
|
BAUDE_RATES = { 0 => 115_200, 1 => 460_800, 2 => 921_600, 3 => 2_000_000, 4 => 3_000_000 }.freeze
|
7
8
|
|
@@ -25,239 +26,166 @@ module RfBeam
|
|
25
26
|
|
26
27
|
# The angle, direction, range and speed flags are only valid if the detection flag is 1.
|
27
28
|
DETECTION_FLAGS = {
|
28
|
-
detection:
|
29
|
-
micro_detection:
|
29
|
+
detection: ['No Detection', 'Detection'],
|
30
|
+
micro_detection: ['No Detection', 'Detection'],
|
30
31
|
angle: %w[Left Right],
|
31
|
-
direction: [
|
32
|
+
direction: %w[Receding Approaching],
|
32
33
|
range: %w[Far Near],
|
33
34
|
speed: %w[Low High]
|
34
35
|
}.freeze
|
35
36
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
@grps_index = grps_index
|
42
|
-
@description = options.fetch(:description, nil)
|
43
|
-
@default = options.fetch(:default, nil)
|
44
|
-
@units = options.fetch(:units, nil)
|
45
|
-
@str_values = options.fetch(:str_values, [])
|
37
|
+
Param =
|
38
|
+
Data.define(:name, :grps_index, :description, :default, :units, :values) do |_param|
|
39
|
+
def initialize(name:, grps_index:, description: nil, default: nil, units: nil, values: [])
|
40
|
+
super(name:, grps_index:, description:, default:, units:, values:)
|
41
|
+
end
|
46
42
|
end
|
47
|
-
end
|
48
43
|
|
49
44
|
RADAR_PARAMETERS = {
|
50
|
-
sw_version: Param.new(name: 'Software Version', grps_index: 2,
|
45
|
+
sw_version: Param.new(name: 'Software Version', grps_index: 2, default: 'K-LD7_APP-RFB-XXXX'),
|
51
46
|
base_frequency:
|
52
47
|
Param.new(
|
53
48
|
name: 'Base Frequency',
|
54
49
|
grps_index: 3,
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
str_values: %w[Low Middle High]
|
59
|
-
}
|
50
|
+
description: '0 = Low, 1 = Middle, 2 = High',
|
51
|
+
default: 1,
|
52
|
+
values: %w[Low Middle High]
|
60
53
|
),
|
61
54
|
max_speed:
|
62
55
|
Param.new(
|
63
56
|
name: 'Maximum Speed',
|
64
57
|
grps_index: 4,
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
str_values: %w[12.5 25 50 100]
|
70
|
-
}
|
58
|
+
description: '0 = 12km/h, 1 = 25km/h, 2 = 50km/h, 3 = 100km/h',
|
59
|
+
default: 1,
|
60
|
+
units: 'km/h',
|
61
|
+
values: %w[12.5 25 50 100]
|
71
62
|
),
|
72
63
|
max_range:
|
73
64
|
Param.new(
|
74
65
|
name: 'Maximum Range',
|
75
66
|
grps_index: 5,
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
str_values: %w[5m 10m 30m 100m]
|
80
|
-
}
|
67
|
+
description: '0 = 5m, 1 = 10m, 2 = 30m, 3 = 100m',
|
68
|
+
default: 1,
|
69
|
+
values: %w[5m 10m 30m 100m]
|
81
70
|
),
|
82
71
|
threshold_offset:
|
83
|
-
Param.new(
|
84
|
-
name: 'Threshold Offset',
|
85
|
-
grps_index: 6,
|
86
|
-
options: {
|
87
|
-
description: '10db - 60db',
|
88
|
-
default: 30,
|
89
|
-
units: 'db'
|
90
|
-
}
|
91
|
-
),
|
72
|
+
Param.new(name: 'Threshold Offset', grps_index: 6, description: '10db - 60db', default: 30, units: 'db'),
|
92
73
|
tracking_filter:
|
93
74
|
Param.new(
|
94
75
|
name: 'Tracking Filter Type',
|
95
76
|
grps_index: 7,
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
str_values: ['standard', 'Fast Detection', 'Long Visibility']
|
100
|
-
}
|
77
|
+
description: '0 = Standard, 2 = Fast Detection, 3 = Long Visibility',
|
78
|
+
default: 0,
|
79
|
+
values: ['standard', 'Fast Detection', 'Long Visibility']
|
101
80
|
),
|
102
81
|
vibration_suppression:
|
103
82
|
Param.new(
|
104
83
|
name: 'Vibration Suppression',
|
105
84
|
grps_index: 8,
|
106
|
-
|
107
|
-
|
108
|
-
default: 2
|
109
|
-
}
|
85
|
+
description: '0-16, 0 = No Suppression, 16 = High Suppression',
|
86
|
+
default: 2
|
110
87
|
),
|
111
88
|
min_detection_distance:
|
112
89
|
Param.new(
|
113
90
|
name: 'Minimum Detection Distance',
|
114
91
|
grps_index: 9,
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
units: '%'
|
119
|
-
}
|
92
|
+
description: '0 - 100% of range setting',
|
93
|
+
default: 0,
|
94
|
+
units: '%'
|
120
95
|
),
|
121
96
|
max_detection_distance:
|
122
97
|
Param.new(
|
123
98
|
name: 'Maximum Detection Distance',
|
124
99
|
grps_index: 10,
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
units: '%'
|
129
|
-
}
|
100
|
+
description: '0 - 100% of range setting',
|
101
|
+
default: 50,
|
102
|
+
units: '%'
|
130
103
|
),
|
131
104
|
min_detection_angle:
|
132
|
-
Param.new(
|
133
|
-
name: 'Minimum Detection Angle',
|
134
|
-
grps_index: 11,
|
135
|
-
options: {
|
136
|
-
description: '-90° - 90°',
|
137
|
-
default: -90,
|
138
|
-
units: '°'
|
139
|
-
}
|
140
|
-
),
|
105
|
+
Param.new(name: 'Minimum Detection Angle', grps_index: 11, description: '-90° - 90°', default: -90, units: '°'),
|
141
106
|
max_detection_angle:
|
142
|
-
Param.new(
|
143
|
-
name: 'Maximum Detection Angle',
|
144
|
-
grps_index: 12,
|
145
|
-
options: {
|
146
|
-
description: '-90° - 90°',
|
147
|
-
default: 90,
|
148
|
-
units: '°'
|
149
|
-
}
|
150
|
-
),
|
107
|
+
Param.new(name: 'Maximum Detection Angle', grps_index: 12, description: '-90° - 90°', default: 90, units: '°'),
|
151
108
|
min_detection_speed:
|
152
109
|
Param.new(
|
153
110
|
name: 'Minimum Detection Speed',
|
154
111
|
grps_index: 13,
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
units: '%'
|
159
|
-
}
|
112
|
+
description: '0 - 100% of speed setting',
|
113
|
+
default: 0,
|
114
|
+
units: '%'
|
160
115
|
),
|
161
116
|
max_detection_speed:
|
162
117
|
Param.new(
|
163
118
|
name: 'Maximum Detection Speed',
|
164
119
|
grps_index: 14,
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
units: '%'
|
169
|
-
}
|
120
|
+
description: '0 - 100% of speed setting',
|
121
|
+
default: 100,
|
122
|
+
units: '%'
|
170
123
|
),
|
171
124
|
detection_direction:
|
172
125
|
Param.new(
|
173
126
|
name: 'Detection Direction',
|
174
127
|
grps_index: 15,
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
str_values: %w[Receding Approaching Both]
|
179
|
-
}
|
128
|
+
description: '0 = Receding, 1 = Approaching, 2 = Both',
|
129
|
+
default: 2,
|
130
|
+
values: %w[Receding Approaching Both]
|
180
131
|
),
|
181
132
|
range_threshold:
|
182
133
|
Param.new(
|
183
134
|
name: 'Range Threshold',
|
184
135
|
grps_index: 16,
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
units: '%'
|
189
|
-
}
|
136
|
+
description: '0 - 100% of range setting',
|
137
|
+
default: 10,
|
138
|
+
units: '%'
|
190
139
|
),
|
191
140
|
angle_threshold:
|
192
|
-
Param.new(
|
193
|
-
name: 'Angle Threshold',
|
194
|
-
grps_index: 17,
|
195
|
-
options: {
|
196
|
-
description: '-90° - 90°',
|
197
|
-
default: 0,
|
198
|
-
units: '°'
|
199
|
-
}
|
200
|
-
),
|
141
|
+
Param.new(name: 'Angle Threshold', grps_index: 17, description: '-90° - 90°', default: 0, units: '°'),
|
201
142
|
speed_threshold:
|
202
143
|
Param.new(
|
203
144
|
name: 'Speed Threshold',
|
204
145
|
grps_index: 18,
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
units: '%'
|
209
|
-
}
|
146
|
+
description: '0 - 100% of speed setting',
|
147
|
+
default: 50,
|
148
|
+
units: '%'
|
210
149
|
),
|
211
150
|
digital_output1:
|
212
151
|
Param.new(
|
213
152
|
name: 'Digital Output 1',
|
214
153
|
grps_index: 19,
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
str_values: %w[Direction Angle Range Speed Micro]
|
219
|
-
}
|
154
|
+
description: '0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection',
|
155
|
+
default: 0,
|
156
|
+
values: %w[Direction Angle Range Speed Micro]
|
220
157
|
),
|
221
158
|
digital_output2:
|
222
159
|
Param.new(
|
223
160
|
name: 'Digital Output 2',
|
224
161
|
grps_index: 20,
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
str_values: %w[Direction Angle Range Speed Micro]
|
229
|
-
}
|
162
|
+
description: '0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection',
|
163
|
+
default: 1,
|
164
|
+
values: %w[Direction Angle Range Speed Micro]
|
230
165
|
),
|
231
166
|
digital_output3:
|
232
167
|
Param.new(
|
233
168
|
name: 'Digital Output 3',
|
234
169
|
grps_index: 21,
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
str_values: %w[Direction Angle Range Speed Micro]
|
239
|
-
}
|
170
|
+
description: '0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection',
|
171
|
+
default: 2,
|
172
|
+
values: %w[Direction Angle Range Speed Micro]
|
240
173
|
),
|
241
|
-
hold_time:
|
242
|
-
Param.new(name: 'Hold Time', grps_index: 22, options: { description: '1 - 7200s', default: 1, units: 's' }),
|
174
|
+
hold_time: Param.new(name: 'Hold Time', grps_index: 22, description: '1 - 7200s', default: 1, units: 's'),
|
243
175
|
micro_detection_retrigger:
|
244
176
|
Param.new(
|
245
177
|
name: 'Micro Detection Trigger',
|
246
178
|
grps_index: 23,
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
str_values: %w[Off Retrigger]
|
251
|
-
}
|
179
|
+
description: '0 = Off, 1 = Retrigger',
|
180
|
+
default: 0,
|
181
|
+
values: %w[Off Retrigger]
|
252
182
|
),
|
253
183
|
micro_detection_sensativity:
|
254
184
|
Param.new(
|
255
185
|
name: 'Micro Detection Sensativity',
|
256
186
|
grps_index: 24,
|
257
|
-
|
258
|
-
|
259
|
-
default: 4
|
260
|
-
}
|
187
|
+
description: '0 - 9, 0 = Min, 9 = Max',
|
188
|
+
default: 4
|
261
189
|
)
|
262
190
|
}.freeze
|
263
191
|
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RfBeam
|
4
|
+
module KLD7
|
5
|
+
# -----------------
|
6
|
+
# Minimum Detection distance, 0 - 100% of Range setting, default = 0
|
7
|
+
# -----------------
|
8
|
+
def min_detection_distance
|
9
|
+
query_parameter RADAR_PARAMETERS[:min_detection_distance].grps_index
|
10
|
+
end
|
11
|
+
|
12
|
+
def min_detection_distance=(value = 0)
|
13
|
+
raise ArgumentError, "Invalid arg: '#{value}'" unless (0..100).cover?(value)
|
14
|
+
raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
|
15
|
+
|
16
|
+
set_parameter :mira, value, :uint32
|
17
|
+
end
|
18
|
+
alias mira= min_detection_distance=
|
19
|
+
alias set_min_detection_distance min_detection_distance=
|
20
|
+
|
21
|
+
# -----------------
|
22
|
+
# Maximum Detection distance, 0 - 100% of Range setting, default = 50
|
23
|
+
# -----------------
|
24
|
+
def max_detection_distance
|
25
|
+
query_parameter RADAR_PARAMETERS[:min_detection_distance].grps_index
|
26
|
+
end
|
27
|
+
|
28
|
+
def max_detection_distance=(value = 50)
|
29
|
+
raise ArgumentError, "Invalid arg: '#{value}'" unless (0..100).cover?(value)
|
30
|
+
raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
|
31
|
+
|
32
|
+
set_parameter :mara, value, :uint32
|
33
|
+
end
|
34
|
+
alias mara= max_detection_distance=
|
35
|
+
alias set_max_detection_distance max_detection_distance=
|
36
|
+
|
37
|
+
# -----------------
|
38
|
+
# Minimum Detection Angle, -90° - 90°, default = -90
|
39
|
+
# -----------------
|
40
|
+
def min_detection_angle
|
41
|
+
query_parameter RADAR_PARAMETERS[:min_detection_angle].grps_index
|
42
|
+
end
|
43
|
+
|
44
|
+
def min_detection_angle=(angle = -90)
|
45
|
+
raise ArgumentError, "Invalid arg: '#{angle}'" unless (-90..90).cover?(angle)
|
46
|
+
raise ArgumentError, 'Expected an Integer' unless angle.is_a?(Integer)
|
47
|
+
|
48
|
+
set_parameter :mian, angle, :int32
|
49
|
+
end
|
50
|
+
alias mian= min_detection_angle=
|
51
|
+
alias set_min_detection_angle min_detection_angle=
|
52
|
+
|
53
|
+
# -----------------
|
54
|
+
# Maximum Detection Angle, -90° - 90°, default = 90
|
55
|
+
# -----------------
|
56
|
+
def max_detection_angleq
|
57
|
+
query_parameter RADAR_PARAMETERS[:max_detection_angle].grps_index
|
58
|
+
end
|
59
|
+
|
60
|
+
def max_detection_angle=(angle = 90)
|
61
|
+
raise ArgumentError, "Invalid arg: '#{angle}'" unless (-90..90).cover?(angle)
|
62
|
+
raise ArgumentError, 'Expected an Integer' unless angle.is_a?(Integer)
|
63
|
+
|
64
|
+
set_parameter :maan, angle, :int32
|
65
|
+
end
|
66
|
+
alias maan= max_detection_angle=
|
67
|
+
alias set_max_detection_angle max_detection_angle=
|
68
|
+
|
69
|
+
# -----------------
|
70
|
+
# Minimum Detection Speed, 0 - 100% of Speed setting, default = 0
|
71
|
+
# -----------------
|
72
|
+
def min_detection_speed
|
73
|
+
query_parameter RADAR_PARAMETERS[:min_detection_angle].grps_index
|
74
|
+
end
|
75
|
+
|
76
|
+
def min_detection_speed=(speed = 0)
|
77
|
+
raise ArgumentError, "Invalid arg: '#{speed}'" unless (0..100).cover?(speed)
|
78
|
+
raise ArgumentError, 'Expected an Integer' unless speed.is_a?(Integer)
|
79
|
+
|
80
|
+
set_parameter :misp, speed, :uint32
|
81
|
+
end
|
82
|
+
alias misp= min_detection_speed=
|
83
|
+
alias set_min_detection_speed min_detection_speed=
|
84
|
+
|
85
|
+
# -----------------
|
86
|
+
# Maximum Detection Speed, 0 - 100% of Speed setting, default = 100
|
87
|
+
# -----------------
|
88
|
+
def max_detection_speed
|
89
|
+
query_parameter RADAR_PARAMETERS[:max_detection_speed].grps_index
|
90
|
+
end
|
91
|
+
|
92
|
+
def max_detection_speed=(speed = 100)
|
93
|
+
raise ArgumentError, "Invalid arg: '#{speed}'" unless (0..100).cover?(speed)
|
94
|
+
raise ArgumentError, 'Expected an Integer' unless speed.is_a?(Integer)
|
95
|
+
|
96
|
+
set_parameter :masp, speed, :uint32
|
97
|
+
end
|
98
|
+
alias masp= max_detection_speed=
|
99
|
+
alias set_max_detection_speed max_detection_speed=
|
100
|
+
|
101
|
+
# -----------------
|
102
|
+
# Detection Direction, 0 = Receding, 1 = Approaching, 2 = Both (default)
|
103
|
+
# -----------------
|
104
|
+
def detection_direction
|
105
|
+
query_parameter RADAR_PARAMETERS[:detection_direction].grps_index
|
106
|
+
end
|
107
|
+
|
108
|
+
def detection_direction=(direction = 2)
|
109
|
+
raise ArgumentError, "Invalid arg: '#{direction}'" unless (0..2).cover?(direction)
|
110
|
+
raise ArgumentError, 'Expected an Integer' unless direction.is_a?(Integer)
|
111
|
+
|
112
|
+
set_parameter :dedi, direction, :uint32
|
113
|
+
end
|
114
|
+
alias dedi= detection_direction=
|
115
|
+
alias set_detection_direction detection_direction=
|
116
|
+
|
117
|
+
# -----------------
|
118
|
+
# Micro Detection retrigger, 0 = Off (default), 1 = Retrigger
|
119
|
+
# -----------------
|
120
|
+
def micro_detection_retrigger
|
121
|
+
query_parameter RADAR_PARAMETERS[:set_micro_detection_retrigger].grps_index
|
122
|
+
end
|
123
|
+
|
124
|
+
def micro_detection_retrigger=(value = 0)
|
125
|
+
raise ArgumentError, "Invalid arg: '#{value}'" unless (0..1).cover?(value)
|
126
|
+
raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
|
127
|
+
|
128
|
+
set_parameter :mide, value, :uint32
|
129
|
+
end
|
130
|
+
alias mide= micro_detection_retrigger=
|
131
|
+
alias set_micro_detection_retrigger micro_detection_retrigger=
|
132
|
+
|
133
|
+
# -----------------
|
134
|
+
# Micro Detection sensitivity, 0 - 9, 0 = Min, 9 = Max, default = 4
|
135
|
+
# -----------------
|
136
|
+
def micro_detection_sensitivity
|
137
|
+
query_parameter RADAR_PARAMETERS[:micro_detection_sensitivity].grps_index
|
138
|
+
end
|
139
|
+
|
140
|
+
def micro_detection_sensitivity=(value = 4)
|
141
|
+
raise ArgumentError, "Invalid arg: '#{value}'" unless (0..9).cover?(value)
|
142
|
+
raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
|
143
|
+
|
144
|
+
set_parameter :mids, value, :uint32
|
145
|
+
end
|
146
|
+
alias mids= micro_detection_sensitivity=
|
147
|
+
alias set_micro_detection_sensitivity micro_detection_sensitivity=
|
148
|
+
end
|
149
|
+
end
|
@@ -0,0 +1,96 @@
|
|
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
|
+
# Digital output 1, 0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection, default = 0
|
14
|
+
# -----------------
|
15
|
+
def digital_output1
|
16
|
+
query_parameter RADAR_PARAMETERS[:digital_output1].grps_index
|
17
|
+
end
|
18
|
+
|
19
|
+
def digital_output1=(value = 0)
|
20
|
+
raise ArgumentError, "Invalid arg: '#{value}'" unless (0..4).cover?(value)
|
21
|
+
raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
|
22
|
+
|
23
|
+
set_parameter :dig1, value, :uint32
|
24
|
+
end
|
25
|
+
alias dig1= digital_output1=
|
26
|
+
alias set_digital_output1 digital_output1=
|
27
|
+
|
28
|
+
# -----------------
|
29
|
+
# Digital output 2, 0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection, default = 1
|
30
|
+
# -----------------
|
31
|
+
def digital_output2
|
32
|
+
query_parameter RADAR_PARAMETERS[:digital_output2].grps_index
|
33
|
+
end
|
34
|
+
|
35
|
+
def digital_output2=(value = 1)
|
36
|
+
raise ArgumentError, "Invalid arg: '#{value}'" unless (0..4).cover?(value)
|
37
|
+
raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
|
38
|
+
|
39
|
+
set_parameter :dig2, value, :uint32
|
40
|
+
end
|
41
|
+
alias dig2= digital_output2=
|
42
|
+
alias set_digital_output2 digital_output2=
|
43
|
+
|
44
|
+
# -----------------
|
45
|
+
# Digital output 3, 0 = Direction, 1 = Angle, 2 = Range, 3 = Speed, 4 = Micro Detection, default = 2
|
46
|
+
# -----------------
|
47
|
+
def digital_output3
|
48
|
+
query_parameter RADAR_PARAMETERS[:digital_output3].grps_index
|
49
|
+
end
|
50
|
+
|
51
|
+
def digital_output3=(value = 2)
|
52
|
+
raise ArgumentError, "Invalid arg: '#{value}'" unless (0..4).cover?(value)
|
53
|
+
raise ArgumentError, 'Expected an Integer' unless value.is_a?(Integer)
|
54
|
+
|
55
|
+
set_parameter :dig3, value, :uint32
|
56
|
+
end
|
57
|
+
alias dig3= digital_output3=
|
58
|
+
alias set_digital_output3 digital_output3=
|
59
|
+
|
60
|
+
# -----------------
|
61
|
+
# Hold Time, 1 - 7200s, default = 1
|
62
|
+
# -----------------
|
63
|
+
def hold_time
|
64
|
+
query_parameter RADAR_PARAMETERS[:hold_time].grps_index
|
65
|
+
end
|
66
|
+
|
67
|
+
def hold_time=(time = 1)
|
68
|
+
raise ArgumentError, "Invalid arg: '#{time}'" unless (1..7200).cover?(time)
|
69
|
+
raise ArgumentError, 'Expected an Integer' unless time.is_a?(Integer)
|
70
|
+
|
71
|
+
set_parameter :hold, time, :uint32
|
72
|
+
end
|
73
|
+
alias hold= hold_time=
|
74
|
+
alias set_hold_time hold_time=
|
75
|
+
|
76
|
+
private
|
77
|
+
|
78
|
+
def query_parameter(index)
|
79
|
+
data = grps
|
80
|
+
data[index]
|
81
|
+
end
|
82
|
+
|
83
|
+
def set_parameter(header, value, return_type = :uint32)
|
84
|
+
char =
|
85
|
+
case return_type
|
86
|
+
when :int32
|
87
|
+
'l'
|
88
|
+
else
|
89
|
+
'L'
|
90
|
+
end
|
91
|
+
command = [header.upcase.to_s, 4, value]
|
92
|
+
write command.pack("a4L#{char}")
|
93
|
+
check_response
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|