Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
@startuml

(*) --> "Process Update Message"

if "All Control Loop Elements with my Participant ID processed?" then
  --> [yes] "Send Update Ack Message"
  --> (*)
else
  --> [no] "Process next Control Loop Element with my ID"
  if "New Control Loop Element?" then
	--> [yes] "Create Control Loop Element"
	--> "Set Control Loop Element to state UNINITIALISED"
	--> "Order Initiation of Control Loop Element"
	--> "Pass Parameters to Control Loop Element"
	--> "Wait for Initiation to complete"
	if "Control Loop Element Initiation?" then
      --> [success] "Record Success for Update Ack message"
      --> "Process Update Message"
    else
      --> [fail] "Delete Control Loop Element"
      --> "Record Error for Update Ack message"
      --> "Process Update Message"
    endif
  else
  	--> [no] "Check Control Loop Element State"
  endif
  if "RUNNING and Control Loop Version change != patch?" then
	--> [true] "Record Error for Update Ack message"
    --> "Process Update Message"
  else
  	[false] if "PASSIVE and Control Loop Version change == major?" then
      --> [true] "Record Error for Update Ack message"
      --> "Process Update Message"
  else
	--> [false] "Pass Changed Parameters to Control Loop Element"
	--> "Wait for reconfiguration to complete"
    if "Control Loop Element Reconfiguration?" then
      --> [success] "Record Success for Update Ack message"
      --> "Process Update Message"
    else
      --> [fail] "Roll back reconfiguration"
      --> "Record Error for Update Ack message"
      --> "Process Update Message"
    endif
  endif
endif

@enduml

...

PlantUML Macro
@startuml

(*) --> "Process State Change Message"

if "All Control Loop Elements with my Participant ID processed?" then
  --> [yes] "Send State Change Ack Message"
  --> (*)
else
  --> [no] "Process next Control Loop Element with my ID"
  if "Current State is RUNNING?" then
    [true] if "Change to PASSIVE?" then
      --> [true] "Change Control Loop Element to state PASSIVE"
      --> "Wait for RUNNING->PASSIVE State Change to complete"
      if "State Change?" then
        --> [success] "Record Success for Update Ack message"
        --> "Process State Change Message"
      else
        --> [fail] "Record Error for Update Ack message"
        --> "Process State Change Message"
      endif
    else
      --> [false] "Record Error for Update Ack message"
      --> "Process State Change Message"
    endif
  else
    [false] if "Current State is PASSIVE?" then
      [true] if "Change to RUNNING?" then
        --> [true] "Change Control Loop Element to state RUNNING"
        --> "Wait for PASSIVE->RUNNING State Change to complete"
        if "State Change?" then
          --> [success] "Record Success for Update Ack message"
          --> "Process State Change Message"
        else
          --> [fail] "Record Error for Update Ack message"
          --> "Process State Change Message"
        endif
      else
        --> [false] "Record Error for Update Ack message"
        --> "Process State Change Message"
      endif
    else
      --> [false] "Record Error for Update Ack message"
      --> "Process State Change Message"
    endif
  endif
endif

@enduml

...