/// <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(); } }
private void OnPopupElementSelected(int id) { _selectedQualifier = (ActionQualifier)id; SetQualifierText(id); if (_isRelevant) { _controller.UserChangedData(this, _selectedQualifier, _actionDescriptionNode.Text); } }
/// <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); }
/// <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); }
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; } }
/// <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); }