Esempio n. 1
0
 def __init__(self, id, name, inputState, outputState, inputSymbol):
     AbstractTransition.__init__(self, "SemiStochastic", id, name, inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.SemiStochasticTransition.py')
     self.inputSymbol = inputSymbol
     # Output Symbols : [[Symbol, Probability, Time], [Symbol, Probability, Time]]
     self.outputSymbols = []
Esempio n. 2
0
 def __init__(self, id, name, inputState, outputState, disconnectionTime):
     AbstractTransition.__init__(self, CloseChannelTransition.TYPE, id,
                                 name, inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger(
         'netzob.Common.MMSTD.Transitions.impl.CloseChannelTransition.py')
     self.disconnectionTime = disconnectionTime
Esempio n. 3
0
 def __init__(self, id, name, inputState, outputState, connectionTime,
              maxNumberOfAttempt):
     AbstractTransition.__init__(self, OpenChannelTransition.TYPE, id, name,
                                 inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger(
         'netzob.Common.MMSTD.Transitions.impl.OpenChannelTransition.py')
     self.connectionTime = connectionTime
     self.maxNumberOfAttempt = maxNumberOfAttempt
Esempio n. 4
0
 def __init__(self, id, name, inputState, outputState, timeBeforeActing,
              outputSymbol):
     AbstractTransition.__init__(self, "SimpleTransition", id, name,
                                 inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger(
         'netzob.Common.MMSTD.Transitions.impl.SimpleTransition.py')
     self.outputSymbol = outputSymbol
     self.timeBeforeActing = timeBeforeActing
 def __init__(self, id, name, inputState, outputState, inputSymbol):
     AbstractTransition.__init__(self, SemiStochasticTransition.TYPE, id,
                                 name, inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger(
         'netzob.Common.MMSTD.Transitions.impl.SemiStochasticTransition.py')
     self.inputSymbol = inputSymbol
     # Output Symbols : [[Symbol, Probability, Time], [Symbol, Probability, Time]]
     self.outputSymbols = []
Esempio n. 6
0
    def loadFromXML(xmlRoot, vocabulary, namespace, version):
        if version == "0.1":
            initialStateID = xmlRoot.get("initialState")
            states = []
            transitions = []

            # Retrieve all the states
            for xmlState in xmlRoot.findall("{" + namespace + "}states/{" +
                                            namespace + "}state"):
                state = AbstractState.loadFromXML(xmlState, namespace, version)
                if state is not None:
                    states.append(state)

            # Retrieve all the transitions
            if xmlRoot.find("{" + namespace + "}transitions") is not None:
                xmlTransitions = xmlRoot.find("{" + namespace + "}transitions")
                for xmlTransition in xmlTransitions.findall("{" + namespace +
                                                            "}transition"):
                    transition = AbstractTransition.loadFromXML(
                        states, vocabulary, xmlTransition, namespace, version)
                    if transition is not None:
                        transitions.append(transition)

            # First we retrieve the initial state to create the grammar
            initialState = None
            for state in states:
                if state.getID() == initialStateID:
                    initialState = state

            if initialState is None:
                logging.warn(
                    "Impossible to retrieve the initial state of the saved grammar"
                )
                return None

            # Creation of the automata
            automata = MMSTD(initialState, vocabulary)

            # Register all the states
            for state in states:
                automata.addState(state)

            for transition in transitions:
                automata.addTransition(transition)

            return automata
Esempio n. 7
0
    def loadFromXML(xmlRoot, vocabulary, namespace, version):
        if version == "0.1":
            initialStateID = xmlRoot.get("initialState")
            states = []
            transitions = []

            # Retrieve all the states
            for xmlState in xmlRoot.findall("{" + namespace + "}states/{" + namespace + "}state"):
                state = AbstractState.loadFromXML(xmlState, namespace, version)
                if state is not None:
                    states.append(state)

            # Retrieve all the transitions
            if xmlRoot.find("{" + namespace + "}transitions") is not None:
                xmlTransitions = xmlRoot.find("{" + namespace + "}transitions")
                for xmlTransition in xmlTransitions.findall("{" + namespace + "}transition"):
                    transition = AbstractTransition.loadFromXML(states, vocabulary, xmlTransition, namespace, version)
                    if transition is not None:
                        transitions.append(transition)

            # First we retrieve the initial state to create the grammar
            initialState = None
            for state in states:
                if state.getID() == initialStateID:
                    initialState = state

            if initialState is None:
                logging.warn("Impossible to retrieve the initial state of the saved grammar")
                return None

            # Creation of the automata
            automata = MMSTD(initialState, vocabulary)

            # Register all the states
            for state in states:
                automata.addState(state)

            for transition in transitions:
                automata.addTransition(transition)

            return automata
Esempio n. 8
0
 def __init__(self, id, name, inputState, outputState, timeBeforeActing, outputSymbol):
     AbstractTransition.__init__(self, "SimpleTransition", id, name, inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.SimpleTransition.py')
     self.outputSymbol = outputSymbol
     self.timeBeforeActing = timeBeforeActing
Esempio n. 9
0
 def __init__(self, id, name, inputState, outputState, connectionTime, maxNumberOfAttempt):
     AbstractTransition.__init__(self, OpenChannelTransition.TYPE, id, name, inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.OpenChannelTransition.py')
     self.connectionTime = connectionTime
     self.maxNumberOfAttempt = maxNumberOfAttempt
 def __init__(self, id, name, inputState, outputState, disconnectionTime):
     AbstractTransition.__init__(self, CloseChannelTransition.TYPE, id, name, inputState, outputState)
     # create logger with the given configuration
     self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.CloseChannelTransition.py')
     self.disconnectionTime = disconnectionTime