예제 #1
0
        //metodo que procura o estado inicial da VFSM  e converte as informação para estado da FSM.
        private void addInitialStateVFSMToFSM(VFSM vfsm, FiniteStateMachine fsm)
        {
            State          stateInitial = new State();
            TransitionVFSM tVFSM        = GetStateInitialVFSM(vfsm.StateInitial, vfsm);
            String         name         = vfsm.StateInitial.Name;

            foreach (Variable v in tVFSM.ListGuardian)
            {
                name += v.Condition;
            }
            stateInitial.Name = name;
            stateInitial.Id   = vfsm.StateInitial.Id;
            fsm.InitialState  = stateInitial;
        }
예제 #2
0
        //meetodo que converte uma transição de uma VFSm para uma transição de uma FSM.
        private Transition ConvertToTransitionFSM(TransitionVFSM tVFSM, VFSM vfsm)
        {
            Transition t = new Transition();

            t.Input  = tVFSM.Input;
            t.Output = tVFSM.Output;

            State sSource = new State();

            sSource.Name = Concatenate(vfsm.ListOfGuardian, tVFSM.Source);
            //sSource.Id = t.SourceState.Id;

            UpdateVariableCurrentVFSM(vfsm, tVFSM.ListNewGuardian);
            State Starget = new State();

            Starget.Name = Concatenate(tVFSM.ListNewGuardian, tVFSM.Target);
            //Starget.Id = t.TargetState.Id;
            t.SourceState = sSource;
            t.TargetState = Starget;


            return(t);
        }