User:Muaddib: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
==XMLRPC | ==Understanding XMLRPC Blocks== | ||
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. | |||
==Introduction== | To understand how GNURadio implements XMLRPC, look at the block documentation linked in the paragraph above. | ||
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, once we are familiar with the general concept of GNURadio, we start architecting projects that span across multiple computers. In the initial building stages, we generally test two sides of a link (TX/RX) on a very , wireless communications between two processes on the same computer don't really make much sense! | |||
*fm radio receiver on roof, minimize cable loss, maximize position | *fm radio receiver on roof, minimize cable loss, maximize position | ||
*control from inside, full visualization (good enough), low-data rate | *control from inside, full visualization (good enough), low-data rate | ||
<talk about XMLRPC server/client> | <talk about XMLRPC server/client> | ||
==Simple Example== | ==Simple Example== | ||
<run the source examples> | <run the source examples> |
Revision as of 20:55, 21 November 2021
Understanding XMLRPC Blocks
This tutorial presents the GNU Radio XMLRPC blocks. There are two blocks in this collection: XMLRPC Client and 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.
To understand how GNURadio implements XMLRPC, look at the block documentation linked in the paragraph above.
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
Introduction: What does XMLRPC do in GNURadio and Why Should I Care?
WHAT: XMLRPC is an XML-based Remote Protocol Control 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, once we are familiar with the general concept of GNURadio, we start architecting projects that span across multiple computers. In the initial building stages, we generally test two sides of a link (TX/RX) on a very , wireless communications between two processes on the same computer don't really make much sense!
- fm radio receiver on roof, minimize cable loss, maximize position
- 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