code changes

This commit is contained in:
Bastian Bloessl
2013-10-10 11:06:36 +02:00
parent b0503d5fa3
commit 58ed53a5d5
42 changed files with 2848 additions and 362 deletions
+55
View File
@@ -14,20 +14,75 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
include(GrPython)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
#!${PYTHON_EXECUTABLE}
import sys, os, re
sys.path.append('${GR_RUNTIME_PYTHONPATH}')
os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
if __name__ == '__main__':
sys.path.append('${CMAKE_CURRENT_SOURCE_DIR}/../../python')
import build_utils
root, inp = sys.argv[1:3]
for sig in sys.argv[3:]:
name = re.sub ('X+', sig, root)
d = build_utils.standard_dict(name, sig, 'ieee802_11')
build_utils.expand_template(d, inp)
")
macro(expand_h root)
#make a list of all the generated files
unset(expanded_files_h)
foreach(sig ${ARGN})
string(REGEX REPLACE "X+" ${sig} name ${root})
list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
endforeach(sig)
#create a command to generate the files
add_custom_command(
OUTPUT ${expanded_files_h}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
${root} ${root}.h.t ${ARGN}
)
#install rules for the generated h files
list(APPEND generated_includes ${expanded_files_h})
endmacro(expand_h)
expand_h(moving_average_XX ff cc)
add_custom_target(ieee802_11_generated_includes DEPENDS
${generated_includes}
)
########################################################################
# Install public header files
########################################################################
list(APPEND include_sources
${generated_includes}
api.h
ether_encap.h
ofdm_decode_mac.h
ofdm_decode_signal.h
ofdm_equalize_symbols.h
ofdm_freq_est.h
ofdm_mac.h
ofdm_mapper.h
ofdm_parse_mac.h
ofdm_pilot.h
ofdm_preamble.h
ofdm_sync_long.h
ofdm_sync_short.h
wave_llc.h
wave_short_message.h
)
install(
+40
View File
@@ -0,0 +1,40 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
#include <ieee802-11/api.h>
#include <gnuradio/sync_block.h>
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API @NAME@ : virtual public sync_block
{
public:
typedef boost::shared_ptr<@NAME@> sptr;
static sptr make(int length);
virtual int length() const = 0;
virtual void set_length(int length) = 0;
};
} /* namespace blocks */
} /* namespace gr */
#endif /* @GUARD_NAME@ */
+1 -1
View File
@@ -28,7 +28,7 @@ class IEEE802_11_API ofdm_decode_mac : virtual public block
public:
typedef boost::shared_ptr<ofdm_decode_mac> sptr;
static sptr make(bool debug = false);
static sptr make(bool log = false, bool debug = false);
};
+1 -1
View File
@@ -28,7 +28,7 @@ class IEEE802_11_API ofdm_decode_signal : virtual public block
public:
typedef boost::shared_ptr<ofdm_decode_signal> sptr;
static sptr make(bool debug = false);
static sptr make(bool log = false, bool debug = false);
};
+38
View File
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_IEEE802_11_OFDM_FREQ_EST_H
#define INCLUDED_IEEE802_11_OFDM_FREQ_EST_H
#include <ieee802-11/api.h>
#include <gnuradio/block.h>
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API ofdm_freq_est : virtual public block
{
public:
typedef boost::shared_ptr<ofdm_freq_est> sptr;
static sptr make(bool log = false, bool debug = false);
};
} // namespace ieee802_11
} // namespace gr
#endif /* INCLUDED_IEEE802_11_OFDM_FREQ_EST_H */
+37
View File
@@ -0,0 +1,37 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_IEEE802_11_OFDM_MAC_H
#define INCLUDED_IEEE802_11_OFDM_MAC_H
#include <ieee802-11/api.h>
#include <gnuradio/block.h>
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API ofdm_mac : virtual public block
{
public:
typedef boost::shared_ptr<ofdm_mac> sptr;
static sptr make();
};
} // namespace ieee802_11
} // namespace gr
#endif /* INCLUDED_IEEE802_11_OFDM_MAC_H */
+49
View File
@@ -0,0 +1,49 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_IEEE802_11_OFDM_MAPPER_H
#define INCLUDED_IEEE802_11_OFDM_MAPPER_H
#include <ieee802-11/api.h>
#include <gnuradio/block.h>
enum Encoding {
BPSK_1_2 = 0,
BPSK_3_4 = 1,
QPSK_1_2 = 2,
QPSK_3_4 = 3,
QAM16_1_2 = 4,
QAM16_3_4 = 5,
QAM64_2_3 = 6,
QAM64_3_4 = 7,
};
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API ofdm_mapper : virtual public block
{
public:
typedef boost::shared_ptr<ofdm_mapper> sptr;
static sptr make(Encoding mcs, bool debug = false);
virtual void set_encoding(Encoding mcs) = 0;
};
} // namespace ieee802_11
} // namespace gr
#endif /* INCLUDED_IEEE802_11_OFDM_MAPPER_H */
+1 -1
View File
@@ -28,7 +28,7 @@ class IEEE802_11_API ofdm_parse_mac : virtual public block
public:
typedef boost::shared_ptr<ofdm_parse_mac> sptr;
static sptr make(bool debug);
static sptr make(bool log = false, bool debug = false);
};
+38
View File
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_IEEE802_11_PILOT_H
#define INCLUDED_IEEE802_11_PILOT_H
#include <ieee802-11/api.h>
#include <gnuradio/sync_block.h>
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API ofdm_pilot : virtual public sync_block
{
public:
typedef boost::shared_ptr<ofdm_pilot> sptr;
static sptr make(bool debug = false);
};
} // namespace ieee802_11
} // namespace gr
#endif /* INCLUDED_IEEE802_11_PILOT_H */
+38
View File
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_IEEE802_11_OFDM_PREAMBLE_H
#define INCLUDED_IEEE802_11_OFDM_PREAMBLE_H
#include <ieee802-11/api.h>
#include <gnuradio/block.h>
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API ofdm_preamble : virtual public block
{
public:
typedef boost::shared_ptr<ofdm_preamble> sptr;
static sptr make(bool debug = false);
};
} // namespace ieee802_11
} // namespace gr
#endif /* INCLUDED_IEEE802_11_OFDM_PREAMBLE_H */
+2 -2
View File
@@ -28,8 +28,8 @@ class IEEE802_11_API ofdm_sync_long : virtual public block
public:
typedef boost::shared_ptr<ofdm_sync_long> sptr;
static sptr make(unsigned int sync_length, unsigned int freq_est,
bool debug = false);
static sptr make(unsigned int sync_length,
bool log = false, bool debug = false);
};
+1 -1
View File
@@ -29,7 +29,7 @@ public:
typedef boost::shared_ptr<ofdm_sync_short> sptr;
static sptr make(double threshold, unsigned int max_samples,
unsigned int min_plateau, bool debug = false);
unsigned int min_plateau, bool log = false, bool debug = false);
};
+38
View File
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_IEEE802_11_WAVE_LLC_H
#define INCLUDED_IEEE802_11_WAVE_LLC_H
#include <ieee802-11/api.h>
#include <gnuradio/block.h>
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API wave_llc : virtual public block
{
public:
typedef boost::shared_ptr<wave_llc> sptr;
static sptr make();
};
} // namespace ieee802_11
} // namespace gr
#endif /* INCLUDED_IEEE802_11_WAVE_LLC_H */
+39
View File
@@ -0,0 +1,39 @@
/*
* Copyright (C) 2013 Bastian Bloessl <bloessl@ccs-labs.org>
*
* This program 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 of the License, or
* (at your option) any later version.
*
* This program 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_IEEE802_11_WAVE_SHORT_MESSAGE_H
#define INCLUDED_IEEE802_11_WAVE_SHORT_MESSAGE_H
#include <ieee802-11/api.h>
#include <gnuradio/block.h>
namespace gr {
namespace ieee802_11 {
class IEEE802_11_API wave_short_message : virtual public block
{
public:
virtual void set_version(int version) = 0;
typedef boost::shared_ptr<wave_short_message> sptr;
static sptr make(int version);
};
} // namespace ieee802_11
} // namespace gr
#endif /* INCLUDED_IEEE802_11_WAVE_SHORT_MESSAGE_H */