summaryrefslogtreecommitdiff
path: root/gr-blocks/grc/xmlrpc_server.block.yml
blob: fb33fa79a821f60beeae877fb88513051c8494c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
id: xmlrpc_server
label: XMLRPC Server

parameters:
-   id: addr
    label: Address
    dtype: string
    default: localhost
-   id: port
    label: Port
    dtype: int
    default: '8080'

templates:
    imports: |-
        import SimpleXMLRPCServer
        import threading
    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()

documentation: |-
    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)

file_format: 1