pwn 0.5.621 → 0.5.626

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.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -2
  3. data/Gemfile +1 -1
  4. data/README.md +7 -1
  5. data/bin/pwn_gqrx_scanner +78 -9
  6. data/documentation/Agent-Tool-Registry.md +3 -3
  7. data/documentation/Configuration.md +301 -47
  8. data/documentation/Cron.md +5 -3
  9. data/documentation/Diagrams.md +1 -1
  10. data/documentation/Extrospection.md +472 -26
  11. data/documentation/FFI.md +72 -8
  12. data/documentation/Home.md +4 -4
  13. data/documentation/How-PWN-Works.md +7 -3
  14. data/documentation/Mistakes.md +9 -0
  15. data/documentation/SDR.md +83 -10
  16. data/documentation/Skills-Memory-Learning.md +101 -11
  17. data/documentation/diagrams/agent-tool-registry.svg +56 -55
  18. data/documentation/diagrams/ai-integration-tool-calling.svg +24 -24
  19. data/documentation/diagrams/aws-cloud-security.svg +25 -25
  20. data/documentation/diagrams/burp-vs-zap-preference.svg +12 -12
  21. data/documentation/diagrams/code-scanning-sast.svg +25 -25
  22. data/documentation/diagrams/cron-scheduling.svg +23 -23
  23. data/documentation/diagrams/dot/agent-tool-registry.dot +2 -2
  24. data/documentation/diagrams/dot/extrospection-world-awareness.dot +33 -6
  25. data/documentation/diagrams/dot/hardware-hacking.dot +3 -1
  26. data/documentation/diagrams/dot/memory-skills-detailed.dot +4 -2
  27. data/documentation/diagrams/dot/mistakes-negative-feedback.dot +4 -2
  28. data/documentation/diagrams/dot/overall-pwn-architecture.dot +3 -3
  29. data/documentation/diagrams/dot/persistence-filesystem.dot +3 -3
  30. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +10 -4
  31. data/documentation/diagrams/dot/sdr-radio-flow.dot +39 -16
  32. data/documentation/diagrams/driver-framework.svg +13 -13
  33. data/documentation/diagrams/extrospection-world-awareness.svg +383 -177
  34. data/documentation/diagrams/fuzzing-workflow.svg +24 -24
  35. data/documentation/diagrams/hardware-hacking.svg +84 -69
  36. data/documentation/diagrams/history-to-drivers.svg +18 -18
  37. data/documentation/diagrams/memory-skills-detailed.svg +137 -120
  38. data/documentation/diagrams/mistakes-negative-feedback.svg +152 -137
  39. data/documentation/diagrams/network-infra-testing.svg +27 -27
  40. data/documentation/diagrams/overall-pwn-architecture.svg +97 -97
  41. data/documentation/diagrams/penetration-testing-workflow.svg +30 -30
  42. data/documentation/diagrams/persistence-filesystem.svg +100 -94
  43. data/documentation/diagrams/plugin-ecosystem.svg +35 -35
  44. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +254 -207
  45. data/documentation/diagrams/pwn-repl-prototyping.svg +20 -20
  46. data/documentation/diagrams/reporting-pipeline.svg +18 -18
  47. data/documentation/diagrams/reverse-engineering-flow.svg +21 -21
  48. data/documentation/diagrams/sdr-radio-flow.svg +223 -91
  49. data/documentation/diagrams/sessions-cron-automation.svg +18 -18
  50. data/documentation/diagrams/swarm-multi-agent.svg +39 -39
  51. data/documentation/diagrams/web-application-testing.svg +26 -26
  52. data/documentation/diagrams/zero-day-research-flow.svg +25 -25
  53. data/documentation/pwn-ai-Agent.md +16 -10
  54. data/documentation/pwn_silent_help_learn_demo.gif +0 -0
  55. data/lib/pwn/ai/agent/assembly.rb +1 -1
  56. data/lib/pwn/ai/agent/btc.rb +1 -1
  57. data/lib/pwn/ai/agent/burp_suite.rb +1 -1
  58. data/lib/pwn/ai/agent/extrospection.rb +2562 -57
  59. data/lib/pwn/ai/agent/gqrx.rb +2 -2
  60. data/lib/pwn/ai/agent/hacker_one.rb +1 -1
  61. data/lib/pwn/ai/agent/learning.rb +16 -16
  62. data/lib/pwn/ai/agent/loop.rb +1 -1
  63. data/lib/pwn/ai/agent/{introspection.rb → reflect.rb} +12 -12
  64. data/lib/pwn/ai/agent/sast.rb +1 -1
  65. data/lib/pwn/ai/agent/tools/extrospection.rb +311 -8
  66. data/lib/pwn/ai/agent/tools/learning.rb +7 -7
  67. data/lib/pwn/ai/agent/transparent_browser.rb +1 -1
  68. data/lib/pwn/ai/agent/vuln_gen.rb +2 -2
  69. data/lib/pwn/ai/agent.rb +1 -1
  70. data/lib/pwn/ai/open_ai.rb +10 -6
  71. data/lib/pwn/config.rb +5 -4
  72. data/lib/pwn/ffi/adalm_pluto.rb +498 -0
  73. data/lib/pwn/ffi/fftw.rb +192 -0
  74. data/lib/pwn/ffi/hack_rf.rb +193 -0
  75. data/lib/pwn/ffi/liquid.rb +244 -0
  76. data/lib/pwn/ffi/rtl_sdr.rb +210 -0
  77. data/lib/pwn/ffi/soapy_sdr.rb +177 -0
  78. data/lib/pwn/ffi/stdio.rb +9 -1
  79. data/lib/pwn/ffi/volk.rb +241 -0
  80. data/lib/pwn/ffi.rb +45 -2
  81. data/lib/pwn/plugins/burp_suite.rb +2 -2
  82. data/lib/pwn/sast/pom_version.rb +2 -2
  83. data/lib/pwn/sast/test_case_engine.rb +1 -1
  84. data/lib/pwn/sdr/decoder/adsb.rb +201 -12
  85. data/lib/pwn/sdr/decoder/apt.rb +19 -5
  86. data/lib/pwn/sdr/decoder/base.rb +314 -1
  87. data/lib/pwn/sdr/decoder/bluetooth.rb +91 -18
  88. data/lib/pwn/sdr/decoder/dect.rb +81 -23
  89. data/lib/pwn/sdr/decoder/dsp.rb +229 -15
  90. data/lib/pwn/sdr/decoder/flex.rb +23 -6
  91. data/lib/pwn/sdr/decoder/gps.rb +80 -18
  92. data/lib/pwn/sdr/decoder/gsm.rb +83 -28
  93. data/lib/pwn/sdr/decoder/iridium.rb +80 -18
  94. data/lib/pwn/sdr/decoder/lora.rb +84 -28
  95. data/lib/pwn/sdr/decoder/lte.rb +80 -18
  96. data/lib/pwn/sdr/decoder/morse.rb +23 -6
  97. data/lib/pwn/sdr/decoder/p25.rb +90 -31
  98. data/lib/pwn/sdr/decoder/pager.rb +23 -6
  99. data/lib/pwn/sdr/decoder/pocsag.rb +23 -6
  100. data/lib/pwn/sdr/decoder/rds.rb +219 -52
  101. data/lib/pwn/sdr/decoder/rfid.rb +81 -27
  102. data/lib/pwn/sdr/decoder/rtl433.rb +85 -27
  103. data/lib/pwn/sdr/decoder/rtty.rb +23 -6
  104. data/lib/pwn/sdr/decoder/wifi.rb +86 -32
  105. data/lib/pwn/sdr/decoder/zigbee.rb +88 -35
  106. data/lib/pwn/sdr/decoder.rb +6 -5
  107. data/lib/pwn/sdr/frequency_allocation.rb +124 -81
  108. data/lib/pwn/sdr/gqrx.rb +1513 -165
  109. data/lib/pwn/version.rb +1 -1
  110. data/spec/lib/pwn/ai/agent/extrospection_spec.rb +96 -0
  111. data/spec/lib/pwn/ai/agent/{introspection_spec.rb → reflect_spec.rb} +3 -3
  112. data/spec/lib/pwn/ai/agent/tools/extrospection_spec.rb +8 -24
  113. data/spec/lib/pwn/ffi/adalm_pluto_spec.rb +37 -0
  114. data/spec/lib/pwn/ffi/fftw_spec.rb +26 -0
  115. data/spec/lib/pwn/ffi/hack_rf_spec.rb +25 -0
  116. data/spec/lib/pwn/ffi/liquid_spec.rb +42 -0
  117. data/spec/lib/pwn/ffi/rtl_sdr_spec.rb +24 -0
  118. data/spec/lib/pwn/ffi/soapy_sdr_spec.rb +25 -0
  119. data/spec/lib/pwn/ffi/volk_spec.rb +36 -0
  120. data/spec/lib/pwn/sdr/decoder/base_iq_spec.rb +65 -0
  121. data/spec/lib/pwn/sdr/decoder/dsp_spec.rb +50 -4
  122. data/spec/lib/pwn/sdr/decoder/rds_spec.rb +45 -4
  123. data/third_party/pwn_rdoc.jsonl +279 -30
  124. metadata +21 -5
@@ -15,7 +15,7 @@ module PWN
15
15
  demodulator_mode: :RAW,
16
16
  bandwidth: '100.000',
17
17
  precision: 5,
18
- decoder: :adsb
18
+ input_rate: 2_000_000
19
19
  },
20
20
  ads_b1090: {
21
21
  ranges: [
@@ -24,7 +24,7 @@ module PWN
24
24
  demodulator_mode: :RAW,
25
25
  bandwidth: '100.000',
26
26
  precision: 5,
27
- decoder: :adsb
27
+ input_rate: 2_000_000
28
28
  },
29
29
  aeronautical_lf: {
30
30
  ranges: [
@@ -32,7 +32,8 @@ module PWN
32
32
  ],
33
33
  demodulator_mode: :AM,
34
34
  bandwidth: '10.000',
35
- precision: 3
35
+ precision: 3,
36
+ input_rate: 1_000_000
36
37
  },
37
38
  aeronautical_mf: {
38
39
  ranges: [
@@ -40,7 +41,8 @@ module PWN
40
41
  ],
41
42
  demodulator_mode: :AM,
42
43
  bandwidth: '10.000',
43
- precision: 3
44
+ precision: 3,
45
+ input_rate: 1_000_000
44
46
  },
45
47
  amateur_1_25m: {
46
48
  ranges: [
@@ -48,7 +50,8 @@ module PWN
48
50
  ],
49
51
  demodulator_mode: :FM,
50
52
  bandwidth: '25.000',
51
- precision: 4
53
+ precision: 4,
54
+ input_rate: 1_000_000
52
55
  },
53
56
  amateur_160m: {
54
57
  ranges: [
@@ -56,7 +59,8 @@ module PWN
56
59
  ],
57
60
  demodulator_mode: :LSB,
58
61
  bandwidth: '2.700',
59
- precision: 6
62
+ precision: 6,
63
+ input_rate: 1_000_000
60
64
  },
61
65
  amateur_2m: {
62
66
  ranges: [
@@ -64,7 +68,8 @@ module PWN
64
68
  ],
65
69
  demodulator_mode: :FM,
66
70
  bandwidth: '15.000',
67
- precision: 4
71
+ precision: 4,
72
+ input_rate: 1_000_000
68
73
  },
69
74
  amateur_30m: {
70
75
  ranges: [
@@ -73,7 +78,7 @@ module PWN
73
78
  demodulator_mode: :CW,
74
79
  bandwidth: '150',
75
80
  precision: 3,
76
- decoder: :morse
81
+ input_rate: 1_000_000
77
82
  },
78
83
  amateur_60m: {
79
84
  ranges: [
@@ -81,7 +86,8 @@ module PWN
81
86
  ],
82
87
  demodulator_mode: :USB,
83
88
  bandwidth: '2.700',
84
- precision: 6
89
+ precision: 6,
90
+ input_rate: 1_000_000
85
91
  },
86
92
  amateur_6m: {
87
93
  ranges: [
@@ -89,7 +95,8 @@ module PWN
89
95
  ],
90
96
  demodulator_mode: :USB,
91
97
  bandwidth: '2.700',
92
- precision: 6
98
+ precision: 6,
99
+ input_rate: 1_000_000
93
100
  },
94
101
  amateur_70cm: {
95
102
  ranges: [
@@ -97,7 +104,8 @@ module PWN
97
104
  ],
98
105
  demodulator_mode: :FM,
99
106
  bandwidth: '25.000',
100
- precision: 4
107
+ precision: 4,
108
+ input_rate: 1_000_000
101
109
  },
102
110
  analog_tv_uhf: {
103
111
  ranges: [
@@ -105,7 +113,8 @@ module PWN
105
113
  ],
106
114
  demodulator_mode: :WFM_ST,
107
115
  bandwidth: '600.000',
108
- precision: 5
116
+ precision: 5,
117
+ input_rate: 10_000_000
109
118
  },
110
119
  analog_tv_vhf: {
111
120
  ranges: [
@@ -113,7 +122,8 @@ module PWN
113
122
  ],
114
123
  demodulator_mode: :WFM_ST,
115
124
  bandwidth: '600.000',
116
- precision: 5
125
+ precision: 5,
126
+ input_rate: 10_000_000
117
127
  },
118
128
  am_radio: {
119
129
  ranges: [
@@ -121,7 +131,8 @@ module PWN
121
131
  ],
122
132
  demodulator_mode: :AM,
123
133
  bandwidth: '10.000',
124
- precision: 4
134
+ precision: 4,
135
+ input_rate: 1_000_000
125
136
  },
126
137
  aviation_nav: {
127
138
  ranges: [
@@ -129,7 +140,8 @@ module PWN
129
140
  ],
130
141
  demodulator_mode: :AM,
131
142
  bandwidth: '25.000',
132
- precision: 4
143
+ precision: 4,
144
+ input_rate: 1_000_000
133
145
  },
134
146
  aviation_vhf: {
135
147
  ranges: [
@@ -137,7 +149,8 @@ module PWN
137
149
  ],
138
150
  demodulator_mode: :AM,
139
151
  bandwidth: '25.000',
140
- precision: 4
152
+ precision: 4,
153
+ input_rate: 1_000_000
141
154
  },
142
155
  aws: {
143
156
  ranges: [
@@ -146,7 +159,7 @@ module PWN
146
159
  demodulator_mode: :RAW,
147
160
  bandwidth: '200.000',
148
161
  precision: 6,
149
- decoder: :lte
162
+ input_rate: 2_000_000
150
163
  },
151
164
  bluetooth: {
152
165
  ranges: [
@@ -155,7 +168,7 @@ module PWN
155
168
  demodulator_mode: :RAW,
156
169
  bandwidth: '1.000.000',
157
170
  precision: 5,
158
- decoder: :bluetooth
171
+ input_rate: 2_000_000
159
172
  },
160
173
  cb: {
161
174
  ranges: [
@@ -163,7 +176,8 @@ module PWN
163
176
  ],
164
177
  demodulator_mode: :AM,
165
178
  bandwidth: '10.000',
166
- precision: 3
179
+ precision: 3,
180
+ input_rate: 1_000_000
167
181
  },
168
182
  cdma: {
169
183
  ranges: [
@@ -172,7 +186,7 @@ module PWN
172
186
  demodulator_mode: :RAW,
173
187
  bandwidth: '1.250.000',
174
188
  precision: 6,
175
- decoder: :lte
189
+ input_rate: 2_000_000
176
190
  },
177
191
  cw20: {
178
192
  ranges: [
@@ -181,7 +195,7 @@ module PWN
181
195
  demodulator_mode: :CW,
182
196
  bandwidth: '150',
183
197
  precision: 3,
184
- decoder: :morse
198
+ input_rate: 1_000_000
185
199
  },
186
200
  cw40: {
187
201
  ranges: [
@@ -190,7 +204,7 @@ module PWN
190
204
  demodulator_mode: :CW,
191
205
  bandwidth: '150',
192
206
  precision: 3,
193
- decoder: :morse
207
+ input_rate: 1_000_000
194
208
  },
195
209
  cw80: {
196
210
  ranges: [
@@ -199,7 +213,7 @@ module PWN
199
213
  demodulator_mode: :CW,
200
214
  bandwidth: '150',
201
215
  precision: 3,
202
- decoder: :morse
216
+ input_rate: 1_000_000
203
217
  },
204
218
  dect: {
205
219
  ranges: [
@@ -208,7 +222,7 @@ module PWN
208
222
  demodulator_mode: :RAW,
209
223
  bandwidth: '100.000',
210
224
  precision: 5,
211
- decoder: :dect
225
+ input_rate: 2_000_000
212
226
  },
213
227
  fm_radio: {
214
228
  ranges: [
@@ -217,6 +231,7 @@ module PWN
217
231
  demodulator_mode: :WFM_ST,
218
232
  bandwidth: '200.000',
219
233
  precision: 6,
234
+ input_rate: 1_000_000,
220
235
  decoder: :rds
221
236
  },
222
237
  frs: {
@@ -225,7 +240,8 @@ module PWN
225
240
  ],
226
241
  demodulator_mode: :FM,
227
242
  bandwidth: '200.000',
228
- precision: 3
243
+ precision: 3,
244
+ input_rate: 1_000_000
229
245
  },
230
246
  gmrs: {
231
247
  ranges: [
@@ -233,7 +249,8 @@ module PWN
233
249
  ],
234
250
  demodulator_mode: :FM,
235
251
  bandwidth: '200.000',
236
- precision: 3
252
+ precision: 3,
253
+ input_rate: 1_000_000
237
254
  },
238
255
  gprs: {
239
256
  ranges: [
@@ -242,7 +259,7 @@ module PWN
242
259
  demodulator_mode: :RAW,
243
260
  bandwidth: '171.200',
244
261
  precision: 4,
245
- decoder: :gsm
262
+ input_rate: 2_000_000
246
263
  },
247
264
  gps_l1: {
248
265
  ranges: [
@@ -251,7 +268,7 @@ module PWN
251
268
  demodulator_mode: :RAW,
252
269
  bandwidth: '30.000.000',
253
270
  precision: 6,
254
- decoder: :gps
271
+ input_rate: 20_000_000
255
272
  },
256
273
  gps_l2: {
257
274
  ranges: [
@@ -260,7 +277,7 @@ module PWN
260
277
  demodulator_mode: :RAW,
261
278
  bandwidth: '11.000.000',
262
279
  precision: 6,
263
- decoder: :gps
280
+ input_rate: 20_000_000
264
281
  },
265
282
  gsm: {
266
283
  ranges: [
@@ -269,7 +286,7 @@ module PWN
269
286
  demodulator_mode: :RAW,
270
287
  bandwidth: '200.000',
271
288
  precision: 4,
272
- decoder: :gsm
289
+ input_rate: 2_000_000
273
290
  },
274
291
  high_rfid: {
275
292
  ranges: [
@@ -278,7 +295,7 @@ module PWN
278
295
  demodulator_mode: :RAW,
279
296
  bandwidth: '400.000',
280
297
  precision: 3,
281
- decoder: :rfid
298
+ input_rate: 1_000_000
282
299
  },
283
300
  iridium: {
284
301
  ranges: [
@@ -287,7 +304,7 @@ module PWN
287
304
  demodulator_mode: :RAW,
288
305
  bandwidth: '704.000',
289
306
  precision: 6,
290
- decoder: :iridium
307
+ input_rate: 2_000_000
291
308
  },
292
309
  ism_5g: {
293
310
  ranges: [
@@ -296,7 +313,7 @@ module PWN
296
313
  demodulator_mode: :RAW,
297
314
  bandwidth: '150.000.000',
298
315
  precision: 7,
299
- decoder: :rtl433
316
+ input_rate: 20_000_000
300
317
  },
301
318
  ism_902: {
302
319
  ranges: [
@@ -305,7 +322,7 @@ module PWN
305
322
  demodulator_mode: :RAW,
306
323
  bandwidth: '26.000.000',
307
324
  precision: 3,
308
- decoder: :rtl433
325
+ input_rate: 20_000_000
309
326
  },
310
327
  keyfob300: {
311
328
  ranges: [
@@ -314,7 +331,7 @@ module PWN
314
331
  demodulator_mode: :RAW,
315
332
  bandwidth: '50.000',
316
333
  precision: 4,
317
- decoder: :rtl433
334
+ input_rate: 1_000_000
318
335
  },
319
336
  keyfob310: {
320
337
  ranges: [
@@ -323,7 +340,7 @@ module PWN
323
340
  demodulator_mode: :RAW,
324
341
  bandwidth: '50.000',
325
342
  precision: 4,
326
- decoder: :rtl433
343
+ input_rate: 1_000_000
327
344
  },
328
345
  keyfob315: {
329
346
  ranges: [
@@ -332,7 +349,7 @@ module PWN
332
349
  demodulator_mode: :RAW,
333
350
  bandwidth: '50.000',
334
351
  precision: 4,
335
- decoder: :rtl433
352
+ input_rate: 1_000_000
336
353
  },
337
354
  keyfob390: {
338
355
  ranges: [
@@ -341,7 +358,7 @@ module PWN
341
358
  demodulator_mode: :RAW,
342
359
  bandwidth: '50.000',
343
360
  precision: 4,
344
- decoder: :rtl433
361
+ input_rate: 1_000_000
345
362
  },
346
363
  keyfob433: {
347
364
  ranges: [
@@ -350,7 +367,7 @@ module PWN
350
367
  demodulator_mode: :RAW,
351
368
  bandwidth: '50.000',
352
369
  precision: 4,
353
- decoder: :rtl433
370
+ input_rate: 1_000_000
354
371
  },
355
372
  keyfob868: {
356
373
  ranges: [
@@ -359,7 +376,7 @@ module PWN
359
376
  demodulator_mode: :RAW,
360
377
  bandwidth: '50.000',
361
378
  precision: 4,
362
- decoder: :rtl433
379
+ input_rate: 1_000_000
363
380
  },
364
381
  land_mobile_uhf: {
365
382
  ranges: [
@@ -367,7 +384,8 @@ module PWN
367
384
  ],
368
385
  demodulator_mode: :FM,
369
386
  bandwidth: '25.000',
370
- precision: 4
387
+ precision: 4,
388
+ input_rate: 1_000_000
371
389
  },
372
390
  land_mobile_vhf: {
373
391
  ranges: [
@@ -375,7 +393,8 @@ module PWN
375
393
  ],
376
394
  demodulator_mode: :FM,
377
395
  bandwidth: '25.000',
378
- precision: 4
396
+ precision: 4,
397
+ input_rate: 1_000_000
379
398
  },
380
399
  longwave_broadcast: {
381
400
  ranges: [
@@ -383,7 +402,8 @@ module PWN
383
402
  ],
384
403
  demodulator_mode: :AM,
385
404
  bandwidth: '10.000',
386
- precision: 3
405
+ precision: 3,
406
+ input_rate: 1_000_000
387
407
  },
388
408
  lora4x: {
389
409
  ranges: [
@@ -392,7 +412,7 @@ module PWN
392
412
  demodulator_mode: :RAW,
393
413
  bandwidth: '500.000',
394
414
  precision: 3,
395
- decoder: :lora
415
+ input_rate: 2_000_000
396
416
  },
397
417
  lora8x: {
398
418
  ranges: [
@@ -401,7 +421,7 @@ module PWN
401
421
  demodulator_mode: :RAW,
402
422
  bandwidth: '500.000',
403
423
  precision: 3,
404
- decoder: :lora
424
+ input_rate: 2_000_000
405
425
  },
406
426
  lora9x: {
407
427
  ranges: [
@@ -410,7 +430,7 @@ module PWN
410
430
  demodulator_mode: :RAW,
411
431
  bandwidth: '500.000',
412
432
  precision: 3,
413
- decoder: :lora
433
+ input_rate: 2_000_000
414
434
  },
415
435
  low_rfid: {
416
436
  ranges: [
@@ -419,7 +439,7 @@ module PWN
419
439
  demodulator_mode: :RAW,
420
440
  bandwidth: '40.000',
421
441
  precision: 1,
422
- decoder: :rfid
442
+ input_rate: 1_000_000
423
443
  },
424
444
  marine_vhf: {
425
445
  ranges: [
@@ -427,7 +447,8 @@ module PWN
427
447
  ],
428
448
  demodulator_mode: :FM,
429
449
  bandwidth: '25.000',
430
- precision: 4
450
+ precision: 4,
451
+ input_rate: 1_000_000
431
452
  },
432
453
  maritime_mf: {
433
454
  ranges: [
@@ -435,7 +456,8 @@ module PWN
435
456
  ],
436
457
  demodulator_mode: :USB,
437
458
  bandwidth: '2.700',
438
- precision: 6
459
+ precision: 6,
460
+ input_rate: 1_000_000
439
461
  },
440
462
  noaa_weather: {
441
463
  ranges: [
@@ -443,7 +465,8 @@ module PWN
443
465
  ],
444
466
  demodulator_mode: :FM,
445
467
  bandwidth: '16.000',
446
- precision: 4
468
+ precision: 4,
469
+ input_rate: 1_000_000
447
470
  },
448
471
  pager_all: {
449
472
  ranges: [
@@ -478,7 +501,7 @@ module PWN
478
501
  demodulator_mode: :FM,
479
502
  bandwidth: '25.000',
480
503
  precision: 4,
481
- decoder: :pager
504
+ input_rate: 1_000_000
482
505
  },
483
506
  pager_flex: {
484
507
  ranges: [
@@ -489,6 +512,7 @@ module PWN
489
512
  demodulator_mode: :FM,
490
513
  bandwidth: '20.000',
491
514
  precision: 4,
515
+ input_rate: 1_000_000,
492
516
  decoder: :flex
493
517
  },
494
518
  pager_pocsag: {
@@ -508,6 +532,7 @@ module PWN
508
532
  demodulator_mode: :FM,
509
533
  bandwidth: '12.500',
510
534
  precision: 4,
535
+ input_rate: 1_000_000,
511
536
  decoder: :pocsag
512
537
  },
513
538
  pcs: {
@@ -517,7 +542,7 @@ module PWN
517
542
  demodulator_mode: :RAW,
518
543
  bandwidth: '200.000',
519
544
  precision: 6,
520
- decoder: :lte
545
+ input_rate: 2_000_000
521
546
  },
522
547
  public_safety_700: {
523
548
  ranges: [
@@ -526,7 +551,7 @@ module PWN
526
551
  demodulator_mode: :FM,
527
552
  bandwidth: '25.000',
528
553
  precision: 4,
529
- decoder: :p25
554
+ input_rate: 1_000_000
530
555
  },
531
556
  rtty20: {
532
557
  ranges: [
@@ -535,7 +560,7 @@ module PWN
535
560
  demodulator_mode: :FM,
536
561
  bandwidth: '170',
537
562
  precision: 3,
538
- decoder: :rtty
563
+ input_rate: 1_000_000
539
564
  },
540
565
  rtty40: {
541
566
  ranges: [
@@ -544,7 +569,7 @@ module PWN
544
569
  demodulator_mode: :FM,
545
570
  bandwidth: '170',
546
571
  precision: 3,
547
- decoder: :rtty
572
+ input_rate: 1_000_000
548
573
  },
549
574
  rtty80: {
550
575
  ranges: [
@@ -553,7 +578,7 @@ module PWN
553
578
  demodulator_mode: :FM,
554
579
  bandwidth: '170',
555
580
  precision: 3,
556
- decoder: :rtty
581
+ input_rate: 1_000_000
557
582
  },
558
583
  shortwave1: {
559
584
  ranges: [
@@ -561,7 +586,8 @@ module PWN
561
586
  ],
562
587
  demodulator_mode: :AM_SYNC,
563
588
  bandwidth: '10.000',
564
- precision: 4
589
+ precision: 4,
590
+ input_rate: 1_000_000
565
591
  },
566
592
  shortwave2: {
567
593
  ranges: [
@@ -569,7 +595,8 @@ module PWN
569
595
  ],
570
596
  demodulator_mode: :AM_SYNC,
571
597
  bandwidth: '10.000',
572
- precision: 4
598
+ precision: 4,
599
+ input_rate: 1_000_000
573
600
  },
574
601
  shortwave3: {
575
602
  ranges: [
@@ -577,7 +604,8 @@ module PWN
577
604
  ],
578
605
  demodulator_mode: :AM_SYNC,
579
606
  bandwidth: '10.000',
580
- precision: 4
607
+ precision: 4,
608
+ input_rate: 1_000_000
581
609
  },
582
610
  shortwave4: {
583
611
  ranges: [
@@ -585,7 +613,8 @@ module PWN
585
613
  ],
586
614
  demodulator_mode: :AM_SYNC,
587
615
  bandwidth: '10.000',
588
- precision: 4
616
+ precision: 4,
617
+ input_rate: 1_000_000
589
618
  },
590
619
  shortwave5: {
591
620
  ranges: [
@@ -593,7 +622,8 @@ module PWN
593
622
  ],
594
623
  demodulator_mode: :AM_SYNC,
595
624
  bandwidth: '10.000',
596
- precision: 4
625
+ precision: 4,
626
+ input_rate: 1_000_000
597
627
  },
598
628
  shortwave6: {
599
629
  ranges: [
@@ -601,7 +631,8 @@ module PWN
601
631
  ],
602
632
  demodulator_mode: :AM_SYNC,
603
633
  bandwidth: '10.000',
604
- precision: 4
634
+ precision: 4,
635
+ input_rate: 1_000_000
605
636
  },
606
637
  ssb10: {
607
638
  ranges: [
@@ -609,7 +640,8 @@ module PWN
609
640
  ],
610
641
  demodulator_mode: :USB,
611
642
  bandwidth: '3.000',
612
- precision: 6
643
+ precision: 6,
644
+ input_rate: 1_000_000
613
645
  },
614
646
  ssb12: {
615
647
  ranges: [
@@ -617,7 +649,8 @@ module PWN
617
649
  ],
618
650
  demodulator_mode: :USB,
619
651
  bandwidth: '3.000',
620
- precision: 6
652
+ precision: 6,
653
+ input_rate: 1_000_000
621
654
  },
622
655
  ssb15: {
623
656
  ranges: [
@@ -625,7 +658,8 @@ module PWN
625
658
  ],
626
659
  demodulator_mode: :USB,
627
660
  bandwidth: '3.000',
628
- precision: 6
661
+ precision: 6,
662
+ input_rate: 1_000_000
629
663
  },
630
664
  ssb17: {
631
665
  ranges: [
@@ -633,7 +667,8 @@ module PWN
633
667
  ],
634
668
  demodulator_mode: :USB,
635
669
  bandwidth: '3.000',
636
- precision: 6
670
+ precision: 6,
671
+ input_rate: 1_000_000
637
672
  },
638
673
  ssb20: {
639
674
  ranges: [
@@ -641,7 +676,8 @@ module PWN
641
676
  ],
642
677
  demodulator_mode: :USB,
643
678
  bandwidth: '3.000',
644
- precision: 6
679
+ precision: 6,
680
+ input_rate: 1_000_000
645
681
  },
646
682
  ssb40: {
647
683
  ranges: [
@@ -649,7 +685,8 @@ module PWN
649
685
  ],
650
686
  demodulator_mode: :LSB,
651
687
  bandwidth: '3.000',
652
- precision: 6
688
+ precision: 6,
689
+ input_rate: 1_000_000
653
690
  },
654
691
  ssb80: {
655
692
  ranges: [
@@ -657,7 +694,8 @@ module PWN
657
694
  ],
658
695
  demodulator_mode: :LSB,
659
696
  bandwidth: '3.000',
660
- precision: 6
697
+ precision: 6,
698
+ input_rate: 1_000_000
661
699
  },
662
700
  ssb160: {
663
701
  ranges: [
@@ -665,7 +703,8 @@ module PWN
665
703
  ],
666
704
  demodulator_mode: :LSB,
667
705
  bandwidth: '3.000',
668
- precision: 6
706
+ precision: 6,
707
+ input_rate: 1_000_000
669
708
  },
670
709
  tempest: {
671
710
  ranges: [
@@ -673,7 +712,8 @@ module PWN
673
712
  ],
674
713
  demodulator_mode: :WFM,
675
714
  bandwidth: '6.000.000',
676
- precision: 4
715
+ precision: 4,
716
+ input_rate: 10_000_000
677
717
  },
678
718
  tv_high_vhf: {
679
719
  ranges: [
@@ -681,7 +721,8 @@ module PWN
681
721
  ],
682
722
  demodulator_mode: :WFM_ST,
683
723
  bandwidth: '6.000.000',
684
- precision: 5
724
+ precision: 5,
725
+ input_rate: 10_000_000
685
726
  },
686
727
  tv_low_vhf: {
687
728
  ranges: [
@@ -689,7 +730,8 @@ module PWN
689
730
  ],
690
731
  demodulator_mode: :WFM_ST,
691
732
  bandwidth: '6.000.000',
692
- precision: 5
733
+ precision: 5,
734
+ input_rate: 10_000_000
693
735
  },
694
736
  tv_uhf: {
695
737
  ranges: [
@@ -697,7 +739,8 @@ module PWN
697
739
  ],
698
740
  demodulator_mode: :WFM_ST,
699
741
  bandwidth: '6.000.000',
700
- precision: 5
742
+ precision: 5,
743
+ input_rate: 10_000_000
701
744
  },
702
745
  uhf_rfid: {
703
746
  ranges: [
@@ -706,7 +749,7 @@ module PWN
706
749
  demodulator_mode: :RAW,
707
750
  bandwidth: '400.000',
708
751
  precision: 5,
709
- decoder: :rfid
752
+ input_rate: 1_000_000
710
753
  },
711
754
  umts: {
712
755
  ranges: [
@@ -715,7 +758,7 @@ module PWN
715
758
  demodulator_mode: :RAW,
716
759
  bandwidth: '5.000.000',
717
760
  precision: 6,
718
- decoder: :lte
761
+ input_rate: 10_000_000
719
762
  },
720
763
  weather_sat: {
721
764
  ranges: [
@@ -724,7 +767,7 @@ module PWN
724
767
  demodulator_mode: :FM,
725
768
  bandwidth: '15.000',
726
769
  precision: 5,
727
- decoder: :apt
770
+ input_rate: 1_000_000
728
771
  },
729
772
  wifi24: {
730
773
  ranges: [
@@ -733,7 +776,7 @@ module PWN
733
776
  demodulator_mode: :RAW,
734
777
  bandwidth: '20.000.000',
735
778
  precision: 7,
736
- decoder: :wifi
779
+ input_rate: 20_000_000
737
780
  },
738
781
  wifi5: {
739
782
  ranges: [
@@ -742,7 +785,7 @@ module PWN
742
785
  demodulator_mode: :RAW,
743
786
  bandwidth: '20.000.000',
744
787
  precision: 7,
745
- decoder: :wifi
788
+ input_rate: 20_000_000
746
789
  },
747
790
  wifi6: {
748
791
  ranges: [
@@ -751,7 +794,7 @@ module PWN
751
794
  demodulator_mode: :RAW,
752
795
  bandwidth: '20.000.000',
753
796
  precision: 7,
754
- decoder: :wifi
797
+ input_rate: 20_000_000
755
798
  },
756
799
  zigbee: {
757
800
  ranges: [
@@ -760,7 +803,7 @@ module PWN
760
803
  demodulator_mode: :RAW,
761
804
  bandwidth: '2.000.000',
762
805
  precision: 7,
763
- decoder: :zigbee
806
+ input_rate: 2_000_000
764
807
  }
765
808
  }
766
809
  rescue StandardError => e