From 00e836cfa4e2652d724972585d661143142af002 Mon Sep 17 00:00:00 2001 From: eugue Date: Mon, 24 Jan 2011 14:41:38 -0500 Subject: merge with biginstall --- inputs/TCPInput.py | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'inputs') diff --git a/inputs/TCPInput.py b/inputs/TCPInput.py index 197045f..e5475c1 100644 --- a/inputs/TCPInput.py +++ b/inputs/TCPInput.py @@ -1,7 +1,10 @@ import util.Strings as Strings +import pdb from operationscore.Input import * import socket, json, time import logging as main_log +import string + class TCPInput(Input): def inputInit(self): self.HOST = '' # Symbolic name meaning all available interfaces @@ -18,25 +21,35 @@ 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 + if not data or 'end' in data or data == '': # data end, close socket main_log.debug('End in data') + print 'end of stream' self.IS_RESPONDING = 0 + self.conn.close() self.sock.close() - if self.IS_RESPONDING == 1: # if 'responding', respond to the received data + 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) + self.respond(dataDict) + + #try: + # for datagroup in data.split('\n'): + # if datagroup != None and datagroup != '': + # dataDict = json.loads(datagroup) + # self.respond(dataDict) + # 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. - time.sleep(1) + + self.IS_RESPONDING = 1 self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.sock.bind((self.HOST, self.PORT)) self.sock.listen(1) (self.conn, self.address) = self.sock.accept() - self.IS_RESPONDING = 1 - -- cgit v1.2.3