Hello, everyone.

I designed both transmiter and receiver in GNU Radio. I am reading data from 
serial port and according to data I am printing the max value at the receiver. 
Now, I want to make frequency switch. For frequency switch, I wrote the code 
below. I have a one problem that is when I run the program, receiver and 
transmitter turn on and off until it finish. Every frequency switch, they turn 
on and off. But If I designed range block in GNU Radio and If I change the 
frequency manually, receiver and transmitter always run. I want to this. But my 
design in code make blinking in SDR and it makes overflows error.

I will be glad if you help.


    def center_freq_change(self):
        global center_freq
        global stop_freq
        path = "C:\\Users\\my\\Desktop\\ss.txt"
        while center_freq <= stop_freq:
            self.lock()
            self.blocks_file_sink_0.close()
            self.unlock()
            center_freq += diff
            self.lock()
            #self.uhd_usrp_source_0.set_center_freq(center_freq, 0)
            #self.uhd_usrp_sink_0.set_center_freq(center_freq, 0)
            tb.set_center_freq(center_freq)
            self.blocks_file_sink_0.open(path)
            self.unlock()
            time.sleep(0.02)
            f = np.fromfile(path, dtype=np.float32)
            f_max = np.max(f)
            print("Max. Value at {} Hz : {}".format(center_freq, f_max))
            if center_freq == stop_freq:
                break
        center_freq = start_freq
        self.lock()
        #self.uhd_usrp_source_0.set_center_freq(center_freq, 0)
        #self.uhd_usrp_sink_0.set_center_freq(center_freq, 0)
        tb.set_center_freq(center_freq)
        self.unlock()

Reply via email to