Skip to content
Snippets Groups Projects
Commit 836c4f2a authored by Francois Bleibel's avatar Francois Bleibel
Browse files

Added documentation for most classes in dynamicgraph. Updated css.

parent 007ce380
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
/**
\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.
**/
/**
\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.
**/
/**
\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.
**/
......@@ -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>
/* 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;
}
.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);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment