def __init__(self, config=None, guiloader=None): ''' Constructor ''' self._gui = GuiLoader() # check for config if type(config) == mrConfigParser: self.__visionConfig = config self.__visionHostName = self.__visionConfig.getConfigValue("PROTOCOl", "visionHostname") self.__visionCalibImg = self.__visionConfig.getConfigValue("GENERAL", "calibrationImg") self.__moduleName = self.__visionConfig.getConfigValue("GENERAL", "moduleName") self.__connectionTimeout = self.__visionConfig.getConfigValueFloat("NETWORK", "timeout") else: mrLogger.log( "No configuration specified", mrLogger.LOG_LEVEL['info'] ) # load network interface self.__initNetworkInterface() # start image processing start_new_thread( self.__processImage, () ) # start gui if guiloader != None: self._gui = guiloader self._imageGrabber = ImageGrabber(self._gui, self.__visionConfig) self.__distortion = Distortion(self._gui, self._imageGrabber, self.__visionConfig) self.__transformation = Transformation(self._gui, self._imageGrabber, self.__visionConfig) self.__recognition = Recognition(self._gui, self._imageGrabber, self.__visionConfig) self.__initGui()
def __clientAdded(self, servername, clientdata): ''' Client added listener ''' msg = "Client " + servername + " " + str(clientdata) msg += " added" mrLogger.log( msg, mrLogger.LOG_LEVEL['info'] )
def __initNetworkInterface(self): ''' Initiates network interface ''' host = self.__visionConfig.getConfigValue("NETWORK", "serverIP") port = self.__visionConfig.getConfigValueInt("NETWORK", "serverPort") self.__socketManager = mrSocketManager(host=host, port=port, server=True, udpOn=True, useHandshake=True, name=str(self.__moduleName)) self.__socketManager.addOnDataRecievedListener( self.__dataRecieved ) self.__socketManager.addOnClientAddedListener( self.__clientAdded ) mrLogger.log( "Vision module trying to connect to gameserver", mrLogger.LOG_LEVEL['info'] ) # wait for connection t1 = time() while (time()-t1) < self.__connectionTimeout and not self.__socketManager.isConnected(): pass if self.__socketManager.isConnected(): mrLogger.log( "Vision module started", mrLogger.LOG_LEVEL['info'] ) else: msg = "Vision module could not establish connection to server at " + str(host) msg += " on port " + str(port) mrLogger.log( msg, mrLogger.LOG_LEVEL['error'] ) return False return True
def onDataRecievedListener(socket, addr, data): mrLogger.log( str(socket.getSocketAddress()) + " recieved data: " + str(data), mrLogger.LOG_LEVEL['info'] )
def onClientAddedListener(clientdata): mrLogger.log( "new client " + str(clientdata[1]) + " added", mrLogger.LOG_LEVEL['info'] )
# LISTENER FUNCTIONS def onClientAddedListener(clientdata): mrLogger.log( "new client " + str(clientdata[1]) + " added", mrLogger.LOG_LEVEL['info'] ) def onDataRecievedListener(socket, addr, data): mrLogger.log( str(socket.getSocketAddress()) + " recieved data: " + str(data), mrLogger.LOG_LEVEL['info'] ) # MAIN FUNCTION if __name__ == '__main__': print "test started ..." mrLogger.logClear() mrLogger.LOGGER_LOG_LEVEL = mrLogger.LOG_LEVEL['debug'] mrLogger.log( "sockettest started" ) # generate data package data = "DATA" # create server server = mrSocketManager( server=True ) # wait for server while not server.isConnected(): pass # create clients client1 = mrSocketManager() client2 = mrSocketManager()