User:Muaddib: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
No edit summary
 
(46 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Understanding XMLRPC Blocks==
-Conditional Variables
This tutorial presents the GNU Radio XMLRPC blocks. There are two blocks in this collection: [[XMLRPC_Client|'''XMLRPC Client''']] and [[XMLRPC_Server|'''XMLRPC Server''']]. Both blocks have IP address/port fields while the client block also has callback and variable fields. The blocks are simple implementations of the Python XMLRPC module and use a limited subset of the full features of XMLRPC.
  -using variable values as triggers with conditionals
  -dynamic file naming with timestamps
  -Push-Button I/Q Field Recorder
-python file interaction
  -keyword search for files
  -I/Q File Rolodex for Fast Post-Analysis


To understand how GNURadio implements XMLRPC, look at the block documentation linked in the paragraph above.
-Slow Motion I/Q File Playback
 
  -adjustable throttle
To understand the XMLRPC protocol and Python implementation in detail, the reference links below are a good starting point.
 
==Reference Links==
http://xmlrpc.com/
https://docs.python.org/3.8/library/xmlrpc.html
 
==Prerequisites==
* [[Guided_Tutorial_GRC|Intro to GR usage: GRC and flowgraphs]]
* [[Understanding_ZMQ_Blocks|Understanding ZMQ Blocks]]
 
==Introduction: ''What does XMLRPC do in GNURadio and Why Should I Care?''==
WHAT: XMLRPC is an '''XML'''-based '''R'''emote '''P'''rotocol '''C'''ontrol mechanism that does just that. A client with access to the server may use SET commands to change a parameter on the server or GET commands to obtain the value of a parameter on the server. 
WHY: In many cases, we have need to adjust the variables of a flowgraph at runtime.We usually do this with a QT GUI block. But what if you want to have the same control, but want to have the controller on a different computer? XMLRPC will allow you to run one flowgraph and control all of its variables from a second flowgraph. In fact, the second flowgraph doesn't even have to be on the same computer!
 
A few examples where this might come into play are:
* Remote Narrow Band FM Receiver Station. You have a roof antenna with a short cable run going into a weatherproof box. In the box is an RTL-SDR dongle connected to a Raspberry PI 4 running the flowgraph from the Narrow band FM receiver tutorials. You can hear the audio, but would like to change the frequency at runtime. You'd also like to adjust the gain settings and squelch level while it's running. You can of course use an application to
*control from inside, full visualization (good enough), low-data rate
 
<talk about XMLRPC server/client>
==Simple Example==
<run the source examples>
 
==Headless DSP/GUI Control==
*Run on localhost
*Run on separate machines
  *<ssh -L vs. direct IP>
  *notes about streaming IQ vs Decimated I/Q
  *show data usage of I/Q vs. decimated I/Q

Latest revision as of 01:23, 21 February 2022

-Conditional Variables

 -using variable values as triggers with conditionals
 -dynamic file naming with timestamps
 -Push-Button I/Q Field Recorder

-python file interaction

 -keyword search for files
 -I/Q File Rolodex for Fast Post-Analysis

-Slow Motion I/Q File Playback

 -adjustable throttle