From f3f9d2f29efa7de1664c9bdf98987d7a2b7690be Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 25 Nov 2021 14:28:55 +0100 Subject: Create test files for correlator --- tests/correlator/acgen.py | 117 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100755 tests/correlator/acgen.py (limited to 'tests/correlator/acgen.py') diff --git a/tests/correlator/acgen.py b/tests/correlator/acgen.py new file mode 100755 index 0000000..f4486e4 --- /dev/null +++ b/tests/correlator/acgen.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# +# SPDX-License-Identifier: GPL-3.0 +# +# GNU Radio Python Flow Graph +# Title: Access Code Symbols Generator +# Author: Naoki Pross +# GNU Radio version: 3.8.2.0 + +from gnuradio import blocks +from gnuradio import digital +from gnuradio import gr +from gnuradio.filter import firdes +import sys +import signal +from argparse import ArgumentParser +from gnuradio.eng_arg import eng_float, intx +from gnuradio import eng_notation + + +class acgen(gr.top_block): + + def __init__(self): + gr.top_block.__init__(self, "Access Code Symbols Generator") + + ################################################## + # Variables + ################################################## + self.sps = sps = 4 + self.samp_rate = samp_rate = 32000 + self.excess_bw = excess_bw = 1 + self.const = const = digital.constellation_qpsk().base() + self.access_code = access_code = [ 0xaa, 0xff, 0xff ] + + ################################################## + # Blocks + ################################################## + self.digital_constellation_modulator_0 = digital.generic_mod( + constellation=const, + differential=False, + samples_per_symbol=sps, + pre_diff_code=True, + excess_bw=excess_bw, + verbose=False, + log=False) + self.blocks_vector_source_x_0 = blocks.vector_source_b([0x00] * 10 + access_code * 10, False, 1, []) + self.blocks_throttle_0 = blocks.throttle(gr.sizeof_char*1, samp_rate,True) + self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_gr_complex*1, 'acgen.dat', False) + self.blocks_file_sink_0.set_unbuffered(False) + + + + ################################################## + # Connections + ################################################## + self.connect((self.blocks_throttle_0, 0), (self.digital_constellation_modulator_0, 0)) + self.connect((self.blocks_vector_source_x_0, 0), (self.blocks_throttle_0, 0)) + self.connect((self.digital_constellation_modulator_0, 0), (self.blocks_file_sink_0, 0)) + + + def get_sps(self): + return self.sps + + def set_sps(self, sps): + self.sps = sps + + def get_samp_rate(self): + return self.samp_rate + + def set_samp_rate(self, samp_rate): + self.samp_rate = samp_rate + self.blocks_throttle_0.set_sample_rate(self.samp_rate) + + def get_excess_bw(self): + return self.excess_bw + + def set_excess_bw(self, excess_bw): + self.excess_bw = excess_bw + + def get_const(self): + return self.const + + def set_const(self, const): + self.const = const + + def get_access_code(self): + return self.access_code + + def set_access_code(self, access_code): + self.access_code = access_code + self.blocks_vector_source_x_0.set_data([0x00] * 10 + self.access_code * 10, []) + + + + + +def main(top_block_cls=acgen, options=None): + tb = top_block_cls() + + def sig_handler(sig=None, frame=None): + tb.stop() + tb.wait() + + sys.exit(0) + + signal.signal(signal.SIGINT, sig_handler) + signal.signal(signal.SIGTERM, sig_handler) + + tb.start() + + tb.wait() + + +if __name__ == '__main__': + main() -- cgit v1.2.1