- proper handling of Ctrl-C

git-svn-id: http://moon:8086/svn/software/trunk/projects/opencv@347 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2016-11-03 21:32:03 +00:00
parent 2b8a05c056
commit 89705bc5a8
2 changed files with 39 additions and 36 deletions
+37 -34
View File
@@ -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