/// <summary>
 /// Called if the user changed an action entry.
 /// This will update the model.
 /// </summary>
 public void UpdateActionTo(int index, ActionQualifier qualifier, string action)
 {
     if (Data.ActionEntries[index].Qualifier != qualifier || Data.ActionEntries[index].Action != action)
     {
         Data.ActionEntries[index].Qualifier = qualifier;
         Data.ActionEntries[index].Action    = action;
         UpdatePatchNodes();
     }
 }
Esempio n. 2
0
 private void OnPopupElementSelected(int id)
 {
     _selectedQualifier = (ActionQualifier)id;
     SetQualifierText(id);
     if (_isRelevant)
     {
         _controller.UserChangedData(this, _selectedQualifier, _actionDescriptionNode.Text);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Executes the ations with the marked qualifier in the given program context and delta time
        /// </summary>
        public void ExecuteActions(SfcProgram context, ActionQualifier qualifier, int deltaTimeMs)
        {
            List <AssignmentExpression> actions = _actions[qualifier];

            foreach (AssignmentExpression action in actions)
            {
                action.Execute(context.Plc);
            }
            UpdateStepCounter(qualifier, deltaTimeMs);
        }
Esempio n. 4
0
        /// <summary>
        /// Called when the model has changed or is initialized.
        /// </summary>
        public void UpdateAction(ActionEntity action, IProcessingData context)
        {
            _selectedQualifier = action.Qualifier;
            SetQualifierText((int)_selectedQualifier);
            _actionDescriptionNode.Text = action.Action;
            _isRelevant = !string.IsNullOrEmpty(_actionDescriptionNode.Text);
            AssignmentExpression expression = ActionMaster.InterpretTransitionText(action.Action, context);

            _actionDescriptionNode.HintTooltip = expression == null ? "???" : expression.ToString();
            bool  validExpression = expression != null && expression.IsValid();
            Color background      = validExpression ? new Color(1, 0, 0, 0f) : new Color(1, 0, 0, 0.2f);

            _actionDescriptionNode.AddColorOverride("background_color", background);
        }
Esempio n. 5
0
        private void UpdateStepCounter(ActionQualifier qualifier, int deltaTimeMs)
        {
            switch (qualifier)
            {
            case ActionQualifier.PPlus:
                break;

            case ActionQualifier.N:
                if (StepCounter != int.MaxValue)
                {
                    StepCounter += deltaTimeMs;
                }
                break;

            case ActionQualifier.PMinus:
                StepCounter = 0;
                break;
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Called by the action editor to update an entry.
        /// </summary>
        public void UserChangedData(ActionEditor editor, ActionQualifier qualifier, string action)
        {
            int index = _actionEditors.IndexOf(editor);

            _patchController.UpdateActionTo(index, qualifier, action);
        }