From 836c4f2a0e453c2a11cab5ebb2574cc3e6d43647 Mon Sep 17 00:00:00 2001 From: Francois Bleibel <fbleibel@gmail.com> Date: Tue, 5 Oct 2010 18:41:23 +0900 Subject: [PATCH] Added documentation for most classes in dynamicgraph. Updated css. --- doc/additionalDoc/package.h | 24 +- doc/additionalDoc/shellfunctions_doc.h | 44 ++ doc/additionalDoc/tracer-real-timedoc.h | 29 + doc/additionalDoc/tracerdoc.h | 13 +- doc/header.html | 1 + doc/package.css | 763 ++++++++++++++++++------ doc/tabs.css | 59 ++ 7 files changed, 754 insertions(+), 179 deletions(-) create mode 100644 doc/additionalDoc/shellfunctions_doc.h create mode 100644 doc/additionalDoc/tracer-real-timedoc.h create mode 100644 doc/tabs.css diff --git a/doc/additionalDoc/package.h b/doc/additionalDoc/package.h index 27b8d2b..e27434e 100644 --- a/doc/additionalDoc/package.h +++ b/doc/additionalDoc/package.h @@ -32,7 +32,7 @@ for a given problem. It is the basis for the stack of tasks operation. This code implements the factory design pattern, making creation of entities available to packages depending on the dynamic-graph API. -Objects, which are derived from Entities, can be +Objects, which are derived from Entities (base class dynamicgraph::Entity), can be declared within the code and compiled to shared libraries (.so/.dll files). These libraries can be loaded at run-time using the PluginLoader methods, and at the same time register their class names to the Factory (see the @@ -55,11 +55,9 @@ at the command line. The public static objects (singletons) made available by including the corresponding headers in this module are: -\li g_factory: FactoryStorage -\li g_pool: PoolStorage -\li g_shell: Interpreter - -\image html pictures/use-case.svg +\li g_factory: dynamicgraph::FactoryStorage +\li g_pool: dynamicgraph::PoolStorage +\li g_shell: dynamicgraph::Interpreter \section entities List of entities in this package Since most of the functionality in projects using the dynamic-graph framework @@ -68,13 +66,23 @@ this package. Note that most entities are contained in a binary file that closel the entities' names in the scripts; loading this file with the plugin loader will enable creation of this entity through the factory. \li \ref tracerdoc -\li \link dynamicgraph::TracerRealTime TracerRealTime \endlink +\li \ref tracerrealtimedoc \li ShellProcedure -\li ShellFunctions +\li \ref shellfunctions_doc \li \link dynamicgraph::Contiifstream Contiifstream \endlink The entities will be placed in ${PREFIX}/lib/plugin (since this may change, it is advised to check the install log or the CMakeLists.txt file to check the installation path). +\section signals About signals + +Entities can output different types of signals. All signals are templated by a Time +tick type parameter (which is used in the caching of signals) - usually \c int. Signals +are also templated after the type of data they accept or provide. For example: + +\section usecase Use case + +\image html pictures/use-case.svg + \defgroup dgraph Core classes and objects \defgroup signals Signals diff --git a/doc/additionalDoc/shellfunctions_doc.h b/doc/additionalDoc/shellfunctions_doc.h new file mode 100644 index 0000000..01dde8d --- /dev/null +++ b/doc/additionalDoc/shellfunctions_doc.h @@ -0,0 +1,44 @@ +/** +\page shellfunctions_doc ShellFunctions +\note Note: this documentation covers specific aspects of the in-house +scripting language currently used by the dynamic-graph script. Unless +otherwise specified, it is only relevant for programmers using this +particular language. At the time of writing, there is talk of +replacing the language with python, so check if this information is still +relevant before reading. + +\section description Description +The \b ShellFunctions plugin file adds common shell functions to the +dynamic-graph shell. +\section commands Commands +The supplementary \b commands provided (you can also type 'help' at the +dynamic-graph shell command line to see them and a brief description): +\code + LoadPlugins + Try + DisplayPlugins + DisplayFactory + Commentary + Unplug + ClearPlugin + SignalTime + SynchroSignal + Echo + Copy + Freeze + Squeeze + EnableTrace + SetPrompt + Sleep + Beep + FlagSet + CompletionList +\endcode + +\section addi Additional information +See doxygen documentation for the class ShellFunctions + +\section generates Generated plugin file +shell-functions.dll or shell-functions.so. + +**/ diff --git a/doc/additionalDoc/tracer-real-timedoc.h b/doc/additionalDoc/tracer-real-timedoc.h new file mode 100644 index 0000000..5cebd66 --- /dev/null +++ b/doc/additionalDoc/tracer-real-timedoc.h @@ -0,0 +1,29 @@ +/** +\page tracerrealtimedoc TracerRealTime +\section description Description +The \b TracerRealTime entity monitors a set of signals with real-time constraints; its +function is very similar to the Tracer, except that all traces are recorded to a +memory buffer, which can be emptied at any time. +\section commands Commands +The \b commands that this entity exposes are (you can also type [entity name].help at the +dynamic-graph shell command line to see this list): +\code +empty (discards all buffers) +buffersize (sets buffer size for recording) +trace (writes traces to files) +\endcode +Plus all the commands exposed by \ref tracerdoc +\n +For more information on the signals exposed by this entity, please check the +code documentation of the dynamicgraph::Tracer class. + +\section sample Sample usage +See \ref tracerdoc for a code sample of using TracerRealTime. + +\section addi Additional information +See doxygen documentation for the class dynamicgraph::TracerRealTime + +\section generates Generated plugin file +tracer-real-time.dll or tracer-real-time.so. + +**/ diff --git a/doc/additionalDoc/tracerdoc.h b/doc/additionalDoc/tracerdoc.h index d0553e7..fa09d4e 100644 --- a/doc/additionalDoc/tracerdoc.h +++ b/doc/additionalDoc/tracerdoc.h @@ -1,11 +1,11 @@ /** \page tracerdoc Tracer -Generated plugin file tracer.dll or tracer.so. \section description Description The \b Tracer entity monitors a set of signals. With an input change on the entity's <trigger> signal, the tracked signal values are recorded and traced to a file. The behavior of the trace-to-file function can be changed, from printing to a file immediately after recording, to printing out -only when asked explicitly.\n +only when asked explicitly. +\section commands Commands The \b commands that this entity exposes are (you can also type [entity name].help at the dynamic-graph shell command line to see this list): \code @@ -13,7 +13,7 @@ open, close (a file); add (a signal) clear (recorded values); record (signal values) -trace (recorded values to file) +trace (doesn't do anything) start, stop (traces) \endcode \n @@ -38,4 +38,11 @@ tr.add OpenHRP.forceRARM tr.add dyn.0 tr.add jgain.gain \endcode + +\section addi Additional information +See doxygen documentation for the class dynamicgraph::Tracer + +\section generates Generated plugin file +tracer.dll or tracer.so. + **/ diff --git a/doc/header.html b/doc/header.html index 4f6e91d..ece76fe 100644 --- a/doc/header.html +++ b/doc/header.html @@ -2,6 +2,7 @@ <HEAD> <TITLE>dynamicGraph library documentation</TITLE> <LINK HREF="package.css" REL="stylesheet" TYPE="text/css"> + <LINK HREF="tabs.css" REL="stylesheet" TYPE="text/css"> </HEAD> <BODY> diff --git a/doc/package.css b/doc/package.css index f992392..224338b 100644 --- a/doc/package.css +++ b/doc/package.css @@ -1,230 +1,657 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 12px; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { + color: #4665A2; +} + +a.codeRef { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + body { - font-family: 'Lucida Grande','Lucida Sans Unicode',Verdana,Sans-Serif; - color: #5D5D5D; + background: white; + color: black; + margin: 0; } -dl { - border: 1.5px #82b6d7 solid; - width: 97%; - padding: 5px; - color: #330077; +div.contents { + margin-top: 10px; + margin-left: 10px; + margin-right: 10px; } -code { - color: #3C9A35; +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; } -td.md { - color: #0066CC; +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; } -h1 { - padding-top: 50px; - padding: 0px; - font-family: 'Lucida Grande','Lucida Sans Unicode',Verdana,Sans-Serif; - font-variant: small-caps; - color:#0066CC; - text-align: center; +tr.memlist { + background-color: #EEF1F7; } -h2,h3,hr { - magin-top: 15px; - padding: 0px; - font-family: 'Lucida Grande','Lucida Sans Unicode',Verdana,Sans-Serif; - font-variant: small-caps; - color:#0066CC; +p.formulaDsp { + text-align: center; } -h4 { - color: #3C9A35; +img.formulaDsp { + } -a:link { - font-weight: bold; - text-decoration: none; - color:#0066CC +img.formulaInl { + vertical-align: middle; } -a:hover, a:active { - text-decoration: underline; - color: #3C9A35; +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; } -a:visited { - font-weight: bold; - color: #3C9A35; - text-decoration: none; +div.center img { + border: 0px; } -DIV.memitem -{ - spacing: 10px; - width:100%; - background:#FFFFFF; - font-size:100%; - line-height:normal; - border-width: 1px; - border-style: solid; - border-color: #808080; - -moz-border-radius: 8px 8px 8px 8px; +address.footer { + text-align: right; + padding-right: 12px; } -DIV.memproto -{ - width:100%; - background:#F0F0F0; - font-size:100%; - line-height:normal; - border-width: 1px; - border-style: solid; - border-color: #808080; - -moz-border-radius: 8px 8px 8px 8px; +img.footer { + border: 0px; + vertical-align: middle; } -DIV.memdoc -{ - padding: 10px; - width:100%; - font-size:100%; - line-height:normal; +/* @group Code Colorization */ + +span.keyword { + color: #008000 } -DIV.tabs -{ - float : left; - width : 100%; - background : url("tab_b.gif") repeat-x bottom; - margin-bottom : 4px; +span.keywordtype { + color: #604020 } -DIV.tabs UL -{ - margin : 0px; - padding-left : 10px; - list-style : none; +span.keywordflow { + color: #e08000 } -DIV.tabs LI, DIV.tabs FORM -{ - display : inline; - margin : 0px; - padding : 0px; +span.comment { + color: #800000 } -DIV.tabs FORM -{ - float : right; +span.preprocessor { + color: #806020 } -DIV.tabs A -{ - float : left; - background : url("tab_r.gif") no-repeat right top; - border-bottom : 1px solid #84B0C7; - font-size : x-small; - font-weight : bold; - text-decoration : none; +span.stringliteral { + color: #002080 } -DIV.tabs A:hover -{ - background-position: 100% -150px; +span.charliteral { + color: #008080 } -DIV.tabs A:link, DIV.tabs A:visited, -DIV.tabs A:active, DIV.tabs A:hover -{ - color: #1A419D; +span.vhdldigit { + color: #ff00ff } -DIV.tabs SPAN -{ - float : left; - display : block; - background : url("tab_l.gif") no-repeat left top; - padding : 5px 9px; - white-space : nowrap; +span.vhdlchar { + color: #000000 } -DIV.tabs INPUT -{ - float : right; - display : inline; - font-size : 1em; +span.vhdlkeyword { + color: #700070 } -DIV.tabs TD -{ - font-size : x-small; - font-weight : bold; - text-decoration : none; +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; } +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C4CFE5; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 3px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.memitem { + padding: 0; + margin-bottom: 10px; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + +} + +.memdoc { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 2px 5px; + background-color: #FBFCFD; + border-top-width: 0; + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} -DIV.tabs SPAN {float : none;} +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} -DIV.tabs A:hover SPAN +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul { - background-position: 0% -150px; + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; } -DIV.tabs LI#current A +.navpath li { - background-position: 100% -150px; - border-width : 0px; + list-style-type:none; + float:left; + padding-left:10px; + padding-right: 15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; } -DIV.tabs LI#current SPAN +.navpath a { - background-position: 0% -150px; - padding-bottom : 6px; + height:32px; + display:block; + text-decoration: none; + outline: none; } -DIV.nav +.navpath a:hover { - background : none; - border : none; - border-bottom : 1px solid #84B0C7; -} - -DIV.groupHeader -{ - padding-top: 30px; - padding-bottom: 20px; - background : none; - border : none; - border-bottom : 1px solid #84B0C7; - font-family: 'Lucida Grande','Lucida Sans Unicode',Verdana,Sans-Serif; - font-variant: small-caps; - font-size: 14pt; - color:#0066CC; -} - -.directory p -{ - margin: 0px; - white-space: nowrap; - font-family: 'Lucida Grande','Lucida Sans Unicode',Verdana,Sans-Serif; - font-size: 10pt; - font-weight: normal; -} - - -.directory h3 -{ - font-family: 'Lucida Grande','Lucida Sans Unicode',Verdana,Sans-Serif; - margin: 0px; - margin-top: 1em; - padding-bottom: 20px; - font-size: 12pt; - font-variant: small-caps; - text-align: center; -} - -.directory a:visited { - font-weight: bold; - text-decoration: none; - color:#0066CC + color:#6884BD; } +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + + diff --git a/doc/tabs.css b/doc/tabs.css new file mode 100644 index 0000000..2192056 --- /dev/null +++ b/doc/tabs.css @@ -0,0 +1,59 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} -- GitLab