[英]How to create a state diagram in doxygen?
使用 doxygen 我想以某種方式生成狀態圖。 doxygen 中是否有任何技巧可以幫助我們實現這一目標?
目前我只是使用預先格式化的文本,然后添加我自己的“自由文本圖”,這很難維護並且繪制出來很耗時。
我使用 doxygen 生成的所有其他圖表(即繼承、關系等),但由於狀態機不是“標准”c/c++ 構造(即 eech 設計器可以以不同的方式實現它們)我猜沒有自動告訴 doxygen 為您執行此操作的方法。 但是是否有某種圖表元素的創建,您可以在每個狀態旁邊進行評論? 也許像這個粗略的例子:
\section state Diagram
... description
\state state1...
\value1 returns state2
\value2 returns state1
int myState1Handler(){...}
\state state2...
\value1 returns state1
\value2 returns state2
int myState2Handler(){...}
編輯1:
或者,是否可以使用下面評論中建議的 graphviz 標記語言,並以某種方式將它們與 doxygen 輸出集成?
您可以使用 dot 腳本語言並將腳本放在 @dot 和 @enddot 之間,在 doxygen 中添加您自己的自定義圖表
我自己在我的 cpp 代碼中測試了這個例子,它與 doxygen 配合得很好:
/// @dot "caption"
/// digraph {
/// ClassDotA [ URL="@ref ClassDotA" ];
/// ClassDotB [ URL="@ref ClassDotB" ];
/// ClassDotA -> ClassDotB -> ClassDotC;
/// ClassDotB -> ClassDotD;
/// }
/// @enddot
void main()
{
//write code here
}
我想將植物添加到這個問題中。 這是一個基於文本的 uml 圖生成器。 它的偉大之處在於您可以生成運行時輸出(狀態圖、序列圖等)。
例如,每次進行狀態轉換時,都會將 Plantuml 格式的行打印到文件中。 當程序終止時(或在任何時候真正終止),您在輸出文件上運行 plantuml(可能需要添加開始\/結束標簽 - 微不足道),您會得到一個 uml 圖!...我已經在 3 個不同的項目中使用了它- 主要用於序列圖。
好的,所以這不是真正的“離線”設計文檔,在某些方面它更好,因為您可以獲得自文檔代碼,因為生成的圖表正是代碼正在執行的操作。 下面是一個非常簡單的 Plantuml 序列圖示例:
@startuml
component1 -> component2 : helloMsg
component2 -> component1 : replyMsg
@enduml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.