Esempio n. 1
0
 public DescriptorRange()
 {
     StateDescriptors.Add(new Connector {
         Id = 0, Name = "*", Order = 0
     });
     CalculatorE.RegisterTokenizer(FormulaResultTokenizer);
     CalculatorE.RegisterPreprocessor(FormulaResultProcessor);
     _inputValueCalculator.RegisterTokenizer(_calculatorVariableAccessAddonCachedValues.VariableTokenizer);
     _inputValueCalculator.RegisterPreprocessor(_calculatorVariableAccessAddonCachedValues.VariablePreprocessor);
     // Для Range повторитель всегда включен
     EnableRepeater(true);
     //_inputValueCalculator.RegisterTokenizer(CalculatorVariableAccessAddonE.VariableTokenizer);
     //_inputValueCalculator.RegisterPreprocessor(CalculatorVariableAccessAddonE.VariablePreprocessor);
 }
Esempio n. 2
0
 /// <summary>
 /// Установить значение переменных в соответствие с указанной для этого формулой
 /// </summary>
 /// <param name="stateId"></param>
 public void SetState(int stateId)
 {
     if (StateDescriptors.Count(sd => sd.Id == stateId) == 0)
     {
         return;
     }
     if (!IsPowerOn() || stateId == -1)
     {
         return;
     }
     foreach (var varId in UsedVariables)
     {
         var formula = GlobalFormulaKeeper.Instance.GetVariableFormulaText(GetId(), varId, stateId);
         if (string.IsNullOrEmpty(formula))
         {
             return;
         }
         var formulaResult = CalculatorE.ComputeFormula(formula);
         if (formulaResult.GetFormulaComputeResultType() == TypeOfComputeFormulaResult.DoubleResult)
         {
             Profile.VariableStorage.WriteValue(varId, formulaResult.CalculatedDoubleValue);
         }
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Получить все состояния
 /// </summary>
 /// <returns></returns>
 public override Connector[] GetConnectors(object controlProcessor, bool withDefaultState = false)
 {
     return(withDefaultState ? StateDescriptors.ToArray() : StateDescriptors.Where(x => x.Id != GetDefaultStateId()).ToArray());
 }