Versions Compared

Key

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

...

PlantUML Macro
@startuml
activate CLAMP_Runtime
CLAMP_Runtime -> CLAMP_Runtime: Build an ordered list of the Start Phases in the Control Loop Instance

alt "State Change UNITIALISED_to_PASSIVE or PASSIVE_to_RUNNING"
  loop over Start Phases list in increasing order 
    	CLAMP_Runtime -> Participant: Control Loop State Change\n[to all Participants in Control Loop with this Start Phase]
   	 CLAMP_Runtime -> CLAMP_Runtime: Asynchronously wait for answers from Participants
    CLAMP_Runtime <- Participant: Control Loop State Change Ack [from each Participant in this Start Phase of Control Loop]
    alt "State Change Ack reports success"
  	    CLAMP_Runtime -> CLAMP_Runtime: Log success
    else "State Change Ack reports an error"
         CLAMP_Runtime -> CLAMP_Runtime: Log error
      CLAMP_Runtime -> CLAMP_Runtime: Reset state of Control Loop
    	  CLAMP_Runtime -> CLAMP_Runtime: Abort State Change operation
    end 
  end end
else
  loop over Start Phases list in decreasing order
  	  CLAMP_Runtime -> Participant: Control Loop State Change\n[to all Participants in Control Loop with this Start Phase]
    	CLAMP_Runtime -> CLAMP_Runtime: Asynchronously wait for answers from Participants
    CLAMP_Runtime <- Participant: Control Loop State Change Ack [from each Participant in this Start Phase of Control Loop]
    alt "State Change Ack reports success"
      CLAMP_Runtime -> CLAMP_Runtime: Log success
    else "State Change Ack reports an error"
   then
 	  CLAMP_Runtime -> CLAMP_Runtime: Log error
      CLAMP_Runtime -> CLAMP_Runtime: Reset state of Control Loop
    	  CLAMP_Runtime -> CLAMP_Runtime: Abort State Change operation
    end  
  end
end

CLAMP_Runtime -> CLAMP_Runtime: Set overall state of Control Loop
@enduml


The handling of a ControlLoopStateChange message in each participant is as shown below.

...