Hi all,

I simplified the flowgraph a bit and prepared a script that runs it
twice and compares the results.

https://imgur.com/a/CSjOeLc

In short something is wrong indeed.
Almost after every run of the script I get results with differences.

I tested it on GNU Radio  3.7.12.0, I'm compiling the most fresh version
now.

Best Regards,
Piotr Krysik

W dniu 03.10.2018 o 06:55, Reiichiro Nakano pisze:
> Here's an updated flowgraph where you don't need a separate file
> source. Just run the flowgraph twice for a few seconds each. You'll
> likely get different file sizes but `cmp` doesn't care, it'll still
> show the first differing byte which should still prove the bug exists.
>
>

Attachment: gen_and_compare.sh
Description: application/shellscript

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#
# SPDX-License-Identifier: GPL-3.0
#
##################################################
# GNU Radio Python Flow Graph
# Title: Testindeterminate
# Generated: Wed Oct  3 13:46:04 2018
# GNU Radio version: 3.7.12.0
##################################################

from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser


class testindeterminate(gr.top_block):

    def __init__(self, number_of_samples=1000000, output_file="out.bin"):
        gr.top_block.__init__(self, "Testindeterminate")

        ##################################################
        # Parameters
        ##################################################
        self.number_of_samples = number_of_samples
        self.output_file = output_file

        ##################################################
        # Variables
        ##################################################
        self.samp_rate = samp_rate = 2e6

        ##################################################
        # Blocks
        ##################################################
        self.blocks_vector_source_x_0_0 = blocks.vector_source_c((0.1,)*number_of_samples, False, 1, [])
        self.blocks_vector_source_x_0 = blocks.vector_source_c((1.0,)*number_of_samples, False, 1, [])
        self.blocks_file_sink_0_0 = blocks.file_sink(gr.sizeof_gr_complex*1, output_file, False)
        self.blocks_file_sink_0_0.set_unbuffered(False)
        self.blocks_divide_xx_0_0 = blocks.divide_cc(1)



        ##################################################
        # Connections
        ##################################################
        self.connect((self.blocks_divide_xx_0_0, 0), (self.blocks_file_sink_0_0, 0))
        self.connect((self.blocks_vector_source_x_0, 0), (self.blocks_divide_xx_0_0, 0))
        self.connect((self.blocks_vector_source_x_0_0, 0), (self.blocks_divide_xx_0_0, 1))

    def get_number_of_samples(self):
        return self.number_of_samples

    def set_number_of_samples(self, number_of_samples):
        self.number_of_samples = number_of_samples
        self.blocks_vector_source_x_0_0.set_data((0.1,)*self.number_of_samples, [])
        self.blocks_vector_source_x_0.set_data((1.0,)*self.number_of_samples, [])

    def get_output_file(self):
        return self.output_file

    def set_output_file(self, output_file):
        self.output_file = output_file
        self.blocks_file_sink_0_0.open(self.output_file)

    def get_samp_rate(self):
        return self.samp_rate

    def set_samp_rate(self, samp_rate):
        self.samp_rate = samp_rate


def argument_parser():
    parser = OptionParser(usage="%prog: [options]", option_class=eng_option)
    parser.add_option(
        "-N", "--number-of-samples", dest="number_of_samples", type="intx", default=1000000,
        help="Set number_of_samples [default=%default]")
    parser.add_option(
        "-o", "--output-file", dest="output_file", type="string", default="out.bin",
        help="Set out.bin [default=%default]")
    return parser


def main(top_block_cls=testindeterminate, options=None):
    if options is None:
        options, _ = argument_parser().parse_args()

    tb = top_block_cls(number_of_samples=options.number_of_samples, output_file=options.output_file)
    tb.start()
    tb.wait()


if __name__ == '__main__':
    main()

Attachment: testindeterminate_pk.grc
Description: application/gnuradio-grc

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to