summaryrefslogtreecommitdiff
path: root/gr-pager/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gr-pager/lib')
-rw-r--r--gr-pager/lib/CMakeLists.txt100
-rw-r--r--gr-pager/lib/bch3221.cc43
-rw-r--r--gr-pager/lib/bch3221.h36
-rw-r--r--gr-pager/lib/flex_deinterleave_impl.cc107
-rw-r--r--gr-pager/lib/flex_deinterleave_impl.h54
-rw-r--r--gr-pager/lib/flex_frame_impl.cc48
-rw-r--r--gr-pager/lib/flex_frame_impl.h41
-rw-r--r--gr-pager/lib/flex_modes.cc66
-rw-r--r--gr-pager/lib/flex_modes.h79
-rw-r--r--gr-pager/lib/flex_parse_impl.cc258
-rw-r--r--gr-pager/lib/flex_parse_impl.h70
-rw-r--r--gr-pager/lib/flex_sync_impl.cc365
-rw-r--r--gr-pager/lib/flex_sync_impl.h95
-rw-r--r--gr-pager/lib/gnuradio-pager.rc.in55
-rw-r--r--gr-pager/lib/slicer_fb_impl.cc99
-rw-r--r--gr-pager/lib/slicer_fb_impl.h54
-rw-r--r--gr-pager/lib/util.cc55
-rw-r--r--gr-pager/lib/util.h37
18 files changed, 0 insertions, 1662 deletions
diff --git a/gr-pager/lib/CMakeLists.txt b/gr-pager/lib/CMakeLists.txt
deleted file mode 100644
index 4a8c91c5ad..0000000000
--- a/gr-pager/lib/CMakeLists.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2011,2013 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.
-
-########################################################################
-# Setup the include and linker paths
-########################################################################
-include_directories(
- ${GR_PAGER_INCLUDE_DIRS}
- ${GR_BLOCKS_INCLUDE_DIRS}
- ${GNURADIO_RUNTIME_INCLUDE_DIRS}
- ${Boost_INCLUDE_DIRS}
-)
-
-if(ENABLE_GR_CTRLPORT)
- ADD_DEFINITIONS(-DGR_CTRLPORT)
-endif(ENABLE_GR_CTRLPORT)
-
-link_directories(${Boost_LIBRARY_DIRS})
-
-include_directories(${LOG4CPP_INCLUDE_DIRS})
-link_directories(${LOG4CPP_LIBRARY_DIRS})
-
-########################################################################
-# Setup library
-########################################################################
-list(APPEND pager_sources
- flex_deinterleave_impl.cc
- flex_frame_impl.cc
- flex_parse_impl.cc
- flex_sync_impl.cc
- slicer_fb_impl.cc
- bch3221.cc
- flex_modes.cc
- util.cc
-)
-
-#Add Windows DLL resource file if using MSVC
-if(MSVC)
- include(${CMAKE_SOURCE_DIR}/cmake/Modules/GrVersion.cmake)
-
- configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-pager.rc.in
- ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-pager.rc
- @ONLY)
-
- list(APPEND gr_pager_sources
- ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-pager.rc
- )
-endif(MSVC)
-
-list(APPEND pager_libs
- gnuradio-runtime
- gnuradio-blocks
- ${Boost_LIBRARIES}
- ${LOG4CPP_LIBRARIES}
-)
-
-add_library(gnuradio-pager SHARED ${pager_sources})
-target_link_libraries(gnuradio-pager ${pager_libs})
-GR_LIBRARY_FOO(gnuradio-pager RUNTIME_COMPONENT "pager_runtime" DEVEL_COMPONENT "pager_devel")
-
-if(ENABLE_STATIC_LIBS)
- if(ENABLE_GR_CTRLPORT)
- # Remove GR_CTRLPORT set this target's definitions.
- # Makes sure we don't try to use ControlPort stuff in source files
- GET_DIRECTORY_PROPERTY(STATIC_DEFS COMPILE_DEFINITIONS)
- list(REMOVE_ITEM STATIC_DEFS "GR_CTRLPORT")
- SET_PROPERTY(DIRECTORY PROPERTY COMPILE_DEFINITIONS "${STATIC_DEFS}")
-
- # readd it to the target since we removed it from the directory-wide list.
- SET_PROPERTY(TARGET gnuradio-pager APPEND PROPERTY COMPILE_DEFINITIONS "GR_CTRLPORT")
- endif(ENABLE_GR_CTRLPORT)
-
- add_library(gnuradio-pager_static STATIC ${pager_sources})
-
- if(NOT WIN32)
- set_target_properties(gnuradio-pager_static
- PROPERTIES OUTPUT_NAME gnuradio-pager)
- endif(NOT WIN32)
-
- install(TARGETS gnuradio-pager_static
- ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "pager_devel" # .lib file
- )
-endif(ENABLE_STATIC_LIBS)
diff --git a/gr-pager/lib/bch3221.cc b/gr-pager/lib/bch3221.cc
deleted file mode 100644
index 46722611a3..0000000000
--- a/gr-pager/lib/bch3221.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "bch3221.h"
-
-namespace gr {
- namespace pager {
-
- // Corrects supplied data word according to BCH3221 encoding and
- // returns the number of errors detected/corrected.
- //
- // Not implemented yet
-
- int bch3221(int &data)
- {
- return 0;
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/bch3221.h b/gr-pager/lib/bch3221.h
deleted file mode 100644
index 24f39e39d7..0000000000
--- a/gr-pager/lib/bch3221.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_BCH3221_H
-#define INCLUDED_PAGER_BCH3221_H
-
-namespace gr {
- namespace pager {
-
- // Perform BCH (32,21) error correction on supplied data
- // Return number of errors found/corrected (0, 1, or 2)
- int bch3221(int &data);
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_BCH3221_H */
diff --git a/gr-pager/lib/flex_deinterleave_impl.cc b/gr-pager/lib/flex_deinterleave_impl.cc
deleted file mode 100644
index 08ced37119..0000000000
--- a/gr-pager/lib/flex_deinterleave_impl.cc
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2010,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_deinterleave_impl.h"
-#include "bch3221.h"
-#include "util.h"
-#include <gnuradio/io_signature.h>
-
-namespace gr {
- namespace pager {
-
- flex_deinterleave::sptr
- flex_deinterleave::make()
- {
- return gnuradio::get_initial_sptr
- (new flex_deinterleave_impl());
- }
-
- flex_deinterleave_impl::flex_deinterleave_impl() :
- sync_decimator("flex_deinterleave",
- io_signature::make(1, 1, sizeof(unsigned char)),
- io_signature::make(1, 1, sizeof(int)), 32)
- {
- set_output_multiple(8); // One FLEX block at a time
- }
-
- flex_deinterleave_impl::~flex_deinterleave_impl()
- {
- }
-
- int flex_deinterleave_impl::work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- const unsigned char *in = (const unsigned char *)input_items[0];
- int *out = (int *)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 of each codeword, then switch to MSB-1, etc. This is
- // done by shifting in the bits from the right on each codeword
- // as the bits come in. When we are done we have a FLEX block of
- // eight codewords, ready for 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 the bits (!).
- //
- // The data portion of a FLEX frame consists of 11 of these
- // deinterleaved and converted blocks.
- //
- // set_output_multiple garauntees we have output space for at
- // least eight data words, and 256 bits are supplied on input
-
- int i, j;
- for(i = 0; i < 32; i++) {
- for(j = 0; j < 8; j++) {
- d_codewords[j] <<= 1;
- d_codewords[j] |= *in++;
- }
- }
-
- // Now convert code words into data words
- for(j = 0; j < 8; j++) {
- int codeword = d_codewords[j];
-
- // Apply BCH 32,21 error correction
- // TODO: mark dataword when codeword fails ECC
- bch3221(codeword);
-
- // Reverse bit order
- codeword = reverse_bits32(codeword);
-
- // Mask off ECC then invert lower 21 bits
- codeword = (codeword & 0x001FFFFF)^0x001FFFFF;
-
- *out++ = codeword;
- }
-
- return j;
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_deinterleave_impl.h b/gr-pager/lib/flex_deinterleave_impl.h
deleted file mode 100644
index 79aabf4320..0000000000
--- a/gr-pager/lib/flex_deinterleave_impl.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_DEINTERLEAVE_IMPL_H
-#define INCLUDED_PAGER_FLEX_DEINTERLEAVE_IMPL_H
-
-#include <gnuradio/pager/flex_deinterleave.h>
-#include <gnuradio/sync_decimator.h>
-
-namespace gr {
- namespace pager {
-
- /*!
- * \brief flex deinterleave description
- * \ingroup pager_blk
- */
- class flex_deinterleave_impl : public flex_deinterleave
- {
- private:
- // One FLEX block of deinterleaved data
- int d_codewords[8];
-
- public:
- flex_deinterleave_impl();
- ~flex_deinterleave_impl();
-
- int work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- };
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_DEINTERLEAVE_IMPL_H */
diff --git a/gr-pager/lib/flex_frame_impl.cc b/gr-pager/lib/flex_frame_impl.cc
deleted file mode 100644
index 869a03c551..0000000000
--- a/gr-pager/lib/flex_frame_impl.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_frame_impl.h"
-
-namespace gr {
- namespace pager {
-
- flex_frame::sptr
- flex_frame::make()
- {
- return flex_frame::sptr
- (new flex_frame_impl());
- }
-
- flex_frame_impl::flex_frame_impl()
- {
- }
-
- flex_frame_impl::~flex_frame_impl()
- {
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_frame_impl.h b/gr-pager/lib/flex_frame_impl.h
deleted file mode 100644
index e7d1139041..0000000000
--- a/gr-pager/lib/flex_frame_impl.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_FRAME_IMPL_H
-#define INCLUDED_PAGER_FLEX_FRAME_IMPL_H
-
-#include <gnuradio/pager/flex_frame.h>
-
-namespace gr {
- namespace pager {
-
- class flex_frame_impl : public flex_frame
- {
- public:
- flex_frame_impl();
- ~flex_frame_impl();
- };
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_FRAME_IMPL_H */
diff --git a/gr-pager/lib/flex_modes.cc b/gr-pager/lib/flex_modes.cc
deleted file mode 100644
index 333883f11c..0000000000
--- a/gr-pager/lib/flex_modes.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "flex_modes.h"
-
-namespace gr {
- namespace pager {
-
- const flex_mode_t
- flex_modes[] =
- {
- { (int32_t) 0x870C78F3, 1600, 2 },
- { (int32_t) 0xB0684F97, 1600, 4 },
- { (int32_t) 0x7B1884E7, 3200, 2 },
- { (int32_t) 0xDEA0215F, 3200, 4 },
- { (int32_t) 0x4C7CB383, 3200, 4 }
- };
-
- const int num_flex_modes = sizeof(flex_modes)/sizeof(flex_modes[0]);
-
- unsigned char flex_bcd[17] = "0123456789 U -][";
-
- const char *flex_page_desc[] =
- {
- "ENC",
- "UNK",
- "TON",
- "NUM",
- "SPN",
- "ALN",
- "BIN",
- "NNM"
- };
-
- int
- find_flex_mode(int32_t sync_code)
- {
- for(int i = 0; i < num_flex_modes; i++)
- if(flex_modes[i].sync == sync_code)
- return i;
-
- // Not found
- return -1;
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_modes.h b/gr-pager/lib/flex_modes.h
deleted file mode 100644
index 9cb06fffb4..0000000000
--- a/gr-pager/lib/flex_modes.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_MODES_H
-#define INCLUDED_PAGER_FLEX_MODES_H
-
-#include <stdint.h>
-
-namespace gr {
- namespace pager {
-
-#define FLEX_SYNC_MARKER 0xA6C6AAAA
-
- typedef struct flex_mode
- {
- int32_t sync; // Outer synchronization code
- unsigned int baud; // Baudrate of SYNC2 and DATA
- unsigned int levels; // FSK encoding of SYNC2 and DATA
- } flex_mode_t;
-
- extern const flex_mode_t flex_modes[];
- extern const char *flex_page_desc[];
- extern const int num_flex_modes;
- int find_flex_mode(int32_t sync_code);
- extern unsigned char flex_bcd[];
-
- typedef enum {
- FLEX_SECURE,
- FLEX_UNKNOWN,
- FLEX_TONE,
- FLEX_STANDARD_NUMERIC,
- FLEX_SPECIAL_NUMERIC,
- FLEX_ALPHANUMERIC,
- FLEX_BINARY,
- FLEX_NUMBERED_NUMERIC,
- NUM_FLEX_PAGE_TYPES
- } page_type_t;
-
- inline bool is_alphanumeric_page(page_type_t type)
- {
- return (type == FLEX_ALPHANUMERIC ||
- type == FLEX_SECURE);
- }
-
- inline bool is_numeric_page(page_type_t type)
- {
- return (type == FLEX_STANDARD_NUMERIC ||
- type == FLEX_SPECIAL_NUMERIC ||
- type == FLEX_NUMBERED_NUMERIC);
- }
-
- inline bool is_tone_page(page_type_t type)
- {
- return (type == FLEX_TONE);
- }
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif // INCLUDED_PAGER_FLEX_MODES_H
diff --git a/gr-pager/lib/flex_parse_impl.cc b/gr-pager/lib/flex_parse_impl.cc
deleted file mode 100644
index 80123da229..0000000000
--- a/gr-pager/lib/flex_parse_impl.cc
+++ /dev/null
@@ -1,258 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2007,2010,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_parse_impl.h"
-#include "bch3221.h"
-#include <gnuradio/io_signature.h>
-#include <ctype.h>
-#include <iostream>
-#include <iomanip>
-
-namespace gr {
- namespace pager {
-
- flex_parse::sptr
- flex_parse::make(msg_queue::sptr queue, float freq)
- {
- return gnuradio::get_initial_sptr
- (new flex_parse_impl(queue, freq));
- }
-
- flex_parse_impl::flex_parse_impl(msg_queue::sptr queue, float freq) :
- sync_block("flex_parse",
- io_signature::make(1, 1, sizeof(int32_t)),
- io_signature::make(0, 0, 0)),
- d_queue(queue),
- d_freq(freq)
- {
- d_count = 0;
- }
-
- flex_parse_impl::~flex_parse_impl()
- {
- }
-
- int flex_parse_impl::work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- const int32_t *in = (const int32_t *)input_items[0];
-
- int i = 0;
- while(i < noutput_items) {
- // Accumulate one whole frame's worth of data words (88 of them)
- d_datawords[d_count] = *in++; i++;
- if(++d_count == 88) {
- parse_data();
- d_count = 0;
- }
- }
-
- return i;
- }
-
- /* FLEX data frames (that is, 88 data words per phase recovered
- after sync, symbol decoding, dephasing, deinterleaving, error
- correction, and conversion from codewords to data words) start
- with a block information word containing indices of the page
- address field and page vector fields. */
- void
- flex_parse_impl::parse_capcode(int aw1, int aw2)
- {
- d_laddr = (aw1 < 0x008001L) ||
- (aw1 > 0x1E0000L) ||
- (aw1 > 0x1E7FFEL);
-
- if(d_laddr)
- d_capcode = aw1+((aw2^0x001FFFFF)<<15)+0x1F9000; // Don't ask
- else
- d_capcode = aw1-0x8000;
- }
-
- void
- flex_parse_impl::parse_data()
- {
- // Block information word is the first data word in frame
- int biw = d_datawords[0];
-
- // Nothing to see here, please move along
- if(biw == 0 || biw == 0x001FFFFF)
- return;
-
- // Vector start index is bits 15-10
- // 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
- for(int i = aoffset; i < voffset; i++) {
- int j = voffset+i-aoffset; // Start of vector field for address @ i
-
- if(d_datawords[i] == 0x00000000 ||
- d_datawords[i] == 0x001FFFFF)
- continue; // Idle codewords, invalid address
-
- parse_capcode(d_datawords[i], d_datawords[i+1]);
- if(d_laddr)
- i++;
-
- if(d_capcode < 0) // Invalid address, skip
- continue;
-
- // Parse vector information word for address @ offset 'i'
- int viw = d_datawords[j];
- d_type = (page_type_t)((viw >> 4) & 0x00000007);
- int mw1 = (viw >> 7) & 0x00000007F;
- int len = (viw >> 14) & 0x0000007F;
-
- if(is_numeric_page(d_type))
- len &= 0x07;
- int mw2 = mw1+len;
-
- if(mw1 == 0 && mw2 == 0)
- continue; // Invalid VIW
-
- if(is_tone_page(d_type))
- mw1 = mw2 = 0;
-
- if(mw1 > 87 || mw2 > 87)
- continue; // Invalid offsets
-
- d_payload.str("");
- d_payload.setf(std::ios::showpoint);
- d_payload << std::setprecision(6) << std::setw(7)
- << d_freq/1e6 << FIELD_DELIM
- << std::setw(10) << d_capcode << FIELD_DELIM
- << flex_page_desc[d_type] << FIELD_DELIM;
-
- if(is_alphanumeric_page(d_type))
- parse_alphanumeric(mw1, mw2-1, j);
- else if(is_numeric_page(d_type))
- parse_numeric(mw1, mw2, j);
- else if(is_tone_page(d_type))
- parse_tone_only();
- else
- parse_unknown(mw1, mw2);
-
- message::sptr msg = message::make_from_string(std::string(d_payload.str()));
- d_queue->handle(msg);
- }
- }
-
- void
- flex_parse_impl::parse_alphanumeric(int mw1, int mw2, int j)
- {
- int frag;
- //bool cont;
-
- if(!d_laddr) {
- frag = (d_datawords[mw1] >> 11) & 0x03;
- //cont = (d_datawords[mw1] >> 10) & 0x01;
- mw1++;
- }
- else {
- 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;
-
- for(int i = mw1; i <= mw2; i++) {
- int 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;
- }
- }
-
- void
- flex_parse_impl::parse_numeric(int mw1, int mw2, int j)
- {
- // Get first dataword from message field or from second
- // vector word if long address
- int dw;
- if(!d_laddr) {
- dw = d_datawords[mw1];
- mw1++;
- mw2++;
- }
- else {
- dw = d_datawords[j+1];
- }
-
- unsigned char digit = 0;
- int count = 4;
- if(d_type == FLEX_NUMBERED_NUMERIC)
- 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
- digit = (digit >> 1) & 0x0F;
- if(dw & 0x01)
- digit ^= 0x08;
- dw >>= 1;
- if(--count == 0) {
- if(digit != 0x0C) // Fill
- d_payload << flex_bcd[digit];
- count = 4;
- }
- }
-
- dw = d_datawords[i];
- }
- }
-
- void
- flex_parse_impl::parse_tone_only()
- {
- }
-
- void
- flex_parse_impl::parse_unknown(int mw1, int mw2)
- {
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_parse_impl.h b/gr-pager/lib/flex_parse_impl.h
deleted file mode 100644
index f2e4236c56..0000000000
--- a/gr-pager/lib/flex_parse_impl.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_PARSE_IMPL_H
-#define INCLUDED_PAGER_FLEX_PARSE_IMPL_H
-
-#include <gnuradio/pager/flex_parse.h>
-#include <gnuradio/sync_block.h>
-#include <gnuradio/msg_queue.h>
-#include "flex_modes.h"
-#include <sstream>
-
-namespace gr {
- namespace pager {
-
-#define FIELD_DELIM ((unsigned char)128)
-
- class flex_parse_impl : public flex_parse
- {
- private:
- std::ostringstream d_payload;
- msg_queue::sptr d_queue; // Destination for decoded pages
-
- int d_count; // Count of received codewords
- int d_datawords[88]; // 11 blocks of 8 32-bit words
-
- page_type_t d_type; // Current page type
- 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(int32_t aw1, int32_t 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:
- flex_parse_impl(msg_queue::sptr queue, float freq);
- ~flex_parse_impl();
-
- int work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- };
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_PARSE_IMPL_H */
diff --git a/gr-pager/lib/flex_sync_impl.cc b/gr-pager/lib/flex_sync_impl.cc
deleted file mode 100644
index 5124155d47..0000000000
--- a/gr-pager/lib/flex_sync_impl.cc
+++ /dev/null
@@ -1,365 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2010,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_sync_impl.h"
-#include "flex_modes.h"
-#include "bch3221.h"
-#include "util.h"
-#include <gnuradio/io_signature.h>
-#include <gnuradio/blocks/count_bits.h>
-#include <cstdio>
-
-namespace gr {
- namespace pager {
-
- flex_sync::sptr
- flex_sync::make()
- {
- return gnuradio::get_initial_sptr
- (new flex_sync_impl());
- }
-
- // 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
- // get all zeros, which are considered idle code words.
-
- flex_sync_impl::flex_sync_impl() :
- block("flex_sync",
- io_signature::make(1, 1, sizeof(unsigned char)),
- io_signature::make(4, 4, sizeof(unsigned char))),
- d_sync(10) // Fixed at 10 samples per baud (@ 1600 baud)
- {
- enter_idle();
- }
-
- flex_sync_impl::~flex_sync_impl()
- {
- }
-
- void
- flex_sync_impl::forecast(int noutput_items, gr_vector_int &inputs_required)
- {
- // samples per bit X number of outputs needed
- int items = noutput_items*d_spb;
- for(unsigned int i = 0; i < inputs_required.size(); i++)
- inputs_required[i] = items;
- }
-
- int
- flex_sync_impl::index_avg(int start, int end)
- {
- // modulo average
- if(start < end)
- return (end + start)/2;
- else
- return ((end + start)/2 + d_spb/2) % d_spb;
- }
-
- bool
- flex_sync_impl::test_sync(unsigned char sym)
- {
- // 64-bit FLEX sync code:
- // AAAA:BBBBBBBB:CCCC
- //
- // 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
- //
- // First we match on the marker field with a hamming distance < 4
- // Then we match on the outer code with a hamming distance < 4
-
- d_sync[d_index] = (d_sync[d_index] << 1) | (sym < 2);
- int64_t val = d_sync[d_index];
- int32_t marker = ((val & 0x0000FFFFFFFF0000ULL)) >> 16;
-
- if(gr::blocks::count_bits32(marker^FLEX_SYNC_MARKER) < 4) {
- int32_t code = ((val & 0xFFFF000000000000ULL) >> 32) |
- (val & 0x000000000000FFFFULL);
-
- for(int i = 0; i < num_flex_modes; i++) {
- if(gr::blocks::count_bits32(code^flex_modes[i].sync) < 4) {
- d_mode = i;
- return true;
- }
- }
-
- // Marker received but doesn't match known codes
- // All codes have high word inverted to low word
- unsigned short high = (code & 0xFFFF0000) >> 16;
- unsigned short low = code & 0x0000FFFF;
- unsigned short syn = high^low;
- if(syn == 0xFFFF)
- fprintf(stderr, "Unknown sync code detected: %08X\n", code);
- }
-
- return false;
- }
-
- void
- flex_sync_impl::enter_idle()
- {
- d_state = ST_IDLE;
- d_index = 0;
- d_start = 0;
- d_center = 0;
- d_end = 0;
- d_count = 0;
- d_mode = 0;
- d_baudrate = 1600;
- d_levels = 2;
- d_spb = 16000/d_baudrate;
- d_bit_a = 0;
- d_bit_b = 0;
- d_bit_c = 0;
- d_bit_d = 0;
- d_hibit = false;
- fflush(stdout);
- }
-
- void
- flex_sync_impl::enter_syncing()
- {
- d_start = d_index;
- d_state = ST_SYNCING;
- }
-
- void
- flex_sync_impl::enter_sync1()
- {
- d_state = ST_SYNC1;
- d_end = d_index;
- d_center = index_avg(d_start, d_end); // Center of goodness
- d_count = 0;
- }
-
- void
- flex_sync_impl::enter_sync2()
- {
- d_state = ST_SYNC2;
- d_count = 0;
- d_baudrate = flex_modes[d_mode].baud;
- d_levels = flex_modes[d_mode].levels;
- d_spb = 16000/d_baudrate;
-
- if(d_baudrate == 3200) {
- // Oversampling buffer just got halved
- d_center = d_center/2;
-
- // 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;
- }
- }
-
- void
- flex_sync_impl::enter_data()
- {
- d_state = ST_DATA;
- d_count = 0;
- }
-
- void
- flex_sync_impl::parse_fiw()
- {
- // Nothing is done with these now, but these will end up getting
- // passed as metadata when mblocks are available
-
- // Bits 31-28 are frame number related, but unknown function
- // This might be a checksum
- d_unknown2 = reverse_bits8((d_fiw >> 24) & 0xF0);
-
- // Cycle is bits 27-24, reversed
- d_cycle = reverse_bits8((d_fiw >> 20) & 0xF0);
-
- // Frame is bits 23-17, reversed
- d_frame = reverse_bits8((d_fiw >> 16) & 0xFE);
-
- // Bits 16-11 are some sort of marker, usually identical across
- // many frames but sometimes changes between frames or modes
- d_unknown1 = (d_fiw >> 11) & 0x3F;
-
- //printf("CYC:%02i FRM:%03i\n", d_cycle, d_frame);
- }
-
- int
- flex_sync_impl::output_symbol(unsigned char sym)
- {
- // Here is where we output a 1 or 0 on each phase according
- // to current FLEX mode and symbol value. Unassigned phases
- // are zero from the enter_idle() initialization.
- //
- // FLEX can transmit the data portion of the frame at either
- // 1600 bps or 3200 bps, and can use either two- or four-level
- // FSK encoding.
- //
- // 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
- // di-bits are encoded with a gray code:
- //
- // Symbol Phase 1 Phase 2
- // ------ ------- -------
- // 0 1 1
- // 1 1 0
- // 2 0 0
- // 3 0 1
- //
- // At 1600 bps, 4-level, these are called PHASE A and PHASE B.
- //
- // At 3200 bps, the same 1 or 2 bit encoding occurs, except that
- // 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)
- d_bit_b = (sym == 0) || (sym == 3);
-
- *d_phase_a++ = d_bit_a;
- *d_phase_b++ = d_bit_b;
- *d_phase_c++ = d_bit_c;
- *d_phase_d++ = d_bit_d;
- bits++;
- }
- else {
- if(!d_hibit) {
- d_bit_a = (sym < 2);
- if(d_levels == 4)
- d_bit_b = (sym == 0) || (sym == 3);
- d_hibit = true;
- }
- else {
- d_bit_c = (sym < 2);
- if(d_levels == 4)
- d_bit_d = (sym == 0) || (sym == 3);
- d_hibit = false;
-
- *d_phase_a++ = d_bit_a;
- *d_phase_b++ = d_bit_b;
- *d_phase_c++ = d_bit_c;
- *d_phase_d++ = d_bit_d;
- bits++;
- }
- }
-
- return bits;
- }
-
- int
- flex_sync_impl::general_work(int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- const unsigned char *in = (const unsigned char *)input_items[0];
- d_phase_a = (unsigned char *)output_items[0];
- d_phase_b = (unsigned char *)output_items[1];
- d_phase_c = (unsigned char *)output_items[2];
- d_phase_d = (unsigned char *)output_items[3];
-
- int i = 0, j = 0;
- int ninputs = ninput_items[0];
-
- 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
- // against the known FLEX sync words.
- 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.
- if(d_index == d_center) {
- d_fiw = (d_fiw << 1) | (sym > 1);
- if(++d_count == 48) {
- // FIW is accumulated, call BCH to error correct it
- bch3221(d_fiw);
- parse_fiw();
- 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
- // FLEX sync word. The second SYNC header is 25ms of idle bits
- // at either speed.
- if(d_index == d_center) {
- // Skip 25 ms = 40 bits @ 1600 bps, 80 @ 3200 bps
- if(++d_count == d_baudrate/40)
- enter_data();
- }
- break;
-
- case ST_DATA:
- // 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);
- if(++d_count == d_baudrate*1760/1000)
- enter_idle();
- }
- break;
-
- default:
- assert(0); // memory corruption of d_state if ever gets here
- break;
- }
- }
-
- consume_each(i);
- return j;
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_sync_impl.h b/gr-pager/lib/flex_sync_impl.h
deleted file mode 100644
index 9bc5111e7f..0000000000
--- a/gr-pager/lib/flex_sync_impl.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_SYNC_IMPL_H
-#define INCLUDED_PAGER_FLEX_SYNC_IMPL_H
-
-#include <gnuradio/pager/flex_sync.h>
-
-namespace gr {
- namespace pager {
-
- class flex_sync_impl : public flex_sync
- {
- private:
- // State machine transitions
- void enter_idle();
- void enter_syncing();
- void enter_sync1();
- void enter_sync2();
- void enter_data();
-
- int index_avg(int start, int end);
- bool test_sync(unsigned char sym);
- void parse_fiw();
- 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;
-
- int d_index; // Index into current baud
- 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
-
- int d_mode; // Current packet mode
- int d_baudrate; // Current decoding baud rate
- int d_levels; // Current decoding levels
- int d_spb; // Current samples per baud
- bool d_hibit; // Alternating bit indicator for 3200 bps
-
- int d_fiw; // Frame information word
- int d_frame; // Current FLEX frame
- int d_cycle; // Current FLEX cycle
- int d_unknown1;
- int d_unknown2;
-
- unsigned char d_bit_a;
- unsigned char d_bit_b;
- unsigned char d_bit_c;
- unsigned char d_bit_d;
-
- unsigned char *d_phase_a;
- unsigned char *d_phase_b;
- unsigned char *d_phase_c;
- unsigned char *d_phase_d;
-
- std::vector<int64_t> d_sync; // Trial synchronizers
-
- public:
- flex_sync_impl();
- ~flex_sync_impl();
-
- void forecast(int noutput_items, gr_vector_int &inputs_required);
-
- int general_work(int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- };
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_SYNC_IMPL_H */
diff --git a/gr-pager/lib/gnuradio-pager.rc.in b/gr-pager/lib/gnuradio-pager.rc.in
deleted file mode 100644
index cf9d85b24f..0000000000
--- a/gr-pager/lib/gnuradio-pager.rc.in
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2013 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.
- */
-
-#include <afxres.h>
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION @MAJOR_VERSION@,@API_COMPAT@,@RC_MINOR_VERSION@,@RC_MAINT_VERSION@
- PRODUCTVERSION @MAJOR_VERSION@,@API_COMPAT@,@RC_MINOR_VERSION@,@RC_MAINT_VERSION@
- FILEFLAGSMASK 0x3fL
-#ifndef NDEBUG
- FILEFLAGS 0x0L
-#else
- FILEFLAGS 0x1L
-#endif
- FILEOS VOS__WINDOWS32
- FILETYPE VFT_DLL
- FILESUBTYPE VFT2_DRV_INSTALLABLE
- BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "FileDescription", "gnuradio-pager"
- VALUE "FileVersion", "@VERSION@"
- VALUE "InternalName", "gnuradio-pager.dll"
- VALUE "LegalCopyright", "Licensed under GPLv3 or any later version"
- VALUE "OriginalFilename", "gnuradio-pager.dll"
- VALUE "ProductName", "gnuradio-pager"
- VALUE "ProductVersion", "@VERSION@"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
- END
diff --git a/gr-pager/lib/slicer_fb_impl.cc b/gr-pager/lib/slicer_fb_impl.cc
deleted file mode 100644
index 7d570ebc70..0000000000
--- a/gr-pager/lib/slicer_fb_impl.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2007,2010,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "slicer_fb_impl.h"
-#include <gnuradio/io_signature.h>
-
-namespace gr {
- namespace pager {
-
- slicer_fb::sptr
- slicer_fb::make(float alpha)
- {
- return gnuradio::get_initial_sptr
- (new slicer_fb_impl(alpha));
- }
-
- slicer_fb_impl::slicer_fb_impl(float alpha) :
- sync_block("slicer_fb",
- io_signature::make(1, 1, sizeof(float)),
- io_signature::make(1, 1, sizeof(unsigned char)))
- {
- d_alpha = alpha;
- d_beta = 1.0-alpha;
- d_avg = 0.0;
- }
-
- slicer_fb_impl::~slicer_fb_impl()
- {
- }
-
- // Tracks average, minimum, and peak, then converts input into one of:
- //
- // [0, 1, 2, 3]
- unsigned char
- slicer_fb_impl::slice(float sample)
- {
- unsigned char decision;
-
- // Update DC level and remove
- d_avg = d_avg*d_beta+sample*d_alpha;
- sample -= d_avg;
-
- if(sample > 0) {
- if(sample > 2.0)
- decision = 3;
- else
- decision = 2;
- }
- else {
- if(sample < -2.0)
- decision = 0;
- else
- decision = 1;
- }
-
- return decision;
- }
-
- int
- slicer_fb_impl::work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- float *iptr = (float *)input_items[0];
- unsigned char *optr = (unsigned char *)output_items[0];
-
- int size = noutput_items;
-
- for(int i = 0; i < size; i++)
- *optr++ = slice(*iptr++);
-
- return noutput_items;
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/slicer_fb_impl.h b/gr-pager/lib/slicer_fb_impl.h
deleted file mode 100644
index d2d6ba7d89..0000000000
--- a/gr-pager/lib/slicer_fb_impl.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_SLICER_FB_IMPL_H
-#define INCLUDED_PAGER_SLICER_FB_IMPL_H
-
-#include <gnuradio/pager/slicer_fb.h>
-
-namespace gr {
- namespace pager {
-
- class slicer_fb_impl : public slicer_fb
- {
- private:
- unsigned char slice(float sample);
-
- float d_alpha; // DC removal time constant
- float d_beta; // 1.0-d_alpha
- float d_avg; // Average value for DC offset subtraction
-
- public:
- slicer_fb_impl(float alpha);
- ~slicer_fb_impl();
-
- int work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-
- float dc_offset() const { return d_avg; }
- };
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_SLICER_FB_IMPL_H */
diff --git a/gr-pager/lib/util.cc b/gr-pager/lib/util.cc
deleted file mode 100644
index 8db4e5ca11..0000000000
--- a/gr-pager/lib/util.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "util.h"
-
-namespace gr {
- namespace pager {
-
- unsigned char
- 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.
- // HAKMEM. MIT AI Memo 239, Feb. 29, 1972.
- //
- // Reverses 8 bits in 5 machine operations with 64 bit arch
- return (val * 0x0202020202ULL & 0x010884422010ULL) % 1023;
- }
-
- int32_t
- reverse_bits32(int32_t val)
- {
- int32_t out = 0x00000000;
- out |= (reverse_bits8((val >> 24) & 0x000000FF) );
- out |= (reverse_bits8((val >> 16) & 0x000000FF) << 8);
- out |= (reverse_bits8((val >> 8) & 0x000000FF) << 16);
- out |= (reverse_bits8((val ) & 0x000000FF) << 24);
- return out;
- }
-
- } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/util.h b/gr-pager/lib/util.h
deleted file mode 100644
index db33e66b95..0000000000
--- a/gr-pager/lib/util.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,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,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_UTIL_H
-#define INCLUDED_PAGER_UTIL_H
-
-#include <stdint.h>
-
-namespace gr {
- namespace pager {
-
- unsigned char reverse_bits8(unsigned char val);
- int32_t reverse_bits32(int32_t val);
-
- } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_UTIL_H */