I am definitely not knowledgeable about Python so I might be missing the basics: as I want to include a TCP server for tuning the acquisition parameters, it seems to me (but I might be wrong) that the Python Module is more appropriate than the Python Snippet which seems to add a piece of code to the main() Python flowgraph function. The TCP server in the Python Module I have written must change the USRP LO frequency so in my Python Module I import t since t is my GRC flowchart name and I create tt=t.t() which allows me to change e.g. the LO frequency variable f with tt.f=tt.f+10000 or change the LO frequency itself by calling tt.set_f(tt.f). This is all good in a CLI application as the one running on the RPi4, and working nicely. However for educational purposes I wanted to demonstrate the same principle with a Qt Application and in this case I get the error message QWidget: Must construct a QApplication before a QWidget which I assume is due to the definition of the class class t(gr.top_block, Qt.QWidget): requiring a Qt.QWidget when I define tt=t.t() which is not yet defined as Qt.QApplication.setGraphicsSystem(style) qapp = Qt.QApplication(sys.argv)
Is there a proper way of accessing the variables and the functions of the main GRC flowchart from my Python Module, also applicable in the case of a Qt Application ? Thanks, JM -- JM Friedt, FEMTO-ST Time & Frequency/SENSeOR, 26 rue de l'Epitaphe, 25000 Besancon, France June 22, 2020 1:25 PM, "Marcus Müller" <muel...@kit.edu> wrote: > It gets even better: > > We've launched a feature in 3.8.1.0 (and on master before that, as we do > with any feature that ends up in a maintenance release) that we hope > doesn't come back to bite us due to enabling unclean design. But, we > must build best practices so that it doesn't go unused, either, so: > > Assuming you're using GNU Radio 3.8.1.0 (or later, once we release > something), you can make use of the "Python Snippets" in GRC. > > Cheers, > Marcus > > On 18/06/2020 23.17, Marcus D. Leech wrote: > >> On 06/18/2020 03:54 PM, jean-michel.fri...@femto-st.fr wrote: >>> My approach: >>> * build your grc chart from GNU Radio Companion and generate the .py file >>> * edit the py file and import pygpio >>> * play with the RPi4 GPIO in your python script. >>> >>> See attached script, with a python server included in the Python script >>> to control an RF switch from a GNU Octave TCP/IP client talking to the >>> Python >>> TCP/IP server. >>> >>> I am presenting this approach to hardware control at >>> http://jmfriedt.free.fr/sdra_radar.pdf >>> >>> JM >> >> If you use "Python Module" block, you can write a lot of >> non-GnuRadio-esque python, import anything you want, etc, etc. No editing >> of the output python required, necessarily. >> >>> -- >>> JM Friedt, FEMTO-ST Time & Frequency/SENSeOR, 26 rue de l'Epitaphe, >>> 25000 Besancon, France >>> >>> June 18, 2020 9:40 PM, "Da Fy" <diver86...@gmail.com> wrote: >> >> Hi All, does anyone have an example of how to control GOIO lines on >> the RPi4 from within a GRC >> flowgraph. I’m guessing it’s an OOT module. >> >> I need to generate a signal of a few 100Hz & control GPIO lines at >> various points though the cycle. >> >> Alternatively, I could generate the signal & lines with external >> hardware & read them with >> GnuRadio. >> >> Tnx, Dave