diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2016-02-16 20:59:25 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2016-04-05 14:44:34 +0200 |
commit | 5ef6c0f69d1ba279da94588d80cd460acc21bae9 (patch) | |
tree | a02ecaa77c8f91ed4c7cd74b952f1c9836596f1f /gr-blocks/grc | |
parent | afd1b036c27cce87577f129273310f64d7c66edf (diff) |
grc: move xmlrpc blocks to gr-blocks
Diffstat (limited to 'gr-blocks/grc')
-rw-r--r-- | gr-blocks/grc/blocks_block_tree.xml | 7 | ||||
-rw-r--r-- | gr-blocks/grc/xmlrpc_client.xml | 42 | ||||
-rw-r--r-- | gr-blocks/grc/xmlrpc_server.xml | 41 |
3 files changed, 89 insertions, 1 deletions
diff --git a/gr-blocks/grc/blocks_block_tree.xml b/gr-blocks/grc/blocks_block_tree.xml index f35815b4dd..bfab41aeb6 100644 --- a/gr-blocks/grc/blocks_block_tree.xml +++ b/gr-blocks/grc/blocks_block_tree.xml @@ -29,7 +29,7 @@ <cat> <name></name> <!-- Blank for Root Name --> <cat> - <name>Audio</name> + <name>Audio</name> <block>blocks_wavfile_source</block> <block>blocks_wavfile_sink</block> </cat> @@ -230,4 +230,9 @@ <name>Variables</name> <block>variable_tag_object</block> </cat> + <cat> + <name>Misc</name> + <block>xmlrpc_server</block> + <block>xmlrpc_client</block> + </cat> </cat> diff --git a/gr-blocks/grc/xmlrpc_client.xml b/gr-blocks/grc/xmlrpc_client.xml new file mode 100644 index 0000000000..dc4d154d14 --- /dev/null +++ b/gr-blocks/grc/xmlrpc_client.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Simple XMLRPC Client +################################################### + --> +<block> + <name>XMLRPC Client</name> + <key>xmlrpc_client</key> + <import>import xmlrpclib</import> + <make>xmlrpclib.Server('http://$(addr()):$(port)')</make> + <callback>$(callback())($variable)</callback> + <param> + <name>Address</name> + <key>addr</key> + <value>localhost</value> + <type>string</type> + </param> + <param> + <name>Port</name> + <key>port</key> + <value>8080</value> + <type>int</type> + </param> + <param> + <name>Callback</name> + <key>callback</key> + <value>set_</value> + <type>string</type> + </param> + <param> + <name>Variable</name> + <key>variable</key> + <type>raw</type> + </param> + <doc> +This block will create an XMLRPC client. \ +The client will execute the callback on the server when the variable is changed. \ +The callback should be a the name of a function registered on the server. \ +The variable should be an expression containing a the name of a variable in flow graph. + </doc> +</block> diff --git a/gr-blocks/grc/xmlrpc_server.xml b/gr-blocks/grc/xmlrpc_server.xml new file mode 100644 index 0000000000..602d444161 --- /dev/null +++ b/gr-blocks/grc/xmlrpc_server.xml @@ -0,0 +1,41 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Simple XMLRPC Server +################################################### + --> +<block> + <name>XMLRPC Server</name> + <key>xmlrpc_server</key> + <import>import SimpleXMLRPCServer</import> + <import>import threading</import> + <make>SimpleXMLRPCServer.SimpleXMLRPCServer(($addr, $port), allow_none=True) +self.$(id).register_instance(self) +self.$(id)_thread = threading.Thread(target=self.$(id).serve_forever) +self.$(id)_thread.daemon = True +self.$(id)_thread.start()</make> + <param> + <name>Address</name> + <key>addr</key> + <value>localhost</value> + <type>string</type> + </param> + <param> + <name>Port</name> + <key>port</key> + <value>8080</value> + <type>int</type> + </param> + <doc> +This block will start an XMLRPC server. \ +The server provides access to the run, start, stop, wait functions of the flow graph. \ +The server also provides access to the variable callbacks in the flow graph. \ +Ex: If the variable is called freq, the function provided by the server will be called set_freq(new_freq). + +Example client in python: + +import xmlrpclib +s = xmlrpclib.Server('http://localhost:8080') +s.set_freq(5000) + </doc> +</block> |