Пример #1
0
        public void GetTagVariables(out TagVarList toList)
        {
            TagVarList tmp = new TagVarList();

            tmp.CopyFrom(variables);
            toList = tmp;
        }
Пример #2
0
        /// <summary>
        /// Dicionário de lista reordenável contendo todas as variaveis do gráfico criadas ate o momento em formato
        /// <seealso cref="TagVar"/>
        /// </summary>
        /// <returns><seealso cref="TagVarList"/> contendo todas as variaveis do gráfico em formato <seealso cref="TagVar"/></returns>
        public TagVarList GetVariablesAsTag()
        {
            TagVarList tagVariables = new TagVarList();

            foreach (string intKey in intVars.Keys)
            {
                tagVariables.Add(intKey, GraphVarType.Integer);
            }
            foreach (string floatKey in floatVars.Keys)
            {
                tagVariables.Add(floatKey, GraphVarType.Float);
            }
            foreach (string doubleKey in doubleVars.Keys)
            {
                tagVariables.Add(doubleKey, GraphVarType.Double);
            }
            foreach (string boolKey in boolVars.Keys)
            {
                tagVariables.Add(boolKey, GraphVarType.Boolean);
            }

            return(tagVariables);
        }
Пример #3
0
        /// <summary>
        /// Sincroniza as variaveis e trajetos do componente com as variaveis do gráfico de estados
        /// </summary>
        public void SyncVariablesAndTargets()
        {
            SyncTargets();

            if (graph == null)
            {
                return;
            }

            TagVarList graphVariables = null;

            TagVarList myTagVariables = GetVariablesAsTag();

            _graph.GetTagVariables(out graphVariables);

            //Remove variaveis que estejam somente no componente mas que nao estejam no grafico
            foreach (string variable in myTagVariables.Keys)
            {
                if (graphVariables.ContainsKey(variable) == false)
                {
                    RemoveVariable(variable, myTagVariables[variable]);
                }
            }

            myTagVariables.Clear();
            myTagVariables = null;

            //Adiciona variaveis marcadas no grafico que não existam no FSM
            foreach (string variable in graphVariables.Keys)
            {
                GraphVarType varType = graphVariables[variable];

                switch (varType)
                {
                case GraphVarType.Boolean:
                    if (boolVars.ContainsKey(variable) == false)
                    {
                        boolVars.Add(variable, new BoolVar());
                    }
                    break;

                case GraphVarType.Double:
                    if (doubleVars.ContainsKey(variable) == false)
                    {
                        doubleVars.Add(variable, new DoubleVar());
                    }
                    break;

                case GraphVarType.Float:
                    if (floatVars.ContainsKey(variable) == false)
                    {
                        floatVars.Add(variable, new FloatVar());
                    }
                    break;

                case GraphVarType.Integer:
                    if (intVars.ContainsKey(variable) == false)
                    {
                        intVars.Add(variable, new IntVar());
                    }
                    break;
                }
            }

            graphVariables.Clear();
            graphVariables = null;
        }