diff options
Diffstat (limited to 'gr-pager')
30 files changed, 209 insertions, 210 deletions
diff --git a/gr-pager/CMakeLists.txt b/gr-pager/CMakeLists.txt index 8dfecced7..845444859 100644 --- a/gr-pager/CMakeLists.txt +++ b/gr-pager/CMakeLists.txt @@ -1,17 +1,17 @@ # Copyright 2011 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/README b/gr-pager/README index 2d4f3c95c..441fee0b4 100644 --- a/gr-pager/README +++ b/gr-pager/README @@ -26,10 +26,10 @@ usrp_flex.py - Receives and displays pages from a single paging channel. To Example, to receive from 931.95M (a common nationwide channel) with DBSRX in side A of USRP: - + $ usrp_flex.py -f 931.95M -g 32 -R A - + usrp_flex_band.py - Receives and displays pages from a 1 MHz paging band (40 pager channels.) To work from recorded data, record from USRP with decimation 64 at center frequency. @@ -48,8 +48,8 @@ Usage: usrp_flex_band.py [options] Example, to receive from the lower third of the pager band with DBSRX in side B of USRP: - - $ usrp_flex_band.py -f 929.5M -g 32 -R B + + $ usrp_flex_band.py -f 929.5M -g 32 -R B usrp_flex_all.py - Receives and displays pages from entire pager band (3 MHz, 120 pager channels.) This does not work in real time due @@ -69,11 +69,11 @@ usrp_flex_all.py - Receives and displays pages from entire pager band (3 MHz, -v, --verbose display debug output Example, to receive all pager channels with DBSRX in side A: - + $ usrp_flex_all.py -R A The demodulator is relatively sensitive to frequency offset and can capture a signal -within 3k of the actual signal. +within 3k of the actual signal. All three scripts take a 'calibration' parameter, which specifies the frequency offset of the daughterboard. This causes the USRP to be tuned to the given center frequency diff --git a/gr-pager/apps/CMakeLists.txt b/gr-pager/apps/CMakeLists.txt index 5fa926031..a02cad56e 100644 --- a/gr-pager/apps/CMakeLists.txt +++ b/gr-pager/apps/CMakeLists.txt @@ -1,17 +1,17 @@ # Copyright 2011 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/apps/usrp_flex b/gr-pager/apps/usrp_flex index 7d0d66a95..33877ea4e 100755 --- a/gr-pager/apps/usrp_flex +++ b/gr-pager/apps/usrp_flex @@ -1,24 +1,24 @@ #!/usr/bin/env python # # Copyright 2006,2007,2009,2011 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -# +# from gnuradio import gr, gru, uhd, optfir, eng_notation, pager from gnuradio.eng_option import eng_option @@ -32,7 +32,7 @@ class app_top_block(gr.top_block): self.offset = 0.0 self.adj_time = time.time() self.verbose = options.verbose - + if options.from_file is None: # Set up USRP source self.u = uhd.usrp_source(device_addr=options.address, stream_args=uhd.stream_args('fc32')) @@ -44,7 +44,7 @@ class app_top_block(gr.top_block): if rate != 250e3: print "Unable to set required sample rate of 250 Ksps (got %f)" % rate sys.exit(1) - + # Tune daughterboard r = self.u.set_center_freq(options.freq+options.calibration, 0) if not r: @@ -60,15 +60,15 @@ class app_top_block(gr.top_block): print "\nNo gain specified." print "Setting gain to %f (from [%f, %f])" % \ (options.rx_gain, grange.start(), grange.stop()) - + self.u.set_gain(options.rx_gain, 0) - + else: # Use supplied file as source of samples self.u = gr.file_source(gr.sizeof_gr_complex, options.from_file) if options.verbose: print "Reading samples from", options.from_file - + if options.log and not options.from_file: usrp_sink = gr.file_sink(gr.sizeof_gr_complex, 'usrp.dat') self.connect(self.u, usrp_sink) @@ -81,7 +81,7 @@ class app_top_block(gr.top_block): 12500, # One-sided channel bandwidth 0.1, # Passband ripple 60) # Stopband attenuation - + if options.verbose: print "Channel filter has", len(taps), "taps." @@ -109,7 +109,7 @@ class app_top_block(gr.top_block): self.chan.set_center_freq(self.offset) if self.verbose: print "Channel frequency offset (Hz):", int(self.offset) - + def get_options(): parser = OptionParser(option_class=eng_option) @@ -140,7 +140,7 @@ def get_options(): if (options.freq is None): sys.stderr.write("You must specify -f FREQ or --freq FREQ\n") sys.exit(1) - + return (options, args) if __name__ == "__main__": @@ -151,7 +151,7 @@ if __name__ == "__main__": queue = gr.msg_queue() tb = app_top_block(options, queue) runner = pager.queue_runner(queue) - + try: tb.run() except KeyboardInterrupt: diff --git a/gr-pager/apps/usrp_flex_all b/gr-pager/apps/usrp_flex_all index 36bd90034..75c4c1e73 100755 --- a/gr-pager/apps/usrp_flex_all +++ b/gr-pager/apps/usrp_flex_all @@ -1,24 +1,24 @@ #!/usr/bin/env python # # Copyright 2006,2007,2009 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -# +# from gnuradio import gr, gru, uhd, optfir, eng_notation, blks2, pager from gnuradio.eng_option import eng_option @@ -59,7 +59,7 @@ class app_top_block(gr.top_block): print "\nNo gain specified." print "Setting gain to %f (from [%f, %f])" % \ (options.rx_gain, grange.start(), grange.stop()) - + self.u.set_gain(options.rx_gain, 0) # Grab >=3 MHz of spectrum, evenly divisible by 25 KHz channels @@ -74,11 +74,11 @@ class app_top_block(gr.top_block): if (rate != 3.2e6): print "Unable to set required sample rate for >= 3MHz of 25 KHz channels." sys.exit(1) - + self.nchan = int(rate/25e3) if options.verbose: print "\nReceiving", rate/1e6, "MHz of bandwidth containing", self.nchan, "baseband channels." - + taps = gr.firdes.low_pass(1.0, 1.0, 1.0/self.nchan*0.4, @@ -143,7 +143,7 @@ def get_options(): sys.exit(1) return (options, args) - + def main(): @@ -159,6 +159,6 @@ def main(): pass runner.end() - + if __name__ == "__main__": main() diff --git a/gr-pager/apps/usrp_flex_band b/gr-pager/apps/usrp_flex_band index 63fb93fa1..5ec0065d6 100755 --- a/gr-pager/apps/usrp_flex_band +++ b/gr-pager/apps/usrp_flex_band @@ -1,24 +1,24 @@ #!/usr/bin/env python # # Copyright 2006,2007,2009,2011 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -# +# from gnuradio import gr, gru, uhd, optfir, eng_notation, blks2, pager from gnuradio.eng_option import eng_option @@ -44,7 +44,7 @@ class app_top_block(gr.top_block): if rate != 1e6: print "Unable to set required sample rate of 1 Msps (got %f)" % rate sys.exit(1) - + # Tune daughterboard r = self.u.set_center_freq(options.freq+options.calibration, 0) if not r: @@ -60,7 +60,7 @@ class app_top_block(gr.top_block): print "\nNo gain specified." print "Setting gain to %f (from [%f, %f])" % \ (options.rx_gain, grange.start(), grange.stop()) - + self.u.set_gain(options.rx_gain, 0) @@ -120,10 +120,10 @@ def get_options(): if (options.freq is None): sys.stderr.write("You must specify -f FREQ or --freq FREQ\n") sys.exit(1) - + return (options, args) - + if __name__ == "__main__": (options, args) = get_options() diff --git a/gr-pager/grc/CMakeLists.txt b/gr-pager/grc/CMakeLists.txt index 2b01a1e0b..c982995b0 100644 --- a/gr-pager/grc/CMakeLists.txt +++ b/gr-pager/grc/CMakeLists.txt @@ -1,17 +1,17 @@ # Copyright 2011 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/lib/pager_flex_deinterleave.cc b/gr-pager/lib/pager_flex_deinterleave.cc index a51670b22..f7f1d9f69 100644 --- a/gr-pager/lib/pager_flex_deinterleave.cc +++ b/gr-pager/lib/pager_flex_deinterleave.cc @@ -1,18 +1,18 @@ /* * Copyright 2004,2006,2010 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -46,7 +46,7 @@ int pager_flex_deinterleave::work(int noutput_items, gr_vector_void_star &output_items) { const unsigned char *in = (const unsigned char *)input_items[0]; - gr_int32 *out = (gr_int32 *)output_items[0]; + gr_int32 *out = (gr_int32 *)output_items[0]; // FLEX codewords are interleaved in blocks of 256 bits or 8, 32 bit // codes. To deinterleave we parcel each incoming bit into the MSB @@ -56,7 +56,7 @@ int pager_flex_deinterleave::work(int noutput_items, // conversion to data words. // // FLEX data words are recovered by reversing the bit order of the code - // word, masking off the (reversed) ECC, and inverting the remainder of + // word, masking off the (reversed) ECC, and inverting the remainder of // the bits (!). // // The data portion of a FLEX frame consists of 11 of these deinterleaved @@ -73,14 +73,14 @@ int pager_flex_deinterleave::work(int noutput_items, } } - // Now convert code words into data words + // Now convert code words into data words for (j = 0; j < 8; j++) { gr_int32 codeword = d_codewords[j]; - + // Apply BCH 32,21 error correction // TODO: mark dataword when codeword fails ECC pageri_bch3221(codeword); - + // Reverse bit order codeword = pageri_reverse_bits32(codeword); @@ -89,6 +89,6 @@ int pager_flex_deinterleave::work(int noutput_items, *out++ = codeword; } - + return j; } diff --git a/gr-pager/lib/pager_flex_deinterleave.h b/gr-pager/lib/pager_flex_deinterleave.h index 87094490d..c702da23d 100644 --- a/gr-pager/lib/pager_flex_deinterleave.h +++ b/gr-pager/lib/pager_flex_deinterleave.h @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -44,11 +44,11 @@ private: // One FLEX block of deinterleaved data gr_int32 d_codewords[8]; - + public: int work(int noutput_items, - gr_vector_const_void_star &input_items, + gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); }; diff --git a/gr-pager/lib/pager_flex_frame.cc b/gr-pager/lib/pager_flex_frame.cc index b707dbbc4..949f60320 100644 --- a/gr-pager/lib/pager_flex_frame.cc +++ b/gr-pager/lib/pager_flex_frame.cc @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/lib/pager_flex_frame.h b/gr-pager/lib/pager_flex_frame.h index 857b49d29..61973f722 100644 --- a/gr-pager/lib/pager_flex_frame.h +++ b/gr-pager/lib/pager_flex_frame.h @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/lib/pager_flex_parse.cc b/gr-pager/lib/pager_flex_parse.cc index 19d3d96c6..9418c4461 100644 --- a/gr-pager/lib/pager_flex_parse.cc +++ b/gr-pager/lib/pager_flex_parse.cc @@ -1,18 +1,18 @@ /* * Copyright 2004,2006,2007,2010 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -50,7 +50,7 @@ int pager_flex_parse::work(int noutput_items, gr_vector_void_star &output_items) { const gr_int32 *in = (const gr_int32 *)input_items[0]; - + int i = 0; while (i < noutput_items) { // Accumulate one whole frame's worth of data words (88 of them) @@ -74,8 +74,8 @@ void pager_flex_parse::parse_capcode(gr_int32 aw1, gr_int32 aw2) { d_laddr = (aw1 < 0x008001L) || (aw1 > 0x1E0000L) || - (aw1 > 0x1E7FFEL); - + (aw1 > 0x1E7FFEL); + if (d_laddr) d_capcode = aw1+((aw2^0x001FFFFF)<<15)+0x1F9000; // Don't ask else @@ -95,7 +95,7 @@ void pager_flex_parse::parse_data() // Address start address is bits 9-8, plus one for offset int voffset = (biw >> 10) & 0x3f; int aoffset = ((biw >> 8) & 0x03) + 1; - + //printf("BIW:%08X AW:%02i-%02i\n", biw, aoffset, voffset); // Iterate through pages and dispatch to appropriate handler @@ -109,9 +109,9 @@ void pager_flex_parse::parse_data() parse_capcode(d_datawords[i], d_datawords[i+1]); if (d_laddr) i++; - + if (d_capcode < 0) // Invalid address, skip - continue; + continue; // Parse vector information word for address @ offset 'i' gr_int32 viw = d_datawords[j]; @@ -122,7 +122,7 @@ void pager_flex_parse::parse_data() if (is_numeric_page(d_type)) len &= 0x07; int mw2 = mw1+len; - + if (mw1 == 0 && mw2 == 0) continue; // Invalid VIW @@ -135,7 +135,7 @@ void pager_flex_parse::parse_data() d_payload.str(""); d_payload.setf(std::ios::showpoint); d_payload << std::setprecision(6) << std::setw(7) - << d_freq/1e6 << FIELD_DELIM + << d_freq/1e6 << FIELD_DELIM << std::setw(10) << d_capcode << FIELD_DELIM << flex_page_desc[d_type] << FIELD_DELIM; @@ -167,7 +167,7 @@ void pager_flex_parse::parse_alphanumeric(int mw1, int mw2, int j) frag = (d_datawords[j+1] >> 11) & 0x03; cont = (d_datawords[j+1] >> 10) & 0x01; mw2--; - } + } //d_payload << frag << FIELD_DELIM; //d_payload << cont << FIELD_DELIM; @@ -175,17 +175,17 @@ void pager_flex_parse::parse_alphanumeric(int mw1, int mw2, int j) for (int i = mw1; i <= mw2; i++) { gr_int32 dw = d_datawords[i]; unsigned char ch; - + if (i > mw1 || frag != 0x03) { ch = dw & 0x7F; if (ch != 0x03) d_payload << ch; } - + ch = (dw >> 7) & 0x7F; if (ch != 0x03) // Fill d_payload << ch; - + ch = (dw >> 14) & 0x7F; if (ch != 0x03) // Fill d_payload << ch; @@ -212,7 +212,7 @@ void pager_flex_parse::parse_numeric(int mw1, int mw2, int j) count += 10; // Skip 10 header bits for numbered numeric pages else count += 2; // Otherwise skip 2 - + for (int i = mw1; i <= mw2; i++) { for (int k = 0; k < 21; k++) { // Shift LSB from data word into digit @@ -226,7 +226,7 @@ void pager_flex_parse::parse_numeric(int mw1, int mw2, int j) count = 4; } } - + dw = d_datawords[i]; } } diff --git a/gr-pager/lib/pager_flex_parse.h b/gr-pager/lib/pager_flex_parse.h index dcbd19eae..499be299a 100644 --- a/gr-pager/lib/pager_flex_parse.h +++ b/gr-pager/lib/pager_flex_parse.h @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -56,17 +56,17 @@ private: int d_capcode; // Current page destination address bool d_laddr; // Current page has long address float d_freq; // Channel frequency - + void parse_data(); // Handle a frame's worth of data - void parse_capcode(gr_int32 aw1, gr_int32 aw2); + void parse_capcode(gr_int32 aw1, gr_int32 aw2); void parse_alphanumeric(int mw1, int mw2, int j); void parse_numeric(int mw1, int mw2, int j); void parse_tone_only(); void parse_unknown(int mw1, int mw2); - + public: int work(int noutput_items, - gr_vector_const_void_star &input_items, + gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); }; diff --git a/gr-pager/lib/pager_flex_sync.cc b/gr-pager/lib/pager_flex_sync.cc index 30666298f..c31acd7d2 100644 --- a/gr-pager/lib/pager_flex_sync.cc +++ b/gr-pager/lib/pager_flex_sync.cc @@ -1,18 +1,18 @@ /* * Copyright 2004,2006,2010 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -36,7 +36,7 @@ pager_flex_sync_sptr pager_make_flex_sync() return gnuradio::get_initial_sptr(new pager_flex_sync()); } -// FLEX sync block takes input from sliced baseband stream [0-3] at specified +// FLEX sync block takes input from sliced baseband stream [0-3] at specified // channel rate. Symbol timing is established based on receiving one of the // defined FLEX protocol synchronization words. The block outputs one FLEX frame // worth of bits on each output phase for the data portion of the frame. Unused phases @@ -75,7 +75,7 @@ bool pager_flex_sync::test_sync(unsigned char sym) // // Where BBBBBBBB is always 0xA6C6AAAA // and AAAA^CCCC is 0xFFFF - // + // // Specific values of AAAA determine what bps and encoding the // packet is beyond the frame information word // @@ -158,9 +158,9 @@ void pager_flex_sync::enter_sync2() // We're here at the center of a 1600 baud bit // So this hack puts the index and bit counter // in the right place for 3200 bps. - d_index = d_index/2-d_spb/2; - d_count = -1; - } + d_index = d_index/2-d_spb/2; + d_count = -1; + } } void pager_flex_sync::enter_data() @@ -177,7 +177,7 @@ void pager_flex_sync::parse_fiw() // Bits 31-28 are frame number related, but unknown function // This might be a checksum d_unknown2 = pageri_reverse_bits8((d_fiw >> 24) & 0xF0); - + // Cycle is bits 27-24, reversed d_cycle = pageri_reverse_bits8((d_fiw >> 20) & 0xF0); @@ -204,7 +204,7 @@ int pager_flex_sync::output_symbol(unsigned char sym) // At 1600 bps, 2-level, a single "phase" is transmitted with bit // value '0' using level '3' and bit value '1' using level '0'. // - // At 1600 bps, 4-level, a second "phase" is transmitted, and the + // At 1600 bps, 4-level, a second "phase" is transmitted, and the // di-bits are encoded with a gray code: // // Symbol Phase 1 Phase 2 @@ -220,9 +220,9 @@ int pager_flex_sync::output_symbol(unsigned char sym) // additionally two streams are interleaved on alternating symbols. // Thus, PHASE A (and PHASE B if 4-level) are decoded on one symbol, // then PHASE C (and PHASE D if 4-level) are decoded on the next. - + int bits = 0; - + if (d_baudrate == 1600) { d_bit_a = (sym < 2); if (d_levels == 4) @@ -275,7 +275,7 @@ int pager_flex_sync::general_work(int noutput_items, while (i < ninputs && j < noutput_items) { unsigned char sym = *in++; i++; d_index = (d_index+1) % d_spb; - + switch (d_state) { case ST_IDLE: // Continually compare the received symbol stream @@ -283,14 +283,14 @@ int pager_flex_sync::general_work(int noutput_items, if (test_sync(sym)) enter_syncing(); break; - + case ST_SYNCING: // Wait until we stop seeing sync, then calculate // the center of the bit period (d_center) if (!test_sync(sym)) enter_sync1(); break; - + case ST_SYNC1: // Skip 16 bits of dotting, then accumulate 32 bits // of Frame Information Word. @@ -300,11 +300,11 @@ int pager_flex_sync::general_work(int noutput_items, // FIW is accumulated, call BCH to error correct it pageri_bch3221(d_fiw); parse_fiw(); - enter_sync2(); + enter_sync2(); } } break; - + case ST_SYNC2: // This part and the remainder of the frame are transmitted // at either 1600 bps or 3200 bps based on the received @@ -316,14 +316,14 @@ int pager_flex_sync::general_work(int noutput_items, enter_data(); } break; - + case ST_DATA: - // The data portion of the frame is 1760 ms long at either + // The data portion of the frame is 1760 ms long at either // baudrate. This is 2816 bits @ 1600 bps and 5632 bits @ 3200 bps. // The output_symbol() routine decodes and doles out the bits // to each of the four transmitted phases of FLEX interleaved codes. if (d_index == d_center) { - j += output_symbol(sym); + j += output_symbol(sym); if (++d_count == d_baudrate*1760/1000) enter_idle(); } diff --git a/gr-pager/lib/pager_flex_sync.h b/gr-pager/lib/pager_flex_sync.h index 53b6f950a..b53737d12 100644 --- a/gr-pager/lib/pager_flex_sync.h +++ b/gr-pager/lib/pager_flex_sync.h @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -42,7 +42,7 @@ private: // Constructors friend PAGER_API pager_flex_sync_sptr pager_make_flex_sync(); pager_flex_sync(); - + // State machine transitions void enter_idle(); void enter_syncing(); @@ -53,14 +53,14 @@ private: int index_avg(int start, int end); bool test_sync(unsigned char sym); void parse_fiw(); - int output_symbol(unsigned char sym); - + int output_symbol(unsigned char sym); + // Simple state machine enum state_t { ST_IDLE, ST_SYNCING, ST_SYNC1, ST_SYNC2, ST_DATA }; - state_t d_state; + state_t d_state; int d_index; // Index into current baud - int d_start; // Start of good sync + int d_start; // Start of good sync int d_center; // Center of bit int d_end; // End of good sync int d_count; // Bit counter @@ -70,7 +70,7 @@ private: int d_levels; // Current decoding levels int d_spb; // Current samples per baud bool d_hibit; // Alternating bit indicator for 3200 bps - + gr_int32 d_fiw; // Frame information word int d_frame; // Current FLEX frame int d_cycle; // Current FLEX cycle @@ -81,12 +81,12 @@ private: unsigned char d_bit_b; unsigned char d_bit_c; unsigned char d_bit_d; - - unsigned char *d_phase_a; + + unsigned char *d_phase_a; unsigned char *d_phase_b; unsigned char *d_phase_c; unsigned char *d_phase_d; - + gr_int64_vector d_sync; // Trial synchronizers public: @@ -94,7 +94,7 @@ public: int general_work(int noutput_items, gr_vector_int &ninput_items, - gr_vector_const_void_star &input_items, + gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); }; diff --git a/gr-pager/lib/pager_slicer_fb.cc b/gr-pager/lib/pager_slicer_fb.cc index 53ba7b9de..415e898cd 100644 --- a/gr-pager/lib/pager_slicer_fb.cc +++ b/gr-pager/lib/pager_slicer_fb.cc @@ -1,18 +1,18 @@ /* * Copyright 2004,2006,2007,2010 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -53,7 +53,7 @@ unsigned char pager_slicer_fb::slice(float sample) sample -= d_avg; if (sample > 0) { - if (sample > 2.0) + if (sample > 2.0) decision = 3; else decision = 2; diff --git a/gr-pager/lib/pager_slicer_fb.h b/gr-pager/lib/pager_slicer_fb.h index b3d92780f..cbbf9cd22 100644 --- a/gr-pager/lib/pager_slicer_fb.h +++ b/gr-pager/lib/pager_slicer_fb.h @@ -1,18 +1,18 @@ /* * Copyright 2006,2007 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -48,7 +48,7 @@ private: public: int work (int noutput_items, - gr_vector_const_void_star &input_items, + gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); float dc_offset() const { return d_avg; } diff --git a/gr-pager/lib/pageri_bch3221.cc b/gr-pager/lib/pageri_bch3221.cc index 984ed4d44..9c6dd8148 100644 --- a/gr-pager/lib/pageri_bch3221.cc +++ b/gr-pager/lib/pageri_bch3221.cc @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/lib/pageri_bch3221.h b/gr-pager/lib/pageri_bch3221.h index 9dd2be86a..54227e438 100644 --- a/gr-pager/lib/pageri_bch3221.h +++ b/gr-pager/lib/pageri_bch3221.h @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/lib/pageri_flex_modes.cc b/gr-pager/lib/pageri_flex_modes.cc index 4553e0bf3..ad424fda1 100644 --- a/gr-pager/lib/pageri_flex_modes.cc +++ b/gr-pager/lib/pageri_flex_modes.cc @@ -1,18 +1,18 @@ /* * Copyright 2006,2007 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -21,7 +21,7 @@ #include "pageri_flex_modes.h" -const flex_mode_t flex_modes[] = +const flex_mode_t flex_modes[] = { { 0x870C78F3, 1600, 2 }, { 0xB0684F97, 1600, 4 }, @@ -51,7 +51,7 @@ int find_flex_mode(gr_int32 sync_code) for (int i = 0; i < num_flex_modes; i++) if (flex_modes[i].sync == sync_code) return i; - + // Not found return -1; } diff --git a/gr-pager/lib/pageri_flex_modes.h b/gr-pager/lib/pageri_flex_modes.h index bc53c12bf..6d81613d7 100644 --- a/gr-pager/lib/pageri_flex_modes.h +++ b/gr-pager/lib/pageri_flex_modes.h @@ -1,18 +1,18 @@ /* * Copyright 2006,2007 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/lib/pageri_util.cc b/gr-pager/lib/pageri_util.cc index bdd095706..7fa85e6ed 100644 --- a/gr-pager/lib/pageri_util.cc +++ b/gr-pager/lib/pageri_util.cc @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, @@ -27,8 +27,8 @@ unsigned char pageri_reverse_bits8(unsigned char val) { - // This method was attributed to Rich Schroeppel in the Programming - // Hacks section of Beeler, M., Gosper, R. W., and Schroeppel, R. + // This method was attributed to Rich Schroeppel in the Programming + // Hacks section of Beeler, M., Gosper, R. W., and Schroeppel, R. // HAKMEM. MIT AI Memo 239, Feb. 29, 1972. // // Reverses 8 bits in 5 machine operations with 64 bit arch diff --git a/gr-pager/lib/pageri_util.h b/gr-pager/lib/pageri_util.h index 78ae7aab3..b90cddcce 100644 --- a/gr-pager/lib/pageri_util.h +++ b/gr-pager/lib/pageri_util.h @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/python/CMakeLists.txt b/gr-pager/python/CMakeLists.txt index 08915aa00..c0e1b1be1 100644 --- a/gr-pager/python/CMakeLists.txt +++ b/gr-pager/python/CMakeLists.txt @@ -1,17 +1,17 @@ # Copyright 2011-2012 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/python/__init__.py b/gr-pager/python/__init__.py index fffefd51d..c395d4e45 100644 --- a/gr-pager/python/__init__.py +++ b/gr-pager/python/__init__.py @@ -1,23 +1,23 @@ # # Copyright 2006 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -# +# # The presence of this file turns this directory into a Python package diff --git a/gr-pager/python/flex_demod.py b/gr-pager/python/flex_demod.py index b79c1adaa..4146695f8 100644 --- a/gr-pager/python/flex_demod.py +++ b/gr-pager/python/flex_demod.py @@ -1,23 +1,23 @@ # # Copyright 2006,2007 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -# +# from gnuradio import gr, gru, optfir, blks2 from math import pi @@ -27,7 +27,7 @@ class flex_demod(gr.hier_block2): """ FLEX pager protocol demodulation block. - This block demodulates a band-limited, complex down-converted baseband + This block demodulates a band-limited, complex down-converted baseband channel into FLEX protocol frames. """ @@ -40,7 +40,7 @@ class flex_demod(gr.hier_block2): k = 25000/(2*pi*1600) # 4800 Hz max deviation quad = gr.quadrature_demod_cf(k) self.connect(self, quad) - + rsamp = blks2.rational_resampler_fff(16, 25) self.slicer = pager_swig.slicer_fb(5e-6) # DC removal averaging filter constant self.sync = pager_swig.flex_sync() @@ -61,4 +61,3 @@ class flex_demod(gr.hier_block2): def dc_offset(self): return self.slicer.dc_offset() -
\ No newline at end of file diff --git a/gr-pager/python/pager_utils.py b/gr-pager/python/pager_utils.py index 72aac6826..e935c86d4 100644 --- a/gr-pager/python/pager_utils.py +++ b/gr-pager/python/pager_utils.py @@ -1,18 +1,18 @@ # # Copyright 2008,2009 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. @@ -50,11 +50,11 @@ class queue_runner(_threading.Thread): msg = self.msgq.delete_head() # Blocking read if msg.type() != 0: break - + page = join(split(msg.to_string(), chr(128)), '|') s = make_printable(page) print msg.type(), s - + def end(self): self.msgq.insert_tail(gr.message(1)) self.done = True diff --git a/gr-pager/python/qa_pager.py b/gr-pager/python/qa_pager.py index 12a45d4c3..87f0d0026 100755 --- a/gr-pager/python/qa_pager.py +++ b/gr-pager/python/qa_pager.py @@ -1,24 +1,24 @@ #!/usr/bin/env python # # Copyright 2004,2006,2010 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -# +# from gnuradio import gr, gr_unittest import pager_swig diff --git a/gr-pager/swig/pager_flex_frame.i b/gr-pager/swig/pager_flex_frame.i index d754f5f79..0ea996500 100644 --- a/gr-pager/swig/pager_flex_frame.i +++ b/gr-pager/swig/pager_flex_frame.i @@ -1,18 +1,18 @@ /* * Copyright 2006 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, diff --git a/gr-pager/swig/pager_swig.i b/gr-pager/swig/pager_swig.i index afa3532b8..04f804157 100644 --- a/gr-pager/swig/pager_swig.i +++ b/gr-pager/swig/pager_swig.i @@ -1,18 +1,18 @@ /* * Copyright 2005,2006,2009 Free Software Foundation, Inc. - * + * * This file is part of GNU Radio - * + * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. - * + * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, |