@startuml plugin_connectivity
skinparam fixCircleLabelOverlapping true
skinparam SequenceLifeLineBorderColor #B0B0B0
skinparam SequenceDividerBorderColor Gray
skinparam SequenceGroupBorderColor Gray
skinparam sequenceMessageAlign Center
skinparam ArrowColor #404040
participant "ROS ActionClient" as client
participant ActorServer as server
participant ActorPlugin as plugin
activate server
activate plugin

==Goal==

[-> client: neuer ActionClient
activate client

client -> server: Goal-Anfrage
server -->> client: Antwort auf Anfrage

alt Anfrage akzeptiert?
server ->> plugin: neuen Status und Ziel setzen
plugin -->> server: Zustandswechsel bei\nnächstem Simulationsschritt
== Feedback==
group opt par [Abbruch der Aktion]
client->server: Cancel-Anfrage
server->plugin: Status auf Idle setzen
plugin -->> server: Zustandswechsel auf Idle
server-->>client: positive Abbruchantwort
end
loop Bis Aktion vollständig ausgeführt oder abgebrochen ist
plugin -->> server: Feedback
server -->> client: Feedback
end
==Result==
plugin -->> server: Zustandswechsel auf Idle
server -->> client: Result-Antwort
end
destroy client
@enduml