I think I've come across a bug with the pfb_clock_sync blocks set_taps implementation. If I change a parameter in python that causes a change to the filter tap variable being fed to the pfb_clock_sync block, which then requires pfb_clock_sync.set_taps() to be called, the program will error out with the following:
Traceback (most recent call last):
File "radio_devel/scripts/pcodes_multi_sim.py", line 484, in <module>
main()
File "radio_devel/scripts/pcodes_multi_sim.py", line 205, in main
tb.set_rolloff(rolloff) # same problem with pfb_filter
File "/home/rbell/Documents/pcodes/radio_devel/scripts/pcodes_bpsk_stream_FEC_loopback_costas_nogui.py", line 184, in set_rolloff
self.digital_pfb_clock_sync_xxx_0.set_taps((firdes.root_raised_cosine(self.nfilts_pfb, self.nfilts_pfb*self.samp_symb, 1, self.rolloff, self.nfilts_pfb*11*self.samp_symb+1)))
File "/usr/local/lib/python2.7/dist-packages/gnuradio/digital/digital_swig.py", line 25452, in set_taps
return _digital_swig.pfb_clock_sync_ccf_sptr_set_taps(self, *args, **kwargs)
TypeError: Required argument 'ourtaps' (pos 3) not found
Two examples of variables that cause this change are samp_per_symb or
shaping filter rolloff factor. I only set these variables while the
simulation is not running, i.e. before I call tb.start(). I don't know why setting the rolloff should break the pfb_clock_sync.