Skip to content

Commit

Permalink
#53 Use enum instead of boolean for sequencer constructor.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jozef Chmelar ml committed Apr 22, 2021
1 parent 07f9670 commit d49d5b7
Show file tree
Hide file tree
Showing 16 changed files with 225 additions and 29 deletions.
Expand Up @@ -36,7 +36,7 @@ END_VAR
VAR
_JohnyFontaneCaseDone : BOOL := FALSE;
_MakeAnOfferThatCantBeRefused : MakeAnOfferThatCantBeRefused(THIS^,FALSE);
_MakeAnOfferThatCantBeRefused : MakeAnOfferThatCantBeRefused(THIS^, eRestoreMode.None);
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
Expand Down Expand Up @@ -157,5 +157,16 @@ JohnyFontaneCase(MAIN_PRG._Jack_Woltz);
]]></ST>
</Implementation>
</Method>
<LineIds Name="VitoCorleone_Context">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="VitoCorleone_Context.JohnyFontaneCase">
<LineId Id="3" Count="3" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="VitoCorleone_Context.Main">
<LineId Id="3" Count="86" />
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
Expand Up @@ -6,9 +6,9 @@
FUNCTION_BLOCK ST_01_Context EXTENDS TcoCore.TcoContext
VAR
// Ground position sequence
_groundSequcence : ST_01_Ground(THIS^, FALSE);
_groundSequcence : ST_01_Ground(THIS^, eRestoreMode.None);
// Automat mode sequence
_automatSequence : ST_01_Automat(THIS^, FALSE);
_automatSequence : ST_01_Automat(THIS^, eRestoreMode.None);
// Task to execute _groundSequence
_groundTask : TcoCore.TcoTask(THIS^);
// Task to execute _automatSequence
Expand Down Expand Up @@ -40,5 +40,12 @@ END_IF;
]]></ST>
</Implementation>
</Method>
<LineIds Name="ST_01_Context">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="ST_01_Context.Main">
<LineId Id="3" Count="7" />
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
Expand Up @@ -262,10 +262,10 @@ VAR_INPUT
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
Parent : ITcoObject;
DoEnableAutoRestore : BOOL;
AutoRestoreMode : eRestoreMode;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[SUPER^.FB_init(bInitRetains, bInCopyCode, Parent, DoEnableAutoRestore);
<ST><![CDATA[SUPER^.FB_init(bInitRetains, bInCopyCode, Parent, AutoRestoreMode);
]]></ST>
</Implementation>
</Method>
Expand Down Expand Up @@ -1108,5 +1108,83 @@ _numberOfStepsInSequence := _stepCounter;
]]></ST>
</Implementation>
</Method>
<LineIds Name="TcoSequencer">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.CheckStepId">
<LineId Id="3" Count="11" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.Close">
<LineId Id="3" Count="3" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.CompleteSequence">
<LineId Id="3" Count="9" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.CompleteStep">
<LineId Id="3" Count="3" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.FB_init">
<LineId Id="3" Count="0" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.IsStepIdUnique">
<LineId Id="3" Count="95" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.Main">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.ModeController.Get">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.OnlineChange">
<LineId Id="3" Count="4" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.OnSequenceCompleted">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.OnSequencerError">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.OnStepCompleted">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.Open">
<LineId Id="3" Count="26" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.RequestStep">
<LineId Id="3" Count="25" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.Restore">
<LineId Id="3" Count="37" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.Run">
<LineId Id="3" Count="6" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.Step">
<LineId Id="3" Count="22" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.StepChanged">
<LineId Id="3" Count="6" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.StepCompleteWhen">
<LineId Id="3" Count="3" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencer.StepInternal">
<LineId Id="3" Count="223" />
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
Expand Up @@ -274,5 +274,46 @@ METHOD PUBLIC FINAL StepIn
<ST><![CDATA[_stepIn.Invoke();]]></ST>
</Implementation>
</Method>
<LineIds Name="TcoSequencerModeController">
<LineId Id="3" Count="19" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.ChangeMode">
<LineId Id="3" Count="24" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.DisableModeChanging.Get">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.DisableModeChanging.Set">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.DisableStepSkipping.Get">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.DisableStepSkipping.Set">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.Mode.Get">
<LineId Id="3" Count="0" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.Mode.Set">
<LineId Id="3" Count="1" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.OnModeChange">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.StepBackward">
<LineId Id="3" Count="0" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.StepForward">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerModeController.StepIn">
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
Expand Up @@ -301,12 +301,12 @@ VAR_INPUT
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
Parent : ITcoObject;
RestoreMode : eRestoreMode;
AutoRestoreMode : eRestoreMode;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[_Identity := ADR(THIS^);
_Parent := Parent;
_enableAutoRestore := RestoreMode = eRestoreMode.AutoRestoreMembers;
_enableAutoRestore := AutoRestoreMode = eRestoreMode.AutoRestoreMembers;
CheckIfAutoRestoreEnabledByParent();
]]></ST>
Expand Down
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.6">
<DUT Name="eRestoreMode" Id="{0ab07dcb-c94c-072f-1eb9-d76a9a1f251f}">
<DUT Name="eRestoreMode" Id="{8301561c-4174-07b5-10c0-66adbcb58c64}">
<Declaration><![CDATA[{attribute 'qualified_only'}
{attribute 'strict'}
TYPE eRestoreMode :
Expand Down
6 changes: 3 additions & 3 deletions src/TcoCore/src/XaeTcoCore/TcoCore/TcoCore.plcproj
Expand Up @@ -99,9 +99,6 @@
<Compile Include="POUs\Prototypes\TcoSelector\ITcoSelector.TcIO">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\Prototypes\TcoSequencer\eRestoreMode.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\Prototypes\TcoSequencer\eSequencerMode.TcDUT">
<SubType>Code</SubType>
</Compile>
Expand All @@ -126,6 +123,9 @@
<Compile Include="POUs\Prototypes\TcoSequencer\StepDetails.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\Prototypes\TcoState\eRestoreMode.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\Prototypes\TcoState\ITcoState.TcIO">
<SubType>Code</SubType>
</Compile>
Expand Down
Expand Up @@ -3,7 +3,7 @@
<POU Name="fbManipulatorContext" Id="{ea90540b-6619-0c29-21fd-12c4e49ac96f}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK fbManipulatorContext EXTENDS TcoCore.TcoContext
VAR
_automat : fbManipulatorAutomat(THIS^, true);
_automat : fbManipulatorAutomat(THIS^, eRestoreMode.AutoRestoreMembers);
END_VAR
]]></Declaration>
<Implementation>
Expand All @@ -15,5 +15,11 @@ END_VAR
<ST><![CDATA[_automat();]]></ST>
</Implementation>
</Method>
<LineIds Name="fbManipulatorContext">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="fbManipulatorContext.Main">
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
Expand Up @@ -4,7 +4,7 @@
<Declaration><![CDATA[FUNCTION_BLOCK Station001 EXTENDS TcoCore.TcoContext
VAR
_components : Station001_Components(THIS^);
_sequence : Station001_Sequencer(THIS^, FALSE, _components);
_sequence : Station001_Sequencer(THIS^, eRestoreMode.None, _components);
END_VAR
Expand All @@ -30,5 +30,12 @@ METHOD PROTECTED Main]]></Declaration>
]]></ST>
</Implementation>
</Method>
<LineIds Name="Station001">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="Station001.Main">
<LineId Id="3" Count="1" />
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
Expand Up @@ -27,7 +27,7 @@ VAR_INPUT
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
Parent : ITcoObject;
DoEnableAutoRestore : BOOL;
AutoRestoreMode : eRestoreMode;
refComponents : REFERENCE TO Station001_Components;
END_VAR]]></Declaration>
<Implementation>
Expand Down Expand Up @@ -159,5 +159,24 @@ END_VAR
components._simTimer(IN := FALSE);]]></ST>
</Implementation>
</Method>
<LineIds Name="Station001_Sequencer">
<LineId Id="3" Count="0" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="Station001_Sequencer.FB_init">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="Station001_Sequencer.Init">
<LineId Id="3" Count="7" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="Station001_Sequencer.Main">
<LineId Id="3" Count="80" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="Station001_Sequencer.OnStateChange">
<LineId Id="3" Count="0" />
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
Expand Up @@ -10,8 +10,8 @@ VAR
_myParentIdentity : ULINT;
_tcoTaskTest_A : TcoTaskTest(THIS^);
_tcoTaskTest_B : TcoTaskTest(THIS^);
_tcoStateTest_A : TcoStateTest(THIS^,TRUE);
_tcoStateTest_B : TcoStateTest(THIS^,FALSE);
_tcoStateTest_A : TcoStateTest(THIS^, eRestoreMode.AutoRestoreMembers);
_tcoStateTest_B : TcoStateTest(THIS^, eRestoreMode.None);
// Object equality
_tcoObjectEqualsTestObj1 : TcoObjectEqualsTest(THIS^);
_tcoObjectEqualsTestObj2 : TcoObjectEqualsTest(THIS^);
Expand Down
Expand Up @@ -4,7 +4,7 @@
<Declaration><![CDATA[FUNCTION_BLOCK TcoSequencerAutoRestorableTest EXTENDS TcoCore._internals_TcoContext
VAR
_callMyPlcInstance : BOOL := FALSE;
_sequencer : _TcoSequencer(THIS^, TRUE);
_sequencer : _TcoSequencer(THIS^, eRestoreMode.AutoRestoreMembers);
_runPLCinstanceOnce : BOOL := FALSE;
_runPLCinstanceCyclicaly : BOOL := FALSE;
_stepID : INT := 32764;
Expand Down Expand Up @@ -524,8 +524,15 @@ END_VAR
<LineIds Name="TcoSequencerAutoRestorableTest.SetCurrentStep">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerAutoRestorableTest.SetCurrentStepToErrorState">
<LineId Id="3" Count="1" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerAutoRestorableTest.SetCyclicMode">
<LineId Id="3" Count="3" />
<LineId Id="3" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerAutoRestorableTest.SetInvalidMode">
<LineId Id="3" Count="1" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerAutoRestorableTest.SetNumberOfSteps">
Expand All @@ -543,8 +550,7 @@ END_VAR
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="TcoSequencerAutoRestorableTest.SetStepMode">
<LineId Id="3" Count="3" />
<LineId Id="2" Count="0" />
<LineId Id="3" Count="2" />
</LineIds>
<LineIds Name="TcoSequencerAutoRestorableTest.Step">
<LineId Id="2" Count="0" />
Expand Down

0 comments on commit d49d5b7

Please sign in to comment.