diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt index 75c02d8..7d77284 100644 --- a/grc/CMakeLists.txt +++ b/grc/CMakeLists.txt @@ -18,6 +18,7 @@ # Boston, MA 02110-1301, USA. install(FILES + ccs_burst_tagger.xml ccs_packet_dropper.xml ccs_wireshark_connector.xml DESTINATION share/gnuradio/grc/blocks diff --git a/grc/ccs_burst_tagger.xml b/grc/ccs_burst_tagger.xml new file mode 100644 index 0000000..e3969a8 --- /dev/null +++ b/grc/ccs_burst_tagger.xml @@ -0,0 +1,25 @@ + + + Burst Tagger + ccs_burst_tagger + CCS + import ccs + ccs.burst_tagger($tag_name) + + + Tag Name + tag_name + pmt.intern("burst_len") + raw + + + + in + complex + + + + out + complex + + diff --git a/include/ccs/CMakeLists.txt b/include/ccs/CMakeLists.txt index 2f37528..62fef02 100644 --- a/include/ccs/CMakeLists.txt +++ b/include/ccs/CMakeLists.txt @@ -22,6 +22,7 @@ ######################################################################## install(FILES api.h + burst_tagger.h packet_dropper.h wireshark_connector.h DESTINATION include/ccs diff --git a/include/ccs/burst_tagger.h b/include/ccs/burst_tagger.h new file mode 100644 index 0000000..76072f6 --- /dev/null +++ b/include/ccs/burst_tagger.h @@ -0,0 +1,41 @@ +/* + * Copyright 2013 Bastian Bloessl. + * + * This 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. + * + * This software 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 software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + + +#ifndef INCLUDED_CCS_BURST_TAGGER_H +#define INCLUDED_CCS_BURST_TAGGER_H + +#include +#include + +namespace gr { +namespace ccs { + + class CCS_API burst_tagger : virtual public gr::sync_block { + public: + typedef boost::shared_ptr sptr; + + static sptr make(pmt::pmt_t tag_name); + }; + +} // namespace ccs +} // namespace gr + +#endif /* INCLUDED_CCS_BURST_TAGGER_H */ + diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index bc6e993..4ab3ab9 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -26,6 +26,7 @@ include_directories(${Boost_INCLUDE_DIR}) link_directories(${Boost_LIBRARY_DIRS}) list(APPEND ccs_sources + burst_tagger_impl.cc packet_dropper_impl.cc wireshark_connector_impl.cc ) diff --git a/lib/burst_tagger_impl.cc b/lib/burst_tagger_impl.cc new file mode 100644 index 0000000..c2c6435 --- /dev/null +++ b/lib/burst_tagger_impl.cc @@ -0,0 +1,54 @@ +/* + * Copyright 2013 Bastian Bloessl. + * + * This 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. + * + * This software 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 software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "burst_tagger_impl.h" +#include + +namespace gr { +namespace ccs { + +burst_tagger_impl::burst_tagger_impl(pmt::pmt_t tag_name) + : gr::sync_block("burst_tagger", + gr::io_signature::make(1, 1, sizeof(gr_complex)), + gr::io_signature::make(1, 1, sizeof(gr_complex))), + d_tag_name(tag_name) { +} + +burst_tagger_impl::~burst_tagger_impl() { +} + +int +burst_tagger_impl::work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) { + + const gr_complex *in = (const gr_complex*)input_items[0]; + gr_complex *out = (gr_complex*)output_items[0]; + + return noutput_items; +} + +burst_tagger::sptr burst_tagger::make(pmt::pmt_t tag_name) { + return gnuradio::get_initial_sptr(new burst_tagger_impl(tag_name)); +} + + +} /* namespace ccs */ +} /* namespace gr */ + diff --git a/lib/burst_tagger_impl.h b/lib/burst_tagger_impl.h new file mode 100644 index 0000000..3148a9a --- /dev/null +++ b/lib/burst_tagger_impl.h @@ -0,0 +1,46 @@ +/* -*- c++ -*- */ +/* + * Copyright 2013 Bastian Bloessl . + * + * This 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. + * + * This software 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 software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef INCLUDED_CCS_BURST_TAGGER_IMPL_H +#define INCLUDED_CCS_BURST_TAGGER_IMPL_H + +#include + +namespace gr { +namespace ccs { + + class burst_tagger_impl : public burst_tagger { + private: + pmt::pmt_t d_tag_name; + + public: + burst_tagger_impl(pmt::pmt_t tag_name); + ~burst_tagger_impl(); + + int work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); + }; + +} // namespace ccs +} // namespace gr + +#endif /* INCLUDED_CCS_BURST_TAGGER_IMPL_H */ + diff --git a/swig/ccs_swig.i b/swig/ccs_swig.i index 43b4624..e48c7ec 100644 --- a/swig/ccs_swig.i +++ b/swig/ccs_swig.i @@ -6,13 +6,16 @@ %include "ccs_swig_doc.i" %{ +#include "ccs/burst_tagger.h" #include "ccs/packet_dropper.h" #include "ccs/wireshark_connector.h" %} +%include "ccs/burst_tagger.h" %include "ccs/packet_dropper.h" %include "ccs/wireshark_connector.h" +GR_SWIG_BLOCK_MAGIC2(ccs, burst_tagger); GR_SWIG_BLOCK_MAGIC2(ccs, packet_dropper); GR_SWIG_BLOCK_MAGIC2(ccs, wireshark_connector);