Hi James, I cannot tell where you got that init function from, but you are passing 3 arguments to it (ignoring self). The first one has a default argument (1850e6), but the following don't. That's not allowed in python. If you want to give a default parameter for the center_freq, put the parameter at the end: def __init__(self, fft_size, freq_range, center_freq=1850e6): or give default values for all parameters: def __init__(self, center_freq=1850e6, fft_size=1024, freq_range=10e6):
I don't know if it is common (possble) to have an __init__ function in a "Python Module". I used it just to define a single function, just like in the example from the wiki. Hope that helps, I am not a GNU Radio expert, especially on those more advanced topics like building your own modules. Best regards, Fabian Am 04.12.20 um 14:18 schrieb james jordan: > Hi Fabian, > thanks for your quick reply. i think python block is a good choice but > how to define the block param as what i want? i only see there is a > example param in the block. when i modify the code as below > def __init__(self, center_freq=1850e6, fft_size, freq_range): > grc can not interpret the source code. it shows "Param - > Code(_source_code): Can't interpret source code: non-default argument > follows default argument (<string>, line 16)" > how to deal with this? > > > <http://aka.ms/weboutlook> > ------------------------------------------------------------------------ > *From:* Discuss-gnuradio > <discuss-gnuradio-bounces+james.jordan.999=hotmail....@gnu.org> on > behalf of Fabian Schwartau <fab...@opencode.eu> > *Sent:* Friday, December 4, 2020 7:14 PM > *To:* discuss-gnuradio@gnu.org <discuss-gnuradio@gnu.org> > *Subject:* Re: how to insert if...else logic between 2 blocks > > Hi James, > > three options I can see: > 1) Quick& Dirty: Implement both algorithms in parallel and use the Peak > Detector block to generate a 0 or 1 depending on your condition. Then > invert the condition, multiply the outputs of the two algorithms with > the two condition outputs and add them. > 2) Depending on your condition and what you want to do, the Python > Module block may help. You can implement python function in it and use > them anywhere in your flow chart: > https://wiki.gnuradio.org/index.php/Python_Module > 3) Build your own module: > https://wiki.gnuradio.org/index.php/OutOfTreeModules > > Best regards, > Fabian > > Am 04.12.20 um 10:36 schrieb james jordan: >> Hi ALL, >> i want to compute process a block's output then pass the result to >> another block's input. the process is not a fix equation but like this >> if(output > a)... else... so is there any way to do this without making >> a new block by myself. can i modify the generated python code to insert >> this logic? if i have to make a new block then how to make? >> >> >> <http://aka.ms/weboutlook> > >