diff --git a/ground-station.py b/ground-station.py index 06cfefa..781c3de 100644 --- a/ground-station.py +++ b/ground-station.py @@ -209,46 +209,49 @@ async def new_boat(boatId, name, ws): async def run(ws, path): """hadeler for every new websocket connection""" client = None - async for msg in ws: - for message in msg.split("\n"): - if len(message) == 0: - continue - message = message.split(';') - if len(message) == 3 and message[1] == "4675": - client = await new_client(message[0], ws) - if client is not None: + try: + async for msg in ws: + for message in msg.split("\n"): + if len(message) == 0: + continue + message = message.split(';') + if len(message) == 3 and message[1] == "4675": + client = await new_client(message[0], ws) + if client is not None: - try: - async for msg in ws: - for message in msg.split("\n"): - if len(message) == 0: - continue - if client['state'] == 'active': - await on_message(message, client) - else: - break - except websockets.exceptions.ConnectionClosed: - print("INFO: client " + client['id'] + ": disconnected") - client['state'] = "terminated" - break - elif (len(message) == 3 and message[1] == "3440"): - client = await new_boat(message[0], message[2], ws) - if client is not None: - try: - async for msg in ws: - for message in msg.split("\n"): - if len(message) == 0: - continue - print("boat" + client['id'] + " says '" + message + "'") - client['log'].append({ - "t": datetime.timestamp(datetime.now()), - "type": "rx", - "msg": message - }) - except websockets.exceptions.ConnectionClosed: - print("INFO: boat " + client['id'] + ": disconnected") - client['state'] = "terminated" - break + try: + async for msg in ws: + for message in msg.split("\n"): + if len(message) == 0: + continue + if client['state'] == 'active': + await on_message(message, client) + else: + break + except websockets.exceptions.ConnectionClosed: + print("INFO: client " + client['id'] + ": disconnected") + client['state'] = "terminated" + break + elif (len(message) == 3 and message[1] == "3440"): + client = await new_boat(message[0], message[2], ws) + if client is not None: + try: + async for msg in ws: + for message in msg.split("\n"): + if len(message) == 0: + continue + print("boat" + client['id'] + " says '" + message + "'") + client['log'].append({ + "t": datetime.timestamp(datetime.now()), + "type": "rx", + "msg": message + }) + except websockets.exceptions.ConnectionClosed: + print("INFO: boat " + client['id'] + ": disconnected") + client['state'] = "terminated" + break + except websockets.exceptions.ConnectionClosed: + print("INFO: connection disconected") async def main(): """main"""