def __handleData(self, data, addr):
		"""
		Handles received data
		:param data:	Received data string
		:param addr:	Remote address of received data
		:return: None
		"""

		# check for connect
		if data:
			if 'command' in data and 'commandArguments' in data:

				disconnect = False

				# handle build in commands
				if data['command'] == dataCommands.SYS_DISCONNECT:
					self.__sendSystemInfoData(data)
					disconnect = True

				elif data['command'] == dataCommands.SYS_GET_INFO:
					disconnect = not self.__server.send(data)

				elif data['command'] == dataCommands.SYS_SET_REQUIRED_DATA:
					self.__server.setRequiredData( data['commandArguments'] )
					disconnect = not self.__sendSystemInfoData(data)

				# handle user command
				else:
					ret = NAOCommand.resolveCmd( data, self.__server, self.__session )
					data = self.__server.createDataResponsePackage(data, ret)

					if self.__server.send(data):
						# also send system information
						disconnect = not self.__sendSystemInfoData(data)
					else:
						disconnect = True

			# handle protocol error
			else:
				logging.error( "Protocol error receiving %s", str(data) )
				disconnect = not self.__sendSystemInfoData(data)


			# check if command was executed succesfuly
			if disconnect:
				logging.warning( "restarting server due to communication errors." )
				self.__server.close(True)
 def __handleData(self, data, addr):
     '''
     Handles recieved data                
     '''
     # check for connect
     if data:
         if 'command' in data and 'commandArguments' in data:
             
             disconnect = False
             
             # handle build in commands
             if data['command'] == dataCommands.SYS_DISCONNECT:
                 data = self.__server.createDataResponsePackage(data, True)
                 self.__server.send(data);
                 disconnect = True
                 
             elif data['command'] == dataCommands.SYS_GET_INFO:
                 data = self.__server.createDataResponsePackage(data, True)
                 disconnect = not self.__server.send(data)
                 
             elif data['command'] == dataCommands.SYS_SET_REQUIRED_DATA:
                 self.__server.setRequiredData( data['commandArguments'] )
                 data = self.__server.createDataResponsePackage(data, True)
                 disconnect = not self.__server.send(data)
                 
             # handle user
             else:
                 ret = NAOCommand.resolveCmd( data, self.__server )                  
                 data = self.__server.createDataResponsePackage(data, ret)
                 disconnect = not self.__server.send(data)
                 
         # handle protocol error
         else:
             data = self.__server.createDataResponsePackage(data, False)
             disconnect = not self.__server.send(data)    
         
         
         # check if command was successfully executed
         if disconnect:
             self.__server.close(True)        
    def __handleData(self, data, addr):
        """
        Handles recieved data                
        """
        # check for connect
        if data:
            if "command" in data and "commandArguments" in data:

                disconnect = False

                # handle build in commands
                if data["command"] == dataCommands.SYS_DISCONNECT:
                    data = self.__server.createDataResponsePackage(data, True)
                    self.__server.send(data)
                    disconnect = True

                elif data["command"] == dataCommands.SYS_GET_INFO:
                    data = self.__server.createDataResponsePackage(data, True)
                    disconnect = not self.__server.send(data)

                elif data["command"] == dataCommands.SYS_SET_REQUIRED_DATA:
                    self.__server.setRequiredData(data["commandArguments"])
                    data = self.__server.createDataResponsePackage(data, True)
                    disconnect = not self.__server.send(data)

                # handle user
                else:
                    ret = NAOCommand.resolveCmd(data, self.__server)
                    data = self.__server.createDataResponsePackage(data, ret)
                    disconnect = not self.__server.send(data)

            # handle protocol error
            else:
                data = self.__server.createDataResponsePackage(data, False)
                disconnect = not self.__server.send(data)

            # check if command was successfully executed
            if disconnect:
                self.__server.close(True)