Ejemplo n.º 1
0
    def receiveACLMessage (self, ACLMessage, current = None):
        """Recibe un mensaje ACL del Agent Communication Channel de la plataforma de agentes"""

        print self.getName() + ' --> Mensaje recibido.'

        try:
            # Conversión de string a Document.
            aclMessage = parseString(ACLMessage)
            print aclMessage.toprettyxml()
            # Lectura del documento XML.
            UtilXML.readACLMessage(aclMessage)
        except Exception, message:
            print 'Error al procesar el mensaje recibido: ', sys.exc_info()[0], message
Ejemplo n.º 2
0
    def receiveACLMessage(self, ACLMessage, current=None):
        """Recibe un mensaje ACL del Agent Communication Channel de la plataforma de agentes"""

        print self.getName() + ' --> Mensaje recibido.'

        try:
            # Conversión de string a Document.
            aclMessage = parseString(ACLMessage)
            print aclMessage.toprettyxml()
            # Lectura del documento XML.
            UtilXML.readACLMessage(aclMessage)
        except Exception, message:
            print 'Error al procesar el mensaje recibido: ', sys.exc_info(
            )[0], message
Ejemplo n.º 3
0
    def __init__(self):
        """Crea un objeto del tipo AgentI"""

        # Se obtiene el nombre del fichero en formato XML para inicializar el agente.
        inputFile = self.getArguments()
        if inputFile == '':
            print 'Sinopsis: python Agent.py -i <file.xml>'
            sys.exit(0)

        # AgentIdentifier representa la identificación del agente: name y addresses.
        # AgentDescription representa la descripción del agente en el Directory Facilitator.
        try:
            self.AgentIdentifier, self.AgentDescription = UtilXML.initAgent(
                inputFile)
        except IOError:
            print 'El archivo ' + inputFile + ' no existe. Sinopsis: python Agent.py -i <file>'
            sys.exit(0)

        # AgentDescriptions representa la lista de objetos que describen a otros agentes del Directory Facilitator.
        self.AgentDescriptions = []
        # State representa el estado del agente en la plataforma de agentes.
        self.State = FIPA.EState.Initiated

        # ServiceRoot representa la lista de servicios básicos de la plataforma.
        self.ServiceRoot = []
        # Proxies a los servicios básicos de la plataforma de agentes.
        self.StartService, self.Ams, self.Df, self.Acc = None, None, None, None
Ejemplo n.º 4
0
    def __init__ (self):
        """Crea un objeto del tipo AgentI"""

        # Se obtiene el nombre del fichero en formato XML para inicializar el agente.
        inputFile = self.getArguments()
        if inputFile == '':
            print 'Sinopsis: python Agent.py -i <file.xml>'
            sys.exit(0)
            
        # AgentIdentifier representa la identificación del agente: name y addresses.
        # AgentDescription representa la descripción del agente en el Directory Facilitator.
        try:
            self.AgentIdentifier, self.AgentDescription = UtilXML.initAgent(inputFile)
        except IOError:
            print 'El archivo ' + inputFile + ' no existe. Sinopsis: python Agent.py -i <file>'
            sys.exit(0)
        
        # AgentDescriptions representa la lista de objetos que describen a otros agentes del Directory Facilitator.
        self.AgentDescriptions = []
        # State representa el estado del agente en la plataforma de agentes.
        self.State = FIPA.EState.Initiated

        # ServiceRoot representa la lista de servicios básicos de la plataforma.
        self.ServiceRoot = []
        # Proxies a los servicios básicos de la plataforma de agentes.
        self.StartService, self.Ams, self.Df, self.Acc = None, None, None, None
Ejemplo n.º 5
0
    def __init__ (self, file):
        """Crea un objeto del tipo InputService"""

        self.ServiceLocator = []
        
        doc = parse(file)
        root = doc.firstChild

        # Se obtiene el nombre del servicio.
        self.ServiceName = UtilXML.getAttribute(root, 'name')

        # Se obtiene la descripción del servicio y sus parámetros.
        for x in root.childNodes:
            if x.nodeType == x.ELEMENT_NODE and x.nodeName == 'serviceDirectoryEntry':
                self.ServiceType = UtilXML.getAttribute(x, 'serviceType')
                self.ServiceId = UtilXML.getAttribute(x, 'serviceId')
                # Se obtienen los Service Locators.
                for y in x.childNodes:
                    if y.nodeType == y.ELEMENT_NODE and y.nodeName == 'serviceLocator':
                        sld = FIPA.TServiceLocationDescription(UtilXML.getAttribute(y, 'serviceSignature'), UtilXML.getAttribute(y, 'serviceAddress'))
                        self.ServiceLocator.append(sld)
            elif x.nodeType == x.ELEMENT_NODE and x.nodeName == 'description':
                self.Description = x.firstChild.nodeValue