From c60b00fc5dc333af16029d1aca87349f0730d53e Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Thu, 2 Dec 2021 11:17:52 +0100 Subject: [PATCH] Separate unload filament automaton desc into unload_filament.dox and change Doxyfile accordingly --- Doxyfile | 2 +- src/logic/unload_filament.dot | 33 +++++++++++++++++++++++++++++++++ src/logic/unload_filament.h | 3 +++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/logic/unload_filament.dot diff --git a/Doxyfile b/Doxyfile index f221f58..093d87b 100644 --- a/Doxyfile +++ b/Doxyfile @@ -2483,7 +2483,7 @@ DOT_PATH = # command). # This tag requires that the tag HAVE_DOT is set to YES. -DOTFILE_DIRS = +DOTFILE_DIRS = src/logic # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the \mscfile diff --git a/src/logic/unload_filament.dot b/src/logic/unload_filament.dot new file mode 100644 index 0000000..1bbe425 --- /dev/null +++ b/src/logic/unload_filament.dot @@ -0,0 +1,33 @@ +digraph architecture { + graph [fontname=Helvetica, fontsize=10]; + node [shape=record, fontname=Helvetica, fontsize=10]; + edge [fontname=Helvetica, fontsize=10]; + compound=true; + subgraph cluster_unload_filament { label="unload_filament" + reset; + UnloadFilament [ URL="\ref logic::UnloadFilament"]; + finda_FilLoadState [ shape=diamond, label="FINDA && FilLoadState"]; + return [shape="oval"]; + UnloadingToFinda [ URL="\ref logic::UnloadingToFinda", shape=diamond]; + ErrorFSnotOFF [shape=oval]; + ErrorFINDAnotOFF [shape=oval]; + RetractingFromFinda [shape=diamond]; + DisengagingIdler [shape=diamond]; + ERRDisengagingIdler [shape=hexagon]; + Finished [shape=oval]; + {rank = same; finda_FilLoadState; return;} + {rank = same; ErrorFSnotOFF; UnloadingToFinda; ErrorFINDAnotOFF;} + {rank = same; DisengagingIdler; ERRDisengagingIdler;} + } + reset -> finda_FilLoadState + finda_FilLoadState -> return [label="NO && < 2"]; + finda_FilLoadState -> UnloadFilament [label="YES && >=2"]; + UnloadFilament -> UnloadingToFinda; + UnloadingToFinda -> ErrorFSnotOFF [label="err"]; + UnloadingToFinda -> ErrorFINDAnotOFF [label="err"]; + UnloadingToFinda -> RetractingFromFinda; + RetractingFromFinda -> ErrorFINDAnotOFF [label="err"]; + RetractingFromFinda -> DisengagingIdler; + DisengagingIdler -> ERRDisengagingIdler [label="err"]; + DisengagingIdler -> Finished; +} diff --git a/src/logic/unload_filament.h b/src/logic/unload_filament.h index c3575be..28d75ac 100644 --- a/src/logic/unload_filament.h +++ b/src/logic/unload_filament.h @@ -8,6 +8,9 @@ namespace logic { /// @brief A high-level command state machine - handles the complex logic of unloading filament +/// +/// State machine overview: +/// @dotfile unload_filament.dot class UnloadFilament : public CommandBase { public: inline UnloadFilament()