aboutsummaryrefslogtreecommitdiff
path: root/inputs
diff options
context:
space:
mode:
Diffstat (limited to 'inputs')
-rw-r--r--inputs/TCPInput.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/inputs/TCPInput.py b/inputs/TCPInput.py
index 197045f..5bf06bf 100644
--- a/inputs/TCPInput.py
+++ b/inputs/TCPInput.py
@@ -1,4 +1,5 @@
import util.Strings as Strings
+import pdb
from operationscore.Input import *
import socket, json, time
import logging as main_log
@@ -18,17 +19,23 @@ class TCPInput(Input):
def sensingLoop(self):
data = self.conn.recv(self.BUFFER_SIZE)
main_log.debug('Incoming data', data)
+
if not data or 'end' in data: # data end, close socket
main_log.debug('End in data')
self.IS_RESPONDING = 0
self.sock.close()
- if self.IS_RESPONDING == 1: # if 'responding', respond to the received data
- dataDict = json.loads(data)
- # socketDict = {'data':dataDict, 'address':self.address}
- socketDict = {Strings.LOCATION: (100 * (1 - dataDict['x'] / 10), 25 * (1 + dataDict['y'] / 10))} # like PygameInput
-
- self.respond(socketDict)
+ if self.IS_RESPONDING == 1: # if 'responding', respond to the received data
+ try:
+ for datagroup in data.split('\n'):
+ if datagroup != None and datagroup != '':
+ dataDict = json.loads(datagroup)
+ # socketDict = {'data':dataDict, 'address':self.address}
+ socketDict = {Strings.LOCATION: (dataDict['x'], dataDict['y'])} # like PygameInput
+ print 'input'
+ self.respond(socketDict)
+ except Exception as exp:
+ print str(exp)
else:
# if not 'responding', don't respond to data and restart socket
# * an incomplete hack for now. will be changed if same-type-multi-Input is implemented.