Doxygen Befehlsübersicht erzeugen

OP #6485868
Lesenswert?
• ▲
▼
Liebe Doxygennutzer.

Ich habe ein Projekt übernommen, bei dem schon seh viel Code existiert, 
aber der kaum bis nicht dokumentiert ist. Überraschung!! :)
Jetzt möchte ich da mit Doxygen Ordnung reinbringen, was auch gut 
funktioniert. Nur stellt sich mir gerade eine Aufgabe, für die ich noch 
keine befriedigende Lösung habe.

Der Code kann viele Benutzerbefehle abarbeiten. Dazu wird der Befehl 
über eine Schnittstelle eingelesen. Je nachdem, was in dem Befehl steht, 
erfolgen verschiedene Aktionen. Soweit normal.
Nur wird jetzt nicht für jeden Befehl eine eigene Funktion aufgerufen, 
sondern alles innerhalb EINER Funktion über switch case abgearbeitet. 
Damit habe ich nicht mehr viele Funktionen, die ich einzeln 
dokumentieren kann. Ich frage mich jetzt, wie ich am besten eine 
Befehlsüberischt anlegen kann. Was könnt ihr mir da für Doxygenbefehle 
empfehlen?
Ich hab mir jetzt mal das Grouping mit \defgroup angeschaut und \page 
mit \section. Aber so richtig glücklich bin ich damit noch nicht.

Danke!
Sebastian
Gast #6486291
Lesenswert?
• ▲
▼
ehrlich gesagt hab ich das in doxygen auch schonmal gesucht (erfolglos)
ich hab mir dann selber geholfen indem ich
den kompletten Quellcode Ordner nach dem switch keyword durchsucht hab
(es waren zum Glück nur zwei Dateien und drei Funktionen die mir da 
relevant waren letzenendes.. und sieben Dateien die ich mir dafür 
ansehen musste, ging also)

die 'paar' switchcases hab ich dann manuell dokumentiert
(--!) und das war's dann schon


wenn es leichter geht, bin ich interessiert zu erfahren wie ;)
(wer weiss wann ich das wieder brauche)

'sid
OP #6487231
Lesenswert?
• ▲
▼
Lösung 1:
1
/// \page Befehlliste
2
/// \secreflist
3
/// \refitem cmd0 Befehl 0
4
/// \refitem cmd1 Befehl 1
5
/// \refitem cmd2 Befehl 2
6
/// \endsecreflist
7

8
switch (command[0])
9

10
/// \page Befehlliste
11
/// \section cmd0 Befehl 0
12
/// Der 0 Befehl macht was tolles.
13
case 0: ........

Ich leg eine eigene Seite für die Befehlsübersicht an. Darin gibt es 
dann eine Liste, die auch verlinkt ist.

Nachteil: Die Liste muss manuell angelegt und sortiert werden.
Gast #6487244
Lesenswert?
• ▲
▼
Ich hab sowas händisch in die funktionsbeschreibung reingeschrieben. Da 
ging es um Message-types die das Modul (hatte eine Einstiegs-funktion 
und viele Helper-functions) verarbeitet oder verschickt.
Ging anders nicht, das Ergebnis aber durchaus zufriedenstellend.

Ja, manchmal kann/könnte man enums einsetzen und das lohnt sich auch 
durchaus dann auch auf enums umzustellen.
OP #6487293
Lesenswert?
• ▲
▼
Lösung 2:
1
/// \defgroup Befehle Befehlsübersicht
2

3
switch (command[0])
4

5
/// \ingroup Befehle
6
/// \defgroup cmd0 Befehl 0
7
/// Der 0 Befehl macht was tolles.
8
case 0: ........
9

10
/// \ingroup Befehle
11
/// \defgroup cmd1 Befehl 1
12
/// Der 1 Befehl macht was anderes.
13
case 1: ........

Damit geht´s auch, aber es wird keine Liste am Anfang angelegt. Und die 
erzeugte Seite tauscht nur unter "Module" auf. Also evtl. nicht so 
leicht zu finden.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.