diff options
| author | Martin Braun <martin.braun@ettus.com> | 2017-03-08 09:28:55 -0800 | 
|---|---|---|
| committer | Martin Braun <martin.braun@ettus.com> | 2017-12-22 15:03:44 -0800 | 
| commit | 1a4348038d0eb57d53475074dca49e8192aeb2d7 (patch) | |
| tree | 04c8e87fa9c95d2702aac410f6fb271461acb9bb /mpm/python/test_rpc.py | |
| parent | fc8cd827f6b16b9c8c354a216889e6a9d7f37456 (diff) | |
| download | uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.gz uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.bz2 uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.zip | |
Initial commit for N3xx development.
- Creates mpm/ subdirectory
- First pass at hardware daemon/MPM
- New code for LMK04828, AD9371
- spidev integration
Contributions by:
Martin Braun <martin.braun@ettus.com>
Derek Kozel <derek.kozel@ettus.com>
Mark Meserve <mark.meserve@ni.com>
Andrej Rode <andrej.rode@ettus.com>
Diffstat (limited to 'mpm/python/test_rpc.py')
| -rwxr-xr-x | mpm/python/test_rpc.py | 63 | 
1 files changed, 63 insertions, 0 deletions
| diff --git a/mpm/python/test_rpc.py b/mpm/python/test_rpc.py new file mode 100755 index 000000000..1a97a103c --- /dev/null +++ b/mpm/python/test_rpc.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +import socket +from mprpc import RPCClient +import usrp_mpm as mpm +import argparse + + +def parse_args(): +    parser = argparse.ArgumentParser() +    parser.add_argument("-a", "--address", default="0.0.0.0", type=str, help="Destination address") +    parser.add_argument("-p", "--port", default=0, type=int, help="Destination port") +    sub_parsers = parser.add_subparsers(dest="command") + +    rpc_parser = sub_parsers.add_parser("rpc", help="Issue RPC") +    rpc_parser.add_argument("-c", "--call", required=True, help="command to issue") +    rpc_parser.add_argument("arguments", nargs="*") + +    disc_parser = sub_parsers.add_parser("disc", help="Issue discovery") +    return parser.parse_args() + + +def rpc(address, port, command, *args): +    if not port: +        port = mpm.types.MPM_RPC_PORT +    client = RPCClient(address, port) +    if args: +        result = client.call(command, *args) +    else: +        result = client.call(command) +    return result + + +def discovery(address, port): +    if not port: +        port = mpm.types.MPM_DISCOVERY_PORT +    sock = socket.socket( +        socket.AF_INET, +        socket.SOCK_DGRAM) +    sock.sendto(mpm.types.MPM_DISCOVERY_MESSAGE, (address, port)) +    sock.settimeout(1.0) # wait max 1 second +    while True: +        try: +            data, sender = sock.recvfrom(4096) +            print("Received respons from: {}".format(sender[0])) +            print("Dicovery data: {}".format(data)) +        except: +            break + + +def main(): +    args = parse_args() +    if args.command == "rpc": +        if args.arguments: +            result = rpc(args.address, args.port, args.call, *args.arguments) +        else: +            result = rpc(args.address, args.port, args.call) +        print(result) +    elif args.command == "disc": +        discovery(args.address, args.port) + + +if __name__ == "__main__": +    exit(not(main())) | 
