Module: PWN::SDR::Decoder::Pager
- Defined in:
- lib/pwn/sdr/decoder/pager.rb
Overview
Pure-Ruby combined pager decoder for the mixed-protocol pager_all
band plan. Feeds every incoming 48 kHz audio chunk to BOTH the
native POCSAG and FLEX demodulators concurrently; whichever locks
emits messages. No multimon-ng, no sox.
Defined Under Namespace
Classes: Demod
Class Method Summary collapse
-
.authors ⇒ Object
- Author(s)
0day Inc.
-
.decode(opts = {}) ⇒ Object
- Supported Method Parameters
PWN::SDR::Decoder::Pager.decode( freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq' ).
-
.help ⇒ Object
Display Usage for this Module.
Class Method Details
.authors ⇒ Object
- Author(s)
0day Inc. support@0dayinc.com
57 58 59 |
# File 'lib/pwn/sdr/decoder/pager.rb', line 57 public_class_method def self. "AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n" end |
.decode(opts = {}) ⇒ Object
- Supported Method Parameters
PWN::SDR::Decoder::Pager.decode( freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq' )
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/pwn/sdr/decoder/pager.rb', line 29 public_class_method def self.decode(opts = {}) freq_obj = opts[:freq_obj] # Prefer true-air I/Q (FM-demod → existing audio demod) when the # operator asks for a source/file or sets freq_obj[:iq_source]. # Otherwise keep the GQRX 48 kHz UDP audio path (run_native). want_iq = opts[:source] || opts[:file] || freq_obj[:iq_source] || freq_obj[:iq_file] if want_iq PWN::SDR::Decoder::Base.run_iq( freq_obj: freq_obj, protocol: 'PAGER', demod: Demod.new, sample_rate: (opts[:sample_rate] || freq_obj[:iq_rate] || 240_000).to_i, source: opts[:source], file: opts[:file], fm_demod: true, note: 'PAGER true-air: FM-demod I/Q then native bit recovery; falls back to detector without SDR hardware.' ) else PWN::SDR::Decoder::Base.run_native( freq_obj: freq_obj, protocol: 'PAGER', demod: Demod.new ) end end |
.help ⇒ Object
Display Usage for this Module
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/pwn/sdr/decoder/pager.rb', line 63 public_class_method def self.help puts "USAGE (true-air I/Q + GQRX-audio native paths, no external binaries): #{self}.decode( freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq' ) NOTE: Runs the native POCSAG (512/1200/2400) and FLEX (1600) demodulators in parallel on the same GQRX NBFM audio tap. #{self}.authors " end |