From 89705bc5a8e4b1752c274cf5c5b78470ff951ac4 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Thu, 3 Nov 2016 21:32:03 +0000 Subject: [PATCH] - proper handling of Ctrl-C git-svn-id: http://moon:8086/svn/software/trunk/projects/opencv@347 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- ev3/Ev3Server.py | 71 +++++++++++++++++++++++++----------------------- lasertrack.py | 4 +-- 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/ev3/Ev3Server.py b/ev3/Ev3Server.py index c45a48d..2330748 100755 --- a/ev3/Ev3Server.py +++ b/ev3/Ev3Server.py @@ -93,42 +93,45 @@ if ("__main__" == __name__): sockUdp.settimeout(30.0) sockUdp.bind((UDP_IP, UDP_PORT)) localTcpServer = None - while True: - try: - data, addr = sockUdp.recvfrom(1024) # buffer size is 1024 bytes - except: - print ("UDP: Timeout") - if localTcpServer is not None: - localTcpServer.stop() - del localTcpServer - localTcpServer = None - continue -# print ("Received from " + str(addr)) -# print ("Message (" + str(len(data)) + ") :") - dataStr = data.decode("utf-8") - keyValueStrList = dataStr.replace('\r', '').replace(' ', '').split('\n') + try: + while True: + try: + data, addr = sockUdp.recvfrom(1024) # buffer size is 1024 bytes + except (socket.timeout): + print ("UDP: Timeout") + if localTcpServer is not None: + localTcpServer.stop() + del localTcpServer + localTcpServer = None + continue + # print ("Received from " + str(addr)) + # print ("Message (" + str(len(data)) + ") :") + dataStr = data.decode("utf-8") + keyValueStrList = dataStr.replace('\r', '').replace(' ', '').split('\n') - keyValueDict = {} - for keyValueStr in keyValueStrList: - keyValue = keyValueStr.split(':') - if len(keyValue) == 2: - keyValueDict[keyValue[0]] = keyValue[1] - -# print (keyValueDict) - if keyValueDict['Protocol'] == 'EV3': - if localTcpServer is None: - sockUdp.sendto(b'A', addr) - print ("EV3 discovered") - try: - time.sleep(0.2) - localTcpServer = LocalServer(addr[0], int(keyValueDict['Port'])) - localTcpServer.start() - except Exception as e: - print (e) - if localTcpServer is not None: - del localTcpServer - localTcpServer = None + keyValueDict = {} + for keyValueStr in keyValueStrList: + keyValue = keyValueStr.split(':') + if len(keyValue) == 2: + keyValueDict[keyValue[0]] = keyValue[1] + # print (keyValueDict) + if keyValueDict['Protocol'] == 'EV3': + if localTcpServer is None: + sockUdp.sendto(b'A', addr) + print ("EV3 discovered") + try: + time.sleep(0.2) + localTcpServer = LocalServer(addr[0], int(keyValueDict['Port'])) + localTcpServer.start() + except Exception as e: + print (e) + if localTcpServer is not None: + del localTcpServer + localTcpServer = None + except (KeyboardInterrupt): + print ("\nKeyboardInterrupt") + if localTcpServer is not None: localTcpServer.stop() del localTcpServer diff --git a/lasertrack.py b/lasertrack.py index e6638e9..bff74d4 100755 --- a/lasertrack.py +++ b/lasertrack.py @@ -42,9 +42,9 @@ ap.add_argument("-y", "--height", type=int, default=240, help="height") ap.add_argument("-kp", "--kp", type=float, default=6.0, # 1.0 help="kp") -ap.add_argument("-ki", "--ki", type=float, default=2.0, # 0.2 +ap.add_argument("-ki", "--ki", type=float, default=3.0, # 0.2 help="ki") -ap.add_argument("-kd", "--kd", type=float, default=2.0, # 8.0 +ap.add_argument("-kd", "--kd", type=float, default=3.0, # 8.0 help="kd") args = vars(ap.parse_args())