diff options
Diffstat (limited to 'mpm/python/usrp_mpm/discovery.py')
| -rw-r--r-- | mpm/python/usrp_mpm/discovery.py | 44 | 
1 files changed, 27 insertions, 17 deletions
diff --git a/mpm/python/usrp_mpm/discovery.py b/mpm/python/usrp_mpm/discovery.py index 174866498..595368c76 100644 --- a/mpm/python/usrp_mpm/discovery.py +++ b/mpm/python/usrp_mpm/discovery.py @@ -19,19 +19,19 @@ Code to run the discovery port  """  from __future__ import print_function -import time -import ctypes -from multiprocessing import Process, Value +from logging import getLogger +from multiprocessing import Process  from six import iteritems  import socket -from types import MPM_DISCOVERY_PORT, graceful_exit +from usrp_mpm.types import MPM_DISCOVERY_PORT + +LOG = getLogger(__name__)  RESPONSE_PREAMBLE = "USRP-MPM"  RESPONSE_SEP = ";"  RESPONSE_CLAIMED_KEY = "claimed" -  def spawn_discovery_process(device_info, shared_state):      """      Returns a process that contains the device discovery. @@ -41,9 +41,9 @@ def spawn_discovery_process(device_info, shared_state):                     will be included in the response string.      """      # claim_status = Value(ctypes.c_bool, False) -    p = Process(target=_discovery_process, args=(device_info, shared_state)) -    p.start() -    return p +    proc = Process(target=_discovery_process, args=(device_info, shared_state)) +    proc.start() +    return proc  def _discovery_process(device_info, state): @@ -65,12 +65,22 @@ def _discovery_process(device_info, state):      send_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) -    try: -        while True: -            data, sender = sock.recvfrom(4096) -            if data.strip("\0") == "MPM-DISC": -                send_data = create_response_string() -                send_sock.sendto(send_data, sender) -    except: -        sock.close() -        send_sock.close() +    # try: +    while True: +        data, sender = sock.recvfrom(8000) +        LOG.info("Got poked by: %s", sender[0]) +        if data.strip("\0") == "MPM-DISC": +            LOG.info("Sending discovery response to %s port: %d", +                     sender[0], sender[1]) +            send_data = create_response_string() +            send_sock.sendto(send_data, sender) +        elif data.strip("\0").startswith("MPM-ECHO"): +            LOG.info("Received echo request") +            send_data = data +            send_sock.sendto(send_data, sender) + +    # except Exception as err: +    #     LOG.info("Error: %s", err) +    #     LOG.info("Error type: %s", type(err)) +    #     sock.close() +    #     send_sock.close()  | 
