Changes in the API:
authoretisserant
Fri, 06 Apr 2007 16:49:28 +0200
changeset 149 fe50ada8020b
parent 148 ad3de8730172
child 150 d2fc5d5f8a36
Changes in the API:
- No more mandatory callbacks declared for each node anymore
heartbeatError
SDOtimeoutError
initialisation
preOperational
operational
stopped
post_sync
post_TPDO
canSend

- Fill function ptr to declare callbacks
CO_Data.heartbeatError
CO_Data.SDOtimeoutError
CO_Data.initialisation
CO_Data.preOperational
CO_Data.operational
CO_Data.stopped
CO_Data.post_sync
CO_Data.post_TPDO

- CanClose now takes CO_Data* as parameter
- canSend is provided to the stack directly by OS interface, no specific callback.
doc/canfestival_CAN_interface.svg
doc/canfestival_OS.png
doc/canfestival_OS.svg
doc/canfestival_OSless.png
doc/canfestival_OSless.svg
doc/canfestival_overview.png
doc/canfestival_overview.svg
doc/manual/en/manual.odt
doc/manual/en/manual.pdf
drivers/generic/.cvsignore
drivers/generic/Makefile.in
drivers/timers_unix/timers_unix.c
drivers/unix/unix.c
drivers/win32/drivers_win32.cpp
examples/TestMasterSlave/Master.c
examples/TestMasterSlave/Slave.c
examples/TestMasterSlave/TestMasterSlave.c
examples/TestMasterSlave/TestMasterSlave.h
examples/gene_SYNC_HCS12/appli.c
examples/win32test/main.c
include/data.h
include/generic/applicfg.h
include/lifegrd.h
include/sdo.h
include/states.h
include/sync.h
include/unix/canfestival.h
include/win32/canfestival.h
objdictgen/objdictedit.py
src/lifegrd.c
src/nmtMaster.c
src/nmtSlave.c
src/pdo.c
src/sdo.c
src/states.c
src/sync.c
src/timer.c
--- a/doc/canfestival_CAN_interface.svg	Thu Apr 05 10:06:11 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,826 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="841.88977pt"
-   height="595.27557pt"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.43"
-   sodipodi:docbase="/home/edouard/taf/Pim/workspace_edouard/CanFestival-3/doc"
-   sodipodi:docname="canfestival_CAN_interface.svg"
-   version="1.0"
-   inkscape:export-filename="canfestival_CAN.png"
-   inkscape:export-xdpi="87.57"
-   inkscape:export-ydpi="87.57">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path3695"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lstart"
-       style="overflow:visible">
-      <path
-         id="path3698"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
-         transform="scale(0.8)" />
-    </marker>
-    <linearGradient
-       id="linearGradient10920">
-      <stop
-         id="stop10922"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop10924"
-         offset="1"
-         style="stop-color:#88873c;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2182">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2184" />
-      <stop
-         style="stop-color:#48883c;stop-opacity:1;"
-         offset="1"
-         id="stop2186" />
-    </linearGradient>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.2605926"
-     inkscape:cx="526.18109"
-     inkscape:cy="308.58503"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="1592"
-     inkscape:window-height="1109"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     showgrid="false"
-     gridspacingy="1cm"
-     gridspacingx="1cm"
-     gridoriginy="0cm"
-     gridoriginx="0cm"
-     inkscape:grid-points="true"
-     gridtolerance="0.1cm" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <g
-       id="g5919"
-       transform="translate(154,12)">
-      <rect
-         rx="35.822395"
-         ry="28.96596"
-         y="431.26938"
-         x="482.46152"
-         height="285.17609"
-         width="230.30719"
-         id="rect11071"
-         style="color:#000000;fill:#4c9d40;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.34227753;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect11090"
-         width="97.684883"
-         height="22.156359"
-         x="604.57062"
-         y="647.02209"
-         ry="7.3854532"
-         rx="5.9955626" />
-      <g
-         id="g7299"
-         transform="translate(-105.8393,395.4256)">
-        <rect
-           ry="14.770916"
-           y="183.25035"
-           x="501.7005"
-           height="75.672546"
-           width="183.69043"
-           id="rect7301"
-           style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.8750006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           rx="14.770906" />
-        <text
-           sodipodi:linespacing="100%"
-           id="text7303"
-           y="201.93582"
-           x="593.54962"
-           style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-           xml:space="preserve"><tspan
-             id="tspan7307"
-             y="201.93582"
-             x="593.54962"
-             sodipodi:role="line">SCHEDULING</tspan><tspan
-             id="tspan7309"
-             y="217.93582"
-             x="593.54962"
-             sodipodi:role="line">timer.c</tspan><tspan
-             id="tspan7337"
-             y="233.93582"
-             x="593.54962"
-             sodipodi:role="line" /><tspan
-             id="tspan11067"
-             y="249.93582"
-             x="593.54962"
-             sodipodi:role="line">TimeDispatch</tspan></text>
-      </g>
-      <text
-         xml:space="preserve"
-         style="font-size:16.62873268px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="596.70605"
-         y="453.71832"
-         id="text11092"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           id="tspan11094"
-           x="596.70605"
-           y="453.71832">CanFestival Library</tspan></text>
-      <rect
-         rx="5.9955626"
-         ry="7.3854532"
-         y="618.47668"
-         x="604.57062"
-         height="22.156359"
-         width="97.684883"
-         id="rect11105"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect11107"
-         width="97.684883"
-         height="22.156359"
-         x="604.57062"
-         y="589.93121"
-         ry="7.3854532"
-         rx="5.9955626" />
-      <rect
-         rx="5.9955626"
-         ry="7.3854532"
-         y="561.38574"
-         x="604.57062"
-         height="22.156359"
-         width="97.684883"
-         id="rect11109"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path11073"
-         d="M 671.86254,652.97067 L 640.82703,643.16673 L 645.22217,650.61744 L 614.18669,640.81358 L 618.58179,648.26435 L 587.54633,638.46044 L 591.94145,645.91116 L 560.90597,636.10729"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999911;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path11077"
-         d="M 672.46736,630.30537 L 640.09689,626.91783 L 645.89557,633.33704 L 613.52526,629.94953 L 619.32393,636.3687 L 586.95356,632.98119 L 592.75221,639.40037 L 560.38185,636.01282"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999928;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <rect
-         rx="35.822395"
-         style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.34228134;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect11124"
-         width="151.22868"
-         height="242.03027"
-         x="737.41772"
-         y="463.1806"
-         ry="35.82243" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text10926"
-         y="486.68628"
-         x="816.53412"
-         style="font-size:16.62873268px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           id="tspan10987"
-           y="486.68628"
-           x="816.53412"
-           sodipodi:role="line">Application</tspan></text>
-      <g
-         transform="translate(252.5741,337.1441)"
-         id="g11128">
-        <rect
-           rx="14.770911"
-           style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           id="rect11130"
-           width="114.01698"
-           height="61.490883"
-           x="501.54193"
-           y="183.78499"
-           ry="14.770906" />
-        <text
-           xml:space="preserve"
-           style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-           x="557.54962"
-           y="219.93582"
-           id="text11132"
-           sodipodi:linespacing="100%"><tspan
-             sodipodi:role="line"
-             x="557.54962"
-             y="219.93582"
-             id="tspan11148">Callbacks</tspan></text>
-      </g>
-      <path
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.9999994;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="M 768.23972,566.50754 L 705.85794,578.18206 L 720.55675,585.16803 L 658.17528,596.84252 L 672.87404,603.82843 L 610.49247,615.50297 L 625.19117,622.48891 L 562.80959,634.16337"
-         id="path11187"
-         sodipodi:nodetypes="cccccccc" />
-      <g
-         transform="translate(-105.8393,295.4256)"
-         id="g4855">
-        <rect
-           rx="14.770906"
-           style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.875;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           id="rect4857"
-           width="183.69043"
-           height="91.768173"
-           x="501.7005"
-           y="183.33594"
-           ry="14.770905" />
-        <text
-           xml:space="preserve"
-           style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-           x="593.54962"
-           y="201.93582"
-           id="text4859"
-           sodipodi:linespacing="100%"><tspan
-             sodipodi:role="line"
-             x="593.54962"
-             y="201.93582"
-             id="tspan4875">CAN</tspan><tspan
-             id="tspan4912"
-             sodipodi:role="line"
-             x="593.54962"
-             y="217.93582">DISPATCHING</tspan><tspan
-             id="tspan4914"
-             sodipodi:role="line"
-             x="593.54962"
-             y="233.93582">states.c</tspan><tspan
-             id="tspan4918"
-             sodipodi:role="line"
-             x="593.54962"
-             y="249.93582" /><tspan
-             id="tspan4916"
-             sodipodi:role="line"
-             x="593.54962"
-             y="265.93582">canDispatch</tspan></text>
-      </g>
-      <rect
-         transform="scale(1,-1)"
-         rx="5.9955626"
-         ry="7.3854532"
-         y="-526.45117"
-         x="604.57062"
-         height="22.156359"
-         width="97.684883"
-         id="rect5816"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         transform="scale(1,-1)"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect5818"
-         width="97.684883"
-         height="22.156359"
-         x="604.57062"
-         y="-554.9967"
-         ry="7.3854532"
-         rx="5.9955626" />
-      <rect
-         transform="scale(1,-1)"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect5822"
-         width="97.684883"
-         height="22.156359"
-         x="604.57062"
-         y="-497.90576"
-         ry="7.3854532"
-         rx="5.9955626" />
-      <path
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999899;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="M 659.87914,528.52929 L 629.88686,541.16981 L 633.57193,533.34352 L 603.57965,545.98396 L 607.26468,538.15763 L 577.27244,550.79811 L 580.95748,542.97183 L 550.96522,555.61227"
-         id="path5824"
-         sodipodi:nodetypes="cccccccc" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path5830"
-         d="M 650.06632,499.72944 L 624.5413,519.92334 L 626.00153,511.39702 L 600.4765,531.59082 L 601.93667,523.06446 L 576.41168,543.25831 L 577.87188,534.73199 L 552.34686,554.9258"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999899;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path5836"
-         d="M 771.36198,535.02148 L 707.94331,532.60242 L 720.73184,542.66783 L 657.31348,540.24882 L 670.10197,550.31415 L 606.68351,547.89515 L 619.47194,557.96051 L 556.05348,555.54144"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999911;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="524.84515"
-       y="53.523052"
-       id="text12903"
-       sodipodi:linespacing="100%"><tspan
-         sodipodi:role="line"
-         id="tspan12905"
-         x="524.84515"
-         y="53.523052">CanFestival interface to CAN</tspan></text>
-    <flowRoot
-       xml:space="preserve"
-       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       id="flowRoot10132"
-       transform="translate(-537.3729,-117.7957)"><flowRegion
-         id="flowRegion10134"><path
-           style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           d="M 555.4375,182.0625 L 555.4375,832.71875 L 715.46875,832.71875 L 715.46875,182.0625 L 555.4375,182.0625 z "
-           id="rect10125"
-           sodipodi:nodetypes="ccccc" /></flowRegion><flowPara
-         id="flowPara11039">Because most CAN controllers and drivers implement FIFOs, CanFestival consider sending message as a non bloking operation.</flowPara><flowPara
-         id="flowPara1963" /><flowPara
-         id="flowPara2038">In order to prevent reentrent calls to the stack, messages reception is implemented differently on µC and OS.:</flowPara><flowPara
-         id="flowPara7091" /><flowPara
-         id="flowPara2044">- µC must provide interuption masking for timer and can receive IT</flowPara><flowPara
-         id="flowPara7093" /><flowPara
-         id="flowPara2034">- OS must provide a receive thread, a timer thread and a mutex. CAN reception is a bloking operation.</flowPara></flowRoot>    <rect
-       rx="35.822426"
-       style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.3422823;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="rect12909"
-       width="322.88"
-       height="321.50677"
-       x="196.82117"
-       y="406.60907"
-       ry="35.822411" />
-    <g
-       transform="translate(187.9175,94.2278)"
-       id="g7033">
-      <rect
-         rx="20.028"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499905;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect7035"
-         width="183.69043"
-         height="123.85986"
-         x="36.736599"
-         y="354.06866"
-         ry="20.027498" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="128.57401"
-         y="376.4429"
-         id="text7037"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="376.4429"
-           id="tspan7039">CAN DRIVER</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="392.4429"
-           id="tspan7041">INTERFACE</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="408.4429"
-           id="tspan7043">(can_xxx.c)</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="424.4429"
-           id="tspan7045" /><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="440.4429"
-           id="tspan7047">canSend</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="456.4429"
-           id="tspan7049" /><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="472.4429"
-           id="tspan7051">canReceiveLoop</tspan></text>
-    </g>
-    <text
-       sodipodi:linespacing="100%"
-       id="text12911"
-       y="429.92734"
-       x="318.2309"
-       style="font-size:16.62873268px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
-       xml:space="preserve"><tspan
-         y="429.92734"
-         x="318.2309"
-         sodipodi:role="line"
-         id="tspan12931">HW interfaces (for OS)</tspan></text>
-    <g
-       transform="translate(367.9175,123.0993)"
-       id="g3029">
-      <rect
-         rx="20.028"
-         style="color:#000000;fill:#e06565;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect3031"
-         width="91.845215"
-         height="88.572678"
-         x="46.65921"
-         y="398.63705"
-         ry="20.027502" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="94.574013"
-         y="446.4429"
-         id="text3033"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           x="94.574013"
-           y="446.4429"
-           id="tspan3047">mutex</tspan></text>
-    </g>
-    <g
-       id="g7053"
-       transform="translate(187.9175,171.0993)">
-      <rect
-         ry="20.027489"
-         y="409.03406"
-         x="36.736599"
-         height="122.74969"
-         width="183.69043"
-         id="rect7055"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499869;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         rx="20.028" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text7057"
-         y="426.4429"
-         x="128.57401"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           id="tspan7059"
-           y="426.4429"
-           x="128.57401"
-           sodipodi:role="line">SYSTEM TIMERS</tspan><tspan
-           id="tspan7061"
-           y="442.4429"
-           x="128.57401"
-           sodipodi:role="line">INTERFACE</tspan><tspan
-           id="tspan7063"
-           y="458.4429"
-           x="128.57401"
-           sodipodi:role="line">(timers_xxx.c)</tspan><tspan
-           id="tspan7065"
-           y="474.4429"
-           x="128.57401"
-           sodipodi:role="line" /><tspan
-           id="tspan7067"
-           y="490.4429"
-           x="128.57401"
-           sodipodi:role="line">CreateReceiveTask</tspan><tspan
-           id="tspan7069"
-           y="506.4429"
-           x="128.57401"
-           sodipodi:role="line" /><tspan
-           id="tspan7071"
-           y="522.4429"
-           x="128.57401"
-           sodipodi:role="line">TimerLoop</tspan></text>
-    </g>
-    <g
-       id="g4929"
-       transform="translate(367.5838,23.481)">
-      <rect
-         ry="20.027502"
-         y="398.63705"
-         x="46.65921"
-         height="88.572678"
-         width="91.845215"
-         id="rect4931"
-         style="color:#000000;fill:#6ce065;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         rx="20.028" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text4933"
-         y="432.4429"
-         x="94.574013"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           id="tspan4935"
-           y="432.4429"
-           x="94.574013"
-           sodipodi:role="line">CAN</tspan><tspan
-           y="448.4429"
-           x="94.574013"
-           sodipodi:role="line"
-           id="tspan5812">receive</tspan><tspan
-           y="464.4429"
-           x="94.574013"
-           sodipodi:role="line"
-           id="tspan5810">thread</tspan></text>
-    </g>
-    <use
-       x="0"
-       y="0"
-       xlink:href="#g5919"
-       id="use6032"
-       transform="translate(0,-340)"
-       width="1052.3622"
-       height="744.09448" />
-    <rect
-       ry="35.822411"
-       y="79.237869"
-       x="198.56923"
-       height="294.58887"
-       width="321.13193"
-       id="rect6034"
-       style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.3422823;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       rx="35.822426" />
-    <text
-       xml:space="preserve"
-       style="font-size:16.62873268px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
-       x="367.71115"
-       y="98.69693"
-       id="text6036"
-       sodipodi:linespacing="100%"><tspan
-         id="tspan6038"
-         sodipodi:role="line"
-         x="367.71115"
-         y="98.69693">HW interfaces (for µC)</tspan></text>
-    <g
-       id="g6040"
-       transform="translate(187.9175,-245.7722)">
-      <rect
-         ry="20.027498"
-         y="354.06866"
-         x="36.736599"
-         height="123.85986"
-         width="183.69043"
-         id="rect6042"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499905;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         rx="20.028" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text6044"
-         y="376.4429"
-         x="128.57401"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           id="tspan6046"
-           y="376.4429"
-           x="128.57401"
-           sodipodi:role="line">CAN DRIVER</tspan><tspan
-           id="tspan6048"
-           y="392.4429"
-           x="128.57401"
-           sodipodi:role="line">INTERFACE</tspan><tspan
-           id="tspan6050"
-           y="408.4429"
-           x="128.57401"
-           sodipodi:role="line">(can_xxx.c)</tspan><tspan
-           id="tspan6052"
-           y="424.4429"
-           x="128.57401"
-           sodipodi:role="line" /><tspan
-           id="tspan6054"
-           y="440.4429"
-           x="128.57401"
-           sodipodi:role="line">canSend</tspan><tspan
-           id="tspan6056"
-           y="456.4429"
-           x="128.57401"
-           sodipodi:role="line" /><tspan
-           id="tspan6058"
-           y="472.4429"
-           x="128.57401"
-           sodipodi:role="line">canReceiveLoop</tspan></text>
-    </g>
-    <g
-       transform="translate(187.9175,-168.9007)"
-       id="g6060">
-      <rect
-         rx="20.028"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499869;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect6062"
-         width="183.69043"
-         height="122.74969"
-         x="36.736599"
-         y="409.03406"
-         ry="20.027489" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="128.57401"
-         y="426.4429"
-         id="text6064"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="426.4429"
-           id="tspan6066">SYSTEM TIMERS</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="442.4429"
-           id="tspan6068">INTERFACE</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="458.4429"
-           id="tspan6070">(timers_xxx.c)</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="474.4429"
-           id="tspan6072" /><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="490.4429"
-           id="tspan6078">CreateReceiveTask</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="506.4429"
-           id="tspan7029" /><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="522.4429"
-           id="tspan7031">TimerLoop</tspan></text>
-    </g>
-    <g
-       transform="translate(367.9175,-276.9007)"
-       id="g6088">
-      <rect
-         rx="20.028"
-         style="color:#000000;fill:#6ce065;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect6090"
-         width="91.845215"
-         height="88.572678"
-         x="46.65921"
-         y="398.63705"
-         ry="20.027502" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="94.574013"
-         y="432.4429"
-         id="text6092"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           x="94.574013"
-           y="432.4429"
-           id="tspan6094">CAN</tspan><tspan
-           id="tspan6096"
-           sodipodi:role="line"
-           x="94.574013"
-           y="448.4429">receive</tspan><tspan
-           id="tspan6098"
-           sodipodi:role="line"
-           x="94.574013"
-           y="464.4429">IRQ</tspan></text>
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       id="path6100"
-       d="M 384.72913,221.08664 C 397.98208,164.92301 418.72692,141.2434 432.63424,189.60269"
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cccccc"
-       id="path6102"
-       d="M 496.87735,180.4691 L 531.06387,184.4102 L 526.35258,173.99809 L 558.22817,184.67183 L 557.00603,171.72101 L 584.50103,191.0884"
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <g
-       id="g6104"
-       transform="translate(367.9175,-136.9007)">
-      <rect
-         ry="20.027502"
-         y="398.63705"
-         x="46.65921"
-         height="88.572678"
-         width="91.845215"
-         id="rect6106"
-         style="color:#000000;fill:#6ce065;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         rx="20.028" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text6108"
-         y="438.4429"
-         x="94.574013"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           id="tspan6110"
-           y="438.4429"
-           x="94.574013"
-           sodipodi:role="line">TIMER</tspan><tspan
-           y="454.4429"
-           x="94.574013"
-           sodipodi:role="line"
-           id="tspan6114">IRQ</tspan></text>
-    </g>
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 496.87735,280.4691 L 531.06387,284.4102 L 526.35258,273.99809 L 558.22817,284.67183 L 557.00603,271.72101 L 584.50103,291.0884"
-       id="path6124"
-       sodipodi:nodetypes="cccccc" />
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 376.46226,351.60641 C 392.47084,284.02817 428.83087,296.27726 433.55278,310.93704"
-       id="path6126"
-       sodipodi:nodetypes="cc" />
-    <g
-       transform="translate(369.9175,3.0993)"
-       id="g6136">
-      <rect
-         rx="20.028"
-         style="color:#000000;fill:#6ce065;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect6138"
-         width="91.845215"
-         height="88.572678"
-         x="46.65921"
-         y="618.63708"
-         ry="20.027502" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="94.574013"
-         y="660.44287"
-         id="text6140"
-         sodipodi:linespacing="100%"><tspan
-           id="tspan6144"
-           sodipodi:role="line"
-           x="94.574013"
-           y="660.44287">Timer</tspan><tspan
-           id="tspan6146"
-           sodipodi:role="line"
-           x="94.574013"
-           y="676.44287">thread</tspan></text>
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       id="path6150"
-       d="M 362.89913,697.18256 C 381.83779,640.63488 421.14333,617.69063 433.08451,650.64059"
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:type="star"
-       style="opacity:1;color:#000000;fill:#e06565;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.54594374;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path6152"
-       sodipodi:sides="3"
-       sodipodi:cx="360.98669"
-       sodipodi:cy="199.39957"
-       sodipodi:r1="41.588718"
-       sodipodi:r2="20.794359"
-       sodipodi:arg1="0.53284389"
-       sodipodi:arg2="1.5800414"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 396.8098,220.52601 L 360.79445,220.19304 L 324.7791,219.86006 L 343.07514,188.83634 L 361.37118,157.81263 L 379.09049,189.16932 L 396.8098,220.52601 z "
-       transform="matrix(0.45793,-0.264387,-0.264387,-0.45793,351.3528,422.243)" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0;stroke-opacity:1"
-       d="M 461.06115,210.21416 L 461.06115,262.57101"
-       id="path6154" />
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 496.25642,668.62144 L 485.8594,602.34168 L 477.08277,613.73607 L 475.85592,582.03486 L 522.72719,608.91578 L 524.57445,595.10955 L 540.36138,619.8651 L 546.02816,612.64246 L 571.71147,634.55639"
-       id="path7075"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       id="path7077"
-       d="M 494.72958,476.9416 L 492.4706,521.65328 L 482.47306,515.89851 L 485.07542,536.59883 L 512.90357,529.68896 L 511.62295,538.8566 L 531.74165,530.83001 L 535.5035,537.19219 L 564.5163,532.17563"
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 386.56621,561.07267 C 394.30792,477.3528 418.72692,447.2434 432.63424,495.60269"
-       id="path7079"
-       sodipodi:nodetypes="cc" />
-  </g>
-</svg>
Binary file doc/canfestival_OS.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/canfestival_OS.svg	Fri Apr 06 16:49:28 2007 +0200
@@ -0,0 +1,1303 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="841.88977pt"
+   height="595.27557pt"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45"
+   sodipodi:docbase="/home/edouard/workspace/CanFestival-3/doc"
+   sodipodi:docname="canfestival_OS.svg"
+   version="1.0"
+   inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OS.png"
+   inkscape:export-xdpi="87.57"
+   inkscape:export-ydpi="87.57"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="TRUE">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path4060"
+         style="font-size:12px;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;">
+      <path
+         id="path4054"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3695"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3698"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.8)" />
+    </marker>
+    <linearGradient
+       id="linearGradient10920">
+      <stop
+         id="stop10922"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop10924"
+         offset="1"
+         style="stop-color:#88873c;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2182">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2184" />
+      <stop
+         style="stop-color:#48883c;stop-opacity:1;"
+         offset="1"
+         id="stop2186" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.6302963"
+     inkscape:cx="765.19682"
+     inkscape:cy="373.17074"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1592"
+     inkscape:window-height="965"
+     inkscape:window-x="80"
+     inkscape:window-y="0"
+     showgrid="false"
+     gridspacingy="1cm"
+     gridspacingx="1cm"
+     gridoriginy="0cm"
+     gridoriginx="0cm"
+     inkscape:grid-points="true"
+     gridtolerance="0.1cm">
+    <sodipodi:guide
+       orientation="vertical"
+       position="753.6122"
+       id="guide6590" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="388.30944"
+       id="guide6592" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       ry="35.82243"
+       y="173.54816"
+       x="419.59946"
+       height="559.34753"
+       width="623.53339"
+       id="rect11124"
+       style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.34228134;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       rx="35.822395" />
+    <path
+       style="color:#000000;fill:#ff0000;fill-opacity:0.24437298;fill-rule:nonzero;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0999999;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       d="M 1008.7679,619.56757 L 780.04054,619.56757 C 764.77664,619.56757 752.48844,631.50525 752.48844,646.33366 L 752.48844,660.15582 L 658.72419,643.96468 L 752.48844,687.80013 L 752.48844,701.62229 C 752.48844,716.4507 764.77664,728.38837 780.04054,728.38837 L 1008.7679,728.38837 C 1024.0318,728.38837 1036.3201,716.4507 1036.3201,701.62229 L 1036.3201,646.33366 C 1036.3201,631.50525 1024.0318,619.56757 1008.7679,619.56757 z "
+       id="rect8790"
+       sodipodi:nodetypes="cccccccccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:29.08449554px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       x="533.41931"
+       y="207.22128"
+       id="text10926"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         x="533.41932"
+         y="207.22128"
+         id="tspan10987">My_App.c</tspan></text>
+    <rect
+       rx="18.650166"
+       style="opacity:1;color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.3422823;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect2745"
+       width="170.24123"
+       height="166.69638"
+       x="76.138123"
+       y="26.241367"
+       ry="17.108639" />
+    <path
+       style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.3422823;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 293.48583,21.836413 C 273.64021,21.836413 257.64208,37.803293 257.64208,57.648913 L 257.64208,204.99266 L 110.29833,204.99266 C 90.452716,204.99266 74.485831,220.99076 74.485831,240.83641 L 74.485831,487.52391 C 74.485831,507.36953 90.452716,523.33641 110.29833,523.33641 L 293.48583,523.33641 L 360.17333,523.33641 C 380.01895,523.33641 395.98583,507.36956 395.98583,487.52391 L 395.98583,240.83641 L 395.98583,57.648913 C 395.98583,37.803293 380.01895,21.836413 360.17333,21.836413 L 293.48583,21.836413 z "
+       id="rect2889"
+       sodipodi:nodetypes="cccccccccccccc" />
+    <g
+       id="g11128"
+       transform="translate(-229.56229,-103.16069)">
+      <rect
+         ry="14.770906"
+         y="183.78499"
+         x="501.54193"
+         height="37.931747"
+         width="110.02036"
+         id="rect11130"
+         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="14.770911" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text11132"
+         y="207.93582"
+         x="563.54962"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan11148"
+           y="207.93582"
+           x="563.54962"
+           sodipodi:role="line">CanSend</tspan></text>
+    </g>
+    <g
+       transform="translate(34.575793,-297.70776)"
+       id="g7033">
+      <rect
+         rx="20.028"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499905;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect7035"
+         width="156.7657"
+         height="123.85986"
+         x="47.955242"
+         y="354.06866"
+         ry="20.027498" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="128.57401"
+         y="376.4429"
+         id="text7037"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="376.4429"
+           id="tspan7043">CAN driver interface</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="392.4429"
+           id="tspan6738">can_xxx.c)</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="408.4429"
+           id="tspan7049" /><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="424.4429"
+           id="tspan6740">canOpen_driver</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="440.4429"
+           id="tspan2887">canClose_driver</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="456.4429"
+           id="tspan6730">canSend_driver</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="472.4429"
+           id="tspan6622">canReceive_driver</tspan></text>
+    </g>
+    <text
+       sodipodi:linespacing="100%"
+       id="text12911"
+       y="40.969654"
+       x="326.2265"
+       style="font-size:22.0880146px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         y="40.969654"
+         x="326.2265"
+         sodipodi:role="line"
+         id="tspan10822">OS</tspan><tspan
+         y="63.057669"
+         x="326.2265"
+         sodipodi:role="line"
+         id="tspan10826">interface</tspan></text>
+    <g
+       id="g7053"
+       transform="translate(47.789795,-196.9325)">
+      <rect
+         ry="20.027489"
+         y="409.03406"
+         x="36.736599"
+         height="122.74969"
+         width="304.85175"
+         id="rect7055"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499869;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="20.028" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text7057"
+         y="426.4429"
+         x="128.57401"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan7059"
+           y="426.4429"
+           x="128.57401"
+           sodipodi:role="line">SYSTEM TIMERS</tspan><tspan
+           id="tspan7061"
+           y="442.4429"
+           x="128.57401"
+           sodipodi:role="line">INTERFACE</tspan><tspan
+           id="tspan7063"
+           y="458.4429"
+           x="128.57401"
+           sodipodi:role="line">(timers_xxx.c)</tspan><tspan
+           id="tspan7065"
+           y="474.4429"
+           x="128.57401"
+           sodipodi:role="line" /><tspan
+           id="tspan7067"
+           y="490.4429"
+           x="128.57401"
+           sodipodi:role="line">CreateReceiveTask</tspan><tspan
+           id="tspan7071"
+           y="506.4429"
+           x="128.57401"
+           sodipodi:role="line">WaitReceiveTaskEnd</tspan><tspan
+           y="522.4429"
+           x="128.57401"
+           sodipodi:role="line"
+           id="tspan6430">(Start/Stop)TimerLoop</tspan></text>
+    </g>
+    <g
+       id="g4929"
+       transform="translate(252.24123,-283.7844)">
+      <rect
+         ry="20.027502"
+         y="408.02194"
+         x="12.266386"
+         height="62.394508"
+         width="123.53928"
+         id="rect4931"
+         style="color:#000000;fill:#6ce065;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="20.028" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text4933"
+         y="432.4429"
+         x="74.574013"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="432.4429"
+           x="74.574013"
+           sodipodi:role="line"
+           id="tspan5810">Thread</tspan><tspan
+           y="446.8481"
+           x="74.574013"
+           sodipodi:role="line"
+           id="tspan3894"
+           style="font-size:14px">CANReceiveLoop</tspan></text>
+    </g>
+    <text
+       sodipodi:linespacing="100%"
+       id="text6140"
+       y="231.18176"
+       x="331.81348"
+       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         y="231.18176"
+         x="331.81348"
+         sodipodi:role="line"
+         id="tspan6146">Timer</tspan></text>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6150"
+       d="M 294.16361,149.19248 C 277.03284,140.05258 262.56836,136.92767 237.08583,163.52674"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <g
+       transform="translate(260.91607,-332.52773)"
+       id="g4102">
+      <path
+         sodipodi:type="arc"
+         style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#8b8b8b;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="path4104"
+         sodipodi:cx="70.866142"
+         sodipodi:cy="602.36218"
+         sodipodi:rx="35.433071"
+         sodipodi:ry="35.433071"
+         d="M 106.29921 602.36218 A 35.433071 35.433071 0 1 1  35.433071,602.36218 A 35.433071 35.433071 0 1 1  106.29921 602.36218 z" />
+      <path
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 82.737476,583.94838 L 70.866142,602.3622 L 95.077981,621.53083"
+         id="path4106" />
+      <path
+         style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 66.168336,567.89171 L 75.655709,567.89171 L 70.677437,572.86998 L 66.168336,567.89171 z "
+         id="path4108" />
+      <path
+         id="path4110"
+         d="M 66.168336,636.83266 L 75.655709,636.83266 L 70.677437,631.85439 L 66.168336,636.83266 z "
+         style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         id="path4112"
+         d="M 105.3368,597.66453 L 105.3368,607.15191 L 100.35852,602.17363 L 105.3368,597.66453 z "
+         style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 36.395337,607.06013 L 36.395347,597.57275 L 41.373618,602.55104 L 36.395337,607.06013 z "
+         id="path4114" />
+      <path
+         id="path4116"
+         d="M 86.032987,571.75922 L 90.249293,574.19351 L 86.759555,575.12858 L 86.032987,571.75922 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 99.302523,583.44266 L 101.73681,587.65897 L 98.24707,586.72389 L 99.302523,583.44266 z "
+         id="path4118" />
+      <path
+         id="path4120"
+         d="M 101.46928,617.52919 L 99.034993,621.7455 L 98.099926,618.25575 L 101.46928,617.52919 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 89.785827,630.79872 L 85.569518,633.23301 L 86.504601,629.74327 L 89.785827,630.79872 z "
+         id="path4122" />
+      <path
+         id="path4124"
+         d="M 55.699155,632.96543 L 51.482846,630.53114 L 54.972588,629.59608 L 55.699155,632.96543 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 42.429186,621.28179 L 39.994899,617.06549 L 43.484636,618.00057 L 42.429186,621.28179 z "
+         id="path4126" />
+      <path
+         id="path4128"
+         d="M 40.26142,587.19403 L 42.695698,582.97773 L 43.630764,586.46746 L 40.26142,587.19403 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 51.944928,573.92365 L 56.161223,571.48937 L 55.22615,574.97909 L 51.944928,573.92365 z "
+         id="path4130" />
+    </g>
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3.4000001, 3.4000001;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 255.68197,292.84745 C 288.68894,259.72192 240.54811,208.89452 292.20294,186.98281"
+       id="path5448"
+       sodipodi:nodetypes="cc" />
+    <g
+       transform="translate(171.71583,-200.84711)"
+       id="g6419">
+      <text
+         xml:space="preserve"
+         style="font-size:10.43629265px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="94.59034"
+         y="444.52914"
+         id="text6421"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="94.590339"
+           y="444.52914"
+           id="tspan6423">creates/</tspan><tspan
+           sodipodi:role="line"
+           x="94.59034"
+           y="454.96544"
+           id="tspan6688">stop</tspan><tspan
+           sodipodi:role="line"
+           x="94.590341"
+           y="465.40173"
+           id="tspan6507">thread</tspan></text>
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6432"
+       d="M 270.05037,322.59336 C 282.90648,328.62999 296.63165,319.14243 313.73419,304.09801"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3.4000001, 3.4000001;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       id="rect6582"
+       style="color:#000000;fill:#ff0000;fill-opacity:0.3118971;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212246;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+       d="M 422.98364,289.80847 C 431.51755,289.80847 729.63003,289.92349 738.16393,289.92349 C 746.69783,289.92349 753.56813,283.05339 753.56813,274.51969 C 753.56813,265.98599 753.48779,41.796139 753.48779,33.262434 C 753.48779,24.728729 760.35806,17.858635 768.89197,17.858635 L 1018.4444,17.858635 C 1026.9783,17.858635 1033.8486,24.728729 1033.8486,33.262434 C 1033.8486,41.796139 1033.8487,428.98473 1033.8487,437.51843 C 1033.8487,446.05213 1026.9784,452.92222 1018.4445,452.92222 L 422.98364,452.92222 C 414.44973,452.92222 407.57946,446.05213 407.57946,437.51843 L 407.57946,305.21227 C 407.57946,296.67856 414.44973,289.80847 422.98364,289.80847 z "
+       sodipodi:nodetypes="ccccccccccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:109.70476532px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
+       x="1179.5238"
+       y="293.70877"
+       id="text6706"
+       sodipodi:linespacing="100%"
+       transform="scale(0.722383,1.3843072)"><tspan
+         sodipodi:role="line"
+         id="tspan6708"
+         x="1179.5238"
+         y="293.70877">}</tspan></text>
+    <rect
+       style="color:#000000;fill:#4c9d40;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.33978558;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect11071"
+       width="177.13666"
+       height="241.54988"
+       x="830.35077"
+       y="24.25337"
+       ry="22.278654"
+       rx="27.55216" />
+    <rect
+       rx="4.6113806"
+       ry="5.6803904"
+       y="212.40753"
+       x="924.2688"
+       height="17.04117"
+       width="75.132591"
+       id="rect11090"
+       style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212353;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <g
+       transform="translate(253.59285,-6.2667178)"
+       id="g7299">
+      <rect
+         rx="14.770906"
+         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.8750006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect7301"
+         width="136.01129"
+         height="75.672562"
+         x="525.82056"
+         y="183.25035"
+         ry="14.770916" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="593.54962"
+         y="201.93582"
+         id="text7303"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="593.54962"
+           y="201.93582"
+           id="tspan7307">SCHEDULING</tspan><tspan
+           sodipodi:role="line"
+           x="593.54962"
+           y="217.93582"
+           id="tspan7309">timer.c</tspan><tspan
+           sodipodi:role="line"
+           x="593.54962"
+           y="233.93582"
+           id="tspan7337" /><tspan
+           sodipodi:role="line"
+           x="593.54962"
+           y="249.93582"
+           id="tspan11067">TimeDispatch</tspan></text>
+    </g>
+    <text
+       sodipodi:linespacing="100%"
+       id="text11092"
+       y="43.731354"
+       x="918.21991"
+       style="font-size:12.78969479px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         y="43.731354"
+         x="918.21991"
+         id="tspan11094"
+         sodipodi:role="line">CanFestival Library</tspan></text>
+    <rect
+       style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212353;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect11105"
+       width="75.132591"
+       height="17.04117"
+       x="924.2688"
+       y="190.45233"
+       ry="5.6803904"
+       rx="4.6113806" />
+    <rect
+       rx="4.6113806"
+       ry="5.6803904"
+       y="168.49709"
+       x="924.2688"
+       height="17.04117"
+       width="75.132591"
+       id="rect11107"
+       style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212353;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <rect
+       style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212353;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect11109"
+       width="75.132591"
+       height="17.04117"
+       x="924.2688"
+       y="146.54184"
+       ry="5.6803904"
+       rx="4.6113806" />
+    <g
+       id="g4855"
+       transform="translate(255.83658,-106.26672)">
+      <rect
+         ry="14.770905"
+         y="183.33594"
+         x="523.01593"
+         height="91.768188"
+         width="136.01114"
+         id="rect4857"
+         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.875;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="14.770906" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text4859"
+         y="201.93582"
+         x="593.54962"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan4875"
+           y="201.93582"
+           x="593.54962"
+           sodipodi:role="line">CAN</tspan><tspan
+           y="217.93582"
+           x="593.54962"
+           sodipodi:role="line"
+           id="tspan4912">DISPATCHING</tspan><tspan
+           y="233.93582"
+           x="593.54962"
+           sodipodi:role="line"
+           id="tspan4914">states.c</tspan><tspan
+           y="249.93582"
+           x="593.54962"
+           sodipodi:role="line"
+           id="tspan4918" /><tspan
+           y="265.93582"
+           x="593.54962"
+           sodipodi:role="line"
+           id="tspan4916">canDispatch</tspan></text>
+    </g>
+    <rect
+       style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212353;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect5816"
+       width="75.132591"
+       height="17.04117"
+       x="924.2688"
+       y="-119.67252"
+       ry="5.6803904"
+       rx="4.6113806"
+       transform="scale(1,-1)" />
+    <rect
+       rx="4.6113806"
+       ry="5.6803904"
+       y="-141.62782"
+       x="924.2688"
+       height="17.04117"
+       width="75.132591"
+       id="rect5818"
+       style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212353;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       transform="scale(1,-1)" />
+    <rect
+       rx="4.6113806"
+       ry="5.6803904"
+       y="-97.717331"
+       x="924.2688"
+       height="17.04117"
+       width="75.132591"
+       id="rect5822"
+       style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.44212353;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       transform="scale(1,-1)" />
+    <g
+       id="g4139"
+       transform="translate(676.7547,-413.56793)">
+      <text
+         sodipodi:linespacing="100%"
+         id="text4143"
+         y="447.00385"
+         x="113.6457"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan4145"
+           y="447.00385"
+           x="113.6457"
+           sodipodi:role="line">mutex</tspan></text>
+    </g>
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 235.13579,171.84773 C 504.71789,202.16883 446.49459,55.699434 797.08946,153.86661"
+       id="path4098"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path4147"
+       d="M 356.73845,242.15956 C 410.15586,209.01139 473.04617,52.396601 795.31042,232.04516"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <g
+       transform="translate(220.23579,-115.29994)"
+       id="g6499">
+      <text
+         xml:space="preserve"
+         style="font-size:10.43629265px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="124.59034"
+         y="436.52914"
+         id="text6501"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="124.59034"
+           y="436.52914"
+           id="tspan6503">creates/stop</tspan><tspan
+           sodipodi:role="line"
+           x="124.59034"
+           y="446.96544"
+           id="tspan6509">timer</tspan></text>
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6505"
+       d="M 337.86207,336.97945 C 343.37253,371.35258 366.67105,397.21058 403.26327,410.13302"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3.4000001, 3.4000001;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <g
+       id="g6511"
+       transform="translate(460.31471,-274.04371)">
+      <text
+         sodipodi:linespacing="100%"
+         id="text6513"
+         y="626.07971"
+         x="-103.06849"
+         style="font-size:10.43629265px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan6515"
+           y="626.07971"
+           x="-103.06849"
+           sodipodi:role="line">creates</tspan><tspan
+           id="tspan6517"
+           y="636.516"
+           x="-103.06849"
+           sodipodi:role="line">mutex</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:15.25994587px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Courier New"
+       x="466.21942"
+       y="231.06906"
+       id="text5118"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="231.06906"
+         id="tspan5281">#include canfestival.h </tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="246.32901"
+         id="tspan5267"> </tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="261.58895"
+         id="tspan5285">//GUI generated header </tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="276.8489"
+         id="tspan5277">#include MyNode.h</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="292.10884"
+         id="tspan5265" /><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="307.36879"
+         id="tspan5389">void InitNode(CO_Data* d, UNS32 id)</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="322.62874"
+         id="tspan5409">{</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="337.88868"
+         id="tspan5417"> setNodeId(&amp;MyNode_Data, 0x01);</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="353.14863"
+         id="tspan5421"> setState(&amp;MyNode_Data, Initialisation);</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="368.40857"
+         id="tspan5423">}</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="383.66852"
+         id="tspan5407" /><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="398.92847"
+         id="tspan6600">void Operational()</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="414.18841"
+         id="tspan6602">{</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="429.44836"
+         id="tspan6606"> /* Your code for Operational State */</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="444.7083"
+         id="tspan6604">}</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="459.96825"
+         id="tspan6598" /><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="475.2282"
+         id="tspan6596">int main(int argc, char *argv[])</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="490.48814"
+         id="tspan5393">{</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="505.74809"
+         id="tspan5260"> LoadCanDriver(&quot;can_peak_win32.dll&quot;);</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="521.00803"
+         id="tspan6610" /><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="536.26798"
+         id="tspan6612"> MyNode_Data.operational = Operational;</tspan><tspan
+         sodipodi:role="line"
+         id="tspan5226"
+         x="466.21942"
+         y="551.52792" /><tspan
+         sodipodi:role="line"
+         id="tspan5230"
+         x="466.21942"
+         y="566.78787"> s_BOARD SlaveBoard = {&quot;0&quot;, &quot;500K&quot;};</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="582.04782"
+         id="tspan5279"> MyCanHandle = canOpen(&amp;MyBoard,&amp;MyNode_Data);</tspan><tspan
+         sodipodi:role="line"
+         id="tspan5232"
+         x="466.21942"
+         y="597.30776" /><tspan
+         sodipodi:role="line"
+         id="tspan5236"
+         x="466.21942"
+         y="612.56771"> StartTimerLoop(&amp;InitNode);</tspan><tspan
+         sodipodi:role="line"
+         id="tspan5238"
+         x="466.21942"
+         y="627.82765" /><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="643.0876"
+         id="tspan5401"> /*    Your Code Here    */</tspan><tspan
+         sodipodi:role="line"
+         id="tspan5246"
+         x="466.21942"
+         y="658.34755"> </tspan><tspan
+         sodipodi:role="line"
+         id="tspan5250"
+         x="466.21942"
+         y="673.60749"> StopTimerLoop();</tspan><tspan
+         sodipodi:role="line"
+         id="tspan5252"
+         x="466.21942"
+         y="688.86744"> </tspan><tspan
+         sodipodi:role="line"
+         id="tspan5256"
+         x="466.21942"
+         y="704.12738"> canClose(&amp;MyNode_Data);</tspan><tspan
+         sodipodi:role="line"
+         x="466.21942"
+         y="719.38733"
+         id="tspan5395">}</tspan><tspan
+         sodipodi:role="line"
+         id="tspan5258"
+         x="466.21942"
+         y="734.64727" /></text>
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 901.72023,227.88056 C 946.99304,257.23786 885.53123,272.66927 802.41689,308.87468"
+       id="path6594"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6614"
+       d="M 897.23278,123.54721 C 1031.7838,181.48375 888.98326,412.16797 638.62474,396.38008"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <text
+       xml:space="preserve"
+       style="font-size:13.93657684px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       x="328.3425"
+       y="74.814224"
+       id="text6628"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         x="328.3425"
+         y="74.814224"
+         id="tspan6634">unix.c or win32.c</tspan></text>
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 281.47116,103.18237 C 264.34039,117.04752 250.66919,126.61506 229.15306,148.45447"
+       id="path6644"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:16.62873268px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       x="164.33847"
+       y="45.71204"
+       id="text6646"
+       sodipodi:linespacing="100%"><tspan
+         id="tspan6648"
+         sodipodi:role="line"
+         x="164.33847"
+         y="45.71204">CAN_xxx .dll/.so</tspan></text>
+    <g
+       transform="translate(-415.56229,162.83931)"
+       id="g6650">
+      <rect
+         rx="14.770911"
+         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6652"
+         width="150.47752"
+         height="37.931747"
+         x="501.54193"
+         y="183.78499"
+         ry="14.770906" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="577.54962"
+         y="207.93582"
+         id="text6654"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="577.54962"
+           y="207.93582"
+           id="tspan6656">LoadCanDriver</tspan></text>
+    </g>
+    <g
+       id="g6658"
+       transform="translate(-415.56229,246.83931)">
+      <rect
+         ry="14.770906"
+         y="183.78499"
+         x="501.54193"
+         height="37.931747"
+         width="150.47752"
+         id="rect6660"
+         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="14.770911" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text6662"
+         y="207.93582"
+         x="577.54962"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan6664"
+           y="207.93582"
+           x="577.54962"
+           sodipodi:role="line">canOpen</tspan></text>
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6666"
+       d="M 467.41056,504.38606 C 423.45302,498.09823 344.62678,375.13935 225.70053,362.40075"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6668"
+       d="M 97.819708,365.03572 C 63.727503,348.60562 41.656574,264.36039 73.258295,182.22314"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:3.4000001, 3.4000001;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6672"
+       d="M 106.77229,410.07541 C 70.747528,398.23464 39.550986,340.23513 97.525668,302.11164"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6674"
+       d="M 471.43332,612.07934 C 273.57991,551.84863 439.02683,366.4133 255.84509,332.25619"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <g
+       transform="translate(-415.56229,204.83931)"
+       id="g6676">
+      <rect
+         rx="14.770911"
+         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6678"
+         width="150.47752"
+         height="37.931747"
+         x="501.54193"
+         y="183.78499"
+         ry="14.770906" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="577.54962"
+         y="207.93582"
+         id="text6680"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="577.54962"
+           y="207.93582"
+           id="tspan6682">canClose</tspan></text>
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6684"
+       d="M 459.69362,699.59173 C 301.49979,550.48664 296.23708,454.58598 214.15732,449.53785"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 106.77229,452.07541 C 54.537173,449.92637 2.922531,334.31067 95.145835,288.5822"
+       id="path6686"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 888.81879,209.08934 C 901.55754,195.53534 902.92012,245.1836 935.91871,218.0037"
+       id="path6698"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6700"
+       d="M 888.81879,209.08934 C 901.55754,195.53534 897.87173,223.86818 930.87032,196.68828"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 888.81879,209.08934 C 901.55754,195.53534 898.71313,203.11369 931.71172,175.93379"
+       id="path6702"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6704"
+       d="M 888.81879,209.08934 C 901.55754,195.53534 893.94521,182.3592 926.9438,155.1793"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <text
+       xml:space="preserve"
+       style="font-size:29.08449554px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       x="945.24017"
+       y="368.16113"
+       id="text6710"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         x="945.24017"
+         y="368.16113"
+         id="tspan6712">Callbacks</tspan></text>
+    <text
+       sodipodi:linespacing="100%"
+       id="text6714"
+       y="395.85825"
+       x="857.27936"
+       style="font-size:11.42314053px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         y="395.85825"
+         x="857.27936"
+         sodipodi:role="line"
+         id="tspan6720">Predefined or OD entry access</tspan><tspan
+         y="407.28139"
+         x="857.27936"
+         sodipodi:role="line"
+         id="tspan6783">callbacks registered with</tspan><tspan
+         y="418.70453"
+         x="857.27936"
+         sodipodi:role="line"
+         id="tspan6722">RegisterSetODentryCallBack</tspan></text>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6724"
+       d="M 902.81879,95.569126 C 915.55754,109.12313 910.4694,61.718594 943.46799,88.898494"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 902.81879,95.569126 C 915.55754,109.12313 911.03033,82.753548 944.02892,109.93345"
+       id="path6726"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6728"
+       d="M 902.81879,95.569126 C 915.55754,109.12313 910.74987,104.34944 943.74846,131.52934"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 106.77229,410.07541 C 61.076242,406.47437 -14.281838,213.21272 92.766001,140.28298"
+       id="path6742"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6744"
+       d="M 106.77229,452.07541 C 30.859263,456.0958 -26.586907,178.09994 95.145835,123.58044"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 466.94586,580.07602 C 422.98832,573.78819 352.55956,414.80324 210.62826,409.20413"
+       id="path6670"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="csc"
+       id="path6758"
+       d="M 987.66644,219.53381 C 1017.9265,234.35572 1011.9678,256.22419 992.20161,278.32007 C 972.43545,300.41596 938.86185,322.73926 913.8921,338.47081"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cs"
+       id="path6760"
+       d="M 987.66644,197.32203 C 1017.9265,212.14394 1011.9678,256.22419 992.20161,278.32007"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cs"
+       id="path6762"
+       d="M 987.66644,175.90354 C 1017.9265,190.72545 1011.9678,256.22419 992.20161,278.32007"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cs"
+       id="path6764"
+       d="M 987.66644,154.48504 C 1017.9265,169.30695 1011.9678,256.22419 992.20161,278.32007"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cs"
+       id="path6766"
+       d="M 987.66644,133.06654 C 1017.9265,147.88845 1011.9678,256.22419 992.20161,278.32007"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cs"
+       id="path6768"
+       d="M 987.66644,110.85476 C 1017.9265,125.67667 1011.9678,256.22419 992.20161,278.32007"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cs"
+       id="path6770"
+       d="M 987.66644,88.642989 C 1017.9265,103.4649 1011.9678,256.22419 992.20161,278.32007"
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <text
+       xml:space="preserve"
+       style="font-size:11.42314053px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       x="851.27936"
+       y="529.85828"
+       id="text6785"
+       sodipodi:linespacing="100%"><tspan
+         id="tspan6791"
+         sodipodi:role="line"
+         x="851.27936"
+         y="529.85828">Register the predefined</tspan><tspan
+         sodipodi:role="line"
+         x="851.27936"
+         y="541.28142"
+         id="tspan6800">&quot;On Operational State&quot; callback.</tspan></text>
+    <text
+       sodipodi:linespacing="100%"
+       id="text6804"
+       y="601.85828"
+       x="757.27936"
+       style="font-size:11.42314053px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         id="tspan6808"
+         y="601.85828"
+         x="757.27936"
+         sodipodi:role="line">Start the scheduler with InitNode as the first</tspan><tspan
+         y="613.28142"
+         x="757.27936"
+         sodipodi:role="line"
+         id="tspan6812">scheduled function call.</tspan></text>
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 967.14579,220.52677 C 991.41355,213.9215 964.05968,86.919629 959.18694,82.040011 C 896.38411,19.148526 571.25806,132.9419 379.06207,93.795141"
+       id="path6816"
+       sodipodi:nodetypes="csc" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 967.14579,195.14188 C 991.41355,188.53661 963.04372,74.466946 958.34554,69.41904"
+       id="path6818"
+       sodipodi:nodetypes="cs" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 967.14579,176.10322 C 991.41355,169.49795 963.04372,74.466946 958.34554,69.41904"
+       id="path6820"
+       sodipodi:nodetypes="cs" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 967.14579,153.09817 C 991.41355,146.4929 963.04372,74.466946 958.34554,69.41904"
+       id="path6822"
+       sodipodi:nodetypes="cs" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 967.14579,131.67967 C 991.41355,125.0744 963.04372,74.466946 958.34554,69.41904"
+       id="path6824"
+       sodipodi:nodetypes="cs" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 967.14579,110.26117 C 991.41355,103.6559 963.04372,74.466946 958.34554,69.41904"
+       id="path6826"
+       sodipodi:nodetypes="cs" />
+    <path
+       style="opacity:1;color:#ff0000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 967.14579,89.635949 C 991.41355,83.030679 963.04372,74.466946 958.34554,69.41904"
+       id="path6828"
+       sodipodi:nodetypes="cs" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text7799"
+       y="647.98663"
+       x="934.95795"
+       style="font-size:22.45409584px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         y="647.98663"
+         x="938.53218"
+         sodipodi:role="line"
+         id="tspan8772">Always surround </tspan><tspan
+         y="670.44073"
+         x="934.95794"
+         sodipodi:role="line"
+         id="tspan8782">satck calls with</tspan><tspan
+         y="692.89482"
+         x="934.95795"
+         sodipodi:role="line"
+         id="tspan8778">EnterMutex()</tspan><tspan
+         y="715.34892"
+         x="938.53218"
+         sodipodi:role="line"
+         id="tspan8780">LeaveMutex() </tspan><tspan
+         y="737.80302"
+         x="934.95795"
+         sodipodi:role="line"
+         id="tspan8776" /></text>
+    <path
+       sodipodi:type="star"
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:15.60000038;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0999999;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path8784"
+       sodipodi:sides="3"
+       sodipodi:cx="87.505402"
+       sodipodi:cy="594.88654"
+       sodipodi:r1="80.782005"
+       sodipodi:r2="40.391003"
+       sodipodi:arg1="0.52359878"
+       sodipodi:arg2="1.5707963"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 157.46467,635.27754 L 87.505403,635.27754 L 17.546133,635.27754 L 52.525767,574.69104 L 87.505402,514.10453 L 122.48504,574.69103 L 157.46467,635.27754 z "
+       transform="matrix(0.6104602,0,0,0.6104602,751.66073,326.06345)" />
+    <text
+       xml:space="preserve"
+       style="font-size:48px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="795.45819"
+       y="702.97998"
+       id="text8786"><tspan
+         sodipodi:role="line"
+         id="tspan8788"
+         x="795.45819"
+         y="702.97998">!</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 713.22509,608.90986 L 756.97779,603.86147"
+       id="path8795"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9766"
+       d="M 821.22509,532.90986 L 850.11309,530.1052"
+       style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text9768"
+       y="497.85828"
+       x="851.27936"
+       style="font-size:11.42314053px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         id="tspan9772"
+         y="497.85828"
+         x="851.27936"
+         sodipodi:role="line">Load the CAN interface</tspan><tspan
+         y="509.28142"
+         x="851.27936"
+         sodipodi:role="line"
+         id="tspan9778">dynamic linking library (optional)</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 808.32365,504.27545 L 850.11309,498.1052"
+       id="path9774"
+       sodipodi:nodetypes="cc" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text9780"
+       y="557.85828"
+       x="851.27936"
+       style="font-size:11.42314053px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         id="tspan9784"
+         y="557.85828"
+         x="851.27936"
+         sodipodi:role="line">Open Can poard and associate</tspan><tspan
+         y="569.28142"
+         x="851.27936"
+         sodipodi:role="line"
+         id="tspan9790">it with the CanOpen node.</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 797.66594,569.88477 L 850.11309,558.1052"
+       id="path9786"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:40.09508514px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="179.44179"
+       y="592.98749"
+       id="text10765"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         x="185.82411"
+         y="592.98749"
+         id="tspan10782">CanFestival </tspan><tspan
+         sodipodi:role="line"
+         x="185.82411"
+         y="633.08257"
+         id="tspan10812">integration with </tspan><tspan
+         sodipodi:role="line"
+         x="185.8241"
+         y="673.17766"
+         id="tspan10818">Unix and win32 </tspan><tspan
+         sodipodi:role="line"
+         x="179.44179"
+         y="713.27274"
+         id="tspan10820">OS</tspan></text>
+  </g>
+</svg>
Binary file doc/canfestival_OSless.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/canfestival_OSless.svg	Fri Apr 06 16:49:28 2007 +0200
@@ -0,0 +1,661 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="841.88977pt"
+   height="595.27557pt"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45"
+   sodipodi:docbase="/home/edouard/workspace/CanFestival-3/doc"
+   sodipodi:docname="canfestival_OSless.svg"
+   version="1.0"
+   inkscape:export-filename="canfestival_CAN.png"
+   inkscape:export-xdpi="87.57"
+   inkscape:export-ydpi="87.57"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="TRUE">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path4060"
+         style="font-size:12px;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;">
+      <path
+         id="path4054"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3695"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3698"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.8)" />
+    </marker>
+    <linearGradient
+       id="linearGradient10920">
+      <stop
+         id="stop10922"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop10924"
+         offset="1"
+         style="stop-color:#88873c;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2182">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2184" />
+      <stop
+         style="stop-color:#48883c;stop-opacity:1;"
+         offset="1"
+         id="stop2186" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.6302963"
+     inkscape:cx="819.24193"
+     inkscape:cy="324.99316"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1592"
+     inkscape:window-height="965"
+     inkscape:window-x="80"
+     inkscape:window-y="0"
+     showgrid="false"
+     gridspacingy="1cm"
+     gridspacingx="1cm"
+     gridoriginy="0cm"
+     gridoriginx="0cm"
+     inkscape:grid-points="true"
+     gridtolerance="0.1cm">
+    <sodipodi:guide
+       orientation="vertical"
+       position="753.6122"
+       id="guide6590" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="388.30944"
+       id="guide6592" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <text
+       xml:space="preserve"
+       style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="544.9906"
+       y="55.346416"
+       id="text12903"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan12905"
+         x="544.9906"
+         y="55.346416">CanFestival interface to target</tspan><tspan
+         sodipodi:role="line"
+         x="544.9906"
+         y="103.34642"
+         id="tspan6734">(on OS-less targets)</tspan></text>
+    <g
+       transform="matrix(1.1821592,0,0,1.1821592,-22.002342,-290.94663)"
+       id="use6032"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87">
+      <rect
+         style="color:#000000;fill:#4c9d40;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.34227753;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2749"
+         width="230.30719"
+         height="285.17609"
+         x="482.46152"
+         y="431.26938"
+         ry="24.502588"
+         rx="30.302513" />
+      <rect
+         rx="5.0717049"
+         ry="6.247427"
+         y="647.02209"
+         x="604.57062"
+         height="22.156359"
+         width="97.684883"
+         id="rect2751"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <g
+         transform="translate(-105.8393,395.4256)"
+         id="g2753">
+        <rect
+           rx="12.494854"
+           style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.8750006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           id="rect2755"
+           width="183.69043"
+           height="75.672546"
+           x="501.7005"
+           y="183.25035"
+           ry="12.494862" />
+        <text
+           xml:space="preserve"
+           style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+           x="593.54962"
+           y="201.93582"
+           id="text2757"
+           sodipodi:linespacing="100%"><tspan
+             sodipodi:role="line"
+             x="593.54962"
+             y="201.93582"
+             id="tspan2759">SCHEDULING</tspan><tspan
+             sodipodi:role="line"
+             x="593.54962"
+             y="217.93582"
+             id="tspan2761">timer.c</tspan><tspan
+             sodipodi:role="line"
+             x="593.54962"
+             y="233.93582"
+             id="tspan2763" /><tspan
+             sodipodi:role="line"
+             x="593.54962"
+             y="249.93582"
+             id="tspan2765">TimeDispatch</tspan></text>
+      </g>
+      <text
+         sodipodi:linespacing="100%"
+         id="text2767"
+         y="453.71832"
+         x="596.70605"
+         style="font-size:16.62873268px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="453.71832"
+           x="596.70605"
+           id="tspan2769"
+           sodipodi:role="line">CanFestival Library</tspan></text>
+      <rect
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2771"
+         width="97.684883"
+         height="22.156359"
+         x="604.57062"
+         y="618.47668"
+         ry="6.247427"
+         rx="5.0717049" />
+      <rect
+         rx="5.0717049"
+         ry="6.247427"
+         y="589.93121"
+         x="604.57062"
+         height="22.156359"
+         width="97.684883"
+         id="rect2773"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2775"
+         width="97.684883"
+         height="22.156359"
+         x="604.57062"
+         y="561.38574"
+         ry="6.247427"
+         rx="5.0717049" />
+      <path
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999911;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 671.86254,652.97067 L 640.82703,643.16673 L 645.22217,650.61744 L 614.18669,640.81358 L 618.58179,648.26435 L 587.54633,638.46044 L 591.94145,645.91116 L 560.90597,636.10729"
+         id="path2777"
+         sodipodi:nodetypes="cccccccc" />
+      <path
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999928;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 672.46736,630.30537 L 640.09689,626.91783 L 645.89557,633.33704 L 613.52526,629.94953 L 619.32393,636.3687 L 586.95356,632.98119 L 592.75221,639.40037 L 560.38185,636.01282"
+         id="path2779"
+         sodipodi:nodetypes="cccccccc" />
+      <rect
+         ry="30.302544"
+         y="463.1806"
+         x="737.41772"
+         height="242.03027"
+         width="151.22868"
+         id="rect2781"
+         style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.34228134;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="30.302513" />
+      <text
+         xml:space="preserve"
+         style="font-size:16.62873268px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+         x="816.53412"
+         y="486.68628"
+         id="text2783"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="816.53412"
+           y="486.68628"
+           id="tspan2785">Application</tspan></text>
+      <g
+         id="g2787"
+         transform="translate(252.5741,337.1441)">
+        <rect
+           ry="12.494854"
+           y="183.78499"
+           x="501.54193"
+           height="61.490883"
+           width="114.01698"
+           id="rect2789"
+           style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           rx="12.494858" />
+        <text
+           sodipodi:linespacing="100%"
+           id="text2791"
+           y="219.93582"
+           x="557.54962"
+           style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+           xml:space="preserve"><tspan
+             id="tspan2793"
+             y="219.93582"
+             x="557.54962"
+             sodipodi:role="line">Callbacks</tspan></text>
+      </g>
+      <path
+         sodipodi:nodetypes="cccccccc"
+         id="path2795"
+         d="M 768.23972,566.50754 L 705.85794,578.18206 L 720.55675,585.16803 L 658.17528,596.84252 L 672.87404,603.82843 L 610.49247,615.50297 L 625.19117,622.48891 L 562.80959,634.16337"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.9999994;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <g
+         id="g2797"
+         transform="translate(-105.8393,295.4256)">
+        <rect
+           ry="12.494852"
+           y="183.33594"
+           x="501.7005"
+           height="91.768173"
+           width="183.69043"
+           id="rect2799"
+           style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.875;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           rx="12.494854" />
+        <text
+           sodipodi:linespacing="100%"
+           id="text2801"
+           y="201.93582"
+           x="593.54962"
+           style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+           xml:space="preserve"><tspan
+             id="tspan2803"
+             y="201.93582"
+             x="593.54962"
+             sodipodi:role="line">CAN</tspan><tspan
+             y="217.93582"
+             x="593.54962"
+             sodipodi:role="line"
+             id="tspan2805">DISPATCHING</tspan><tspan
+             y="233.93582"
+             x="593.54962"
+             sodipodi:role="line"
+             id="tspan2807">states.c</tspan><tspan
+             y="249.93582"
+             x="593.54962"
+             sodipodi:role="line"
+             id="tspan2809" /><tspan
+             y="265.93582"
+             x="593.54962"
+             sodipodi:role="line"
+             id="tspan2811">canDispatch</tspan></text>
+      </g>
+      <rect
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2813"
+         width="97.684883"
+         height="22.156359"
+         x="604.57062"
+         y="-526.45117"
+         ry="6.247427"
+         rx="5.0717049"
+         transform="scale(1,-1)" />
+      <rect
+         rx="5.0717049"
+         ry="6.247427"
+         y="-554.9967"
+         x="604.57062"
+         height="22.156359"
+         width="97.684883"
+         id="rect2815"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         transform="scale(1,-1)" />
+      <rect
+         rx="5.0717049"
+         ry="6.247427"
+         y="-497.90576"
+         x="604.57062"
+         height="22.156359"
+         width="97.684883"
+         id="rect2817"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87500072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         transform="scale(1,-1)" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         id="path2819"
+         d="M 659.87914,528.52929 L 629.88686,541.16981 L 633.57193,533.34352 L 603.57965,545.98396 L 607.26468,538.15763 L 577.27244,550.79811 L 580.95748,542.97183 L 550.96522,555.61227"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999899;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999899;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 650.06632,499.72944 L 624.5413,519.92334 L 626.00153,511.39702 L 600.4765,531.59082 L 601.93667,523.06446 L 576.41168,543.25831 L 577.87188,534.73199 L 552.34686,554.9258"
+         id="path2821"
+         sodipodi:nodetypes="cccccccc" />
+      <path
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999911;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 771.36198,535.02148 L 707.94331,532.60242 L 720.73184,542.66783 L 657.31348,540.24882 L 670.10197,550.31415 L 606.68351,547.89515 L 619.47194,557.96051 L 556.05348,555.54144"
+         id="path2823"
+         sodipodi:nodetypes="cccccccc" />
+    </g>
+    <rect
+       ry="35.822411"
+       y="190.47337"
+       x="30.685579"
+       height="348.25095"
+       width="379.62906"
+       id="rect6034"
+       style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.13326883;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       rx="35.822426"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87" />
+    <text
+       xml:space="preserve"
+       style="font-size:19.65781021px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       x="230.63826"
+       y="213.4771"
+       id="text6036"
+       sodipodi:linespacing="100%"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87"><tspan
+         id="tspan6038"
+         sodipodi:role="line"
+         x="230.63826"
+         y="213.4771">HW interfaces (for µC)</tspan></text>
+    <g
+       id="g6040"
+       transform="matrix(1.1821592,0,0,1.1821592,18.093542,-193.74028)"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87">
+      <rect
+         ry="16.941456"
+         y="354.06866"
+         x="36.736599"
+         height="123.85986"
+         width="183.69043"
+         id="rect6042"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499905;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="16.941881" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text6044"
+         y="376.4429"
+         x="128.57401"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan6046"
+           y="376.4429"
+           x="128.57401"
+           sodipodi:role="line">CAN DRIVER</tspan><tspan
+           id="tspan6048"
+           y="392.4429"
+           x="128.57401"
+           sodipodi:role="line">INTERFACE</tspan><tspan
+           id="tspan6050"
+           y="408.4429"
+           x="128.57401"
+           sodipodi:role="line">(can_xxx.c)</tspan><tspan
+           id="tspan6052"
+           y="424.4429"
+           x="128.57401"
+           sodipodi:role="line" /><tspan
+           id="tspan6054"
+           y="440.4429"
+           x="128.57401"
+           sodipodi:role="line">canSend</tspan><tspan
+           id="tspan6056"
+           y="456.4429"
+           x="128.57401"
+           sodipodi:role="line" /><tspan
+           id="tspan6058"
+           y="472.4429"
+           x="128.57401"
+           sodipodi:role="line">canReceiveLoop</tspan></text>
+    </g>
+    <g
+       transform="matrix(1.1821592,0,0,1.1821592,18.093542,-102.86592)"
+       id="g6060"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87">
+      <rect
+         rx="16.941881"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499869;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6062"
+         width="183.69043"
+         height="122.74969"
+         x="36.736599"
+         y="409.03406"
+         ry="16.941448" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="128.57401"
+         y="426.4429"
+         id="text6064"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="426.4429"
+           id="tspan6066">SYSTEM TIMERS</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="442.4429"
+           id="tspan6068">INTERFACE</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="458.4429"
+           id="tspan6070">(timers_xxx.c)</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="474.4429"
+           id="tspan6072" /><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="490.4429"
+           id="tspan6078">CreateReceiveTask</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="506.4429"
+           id="tspan7029" /><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="522.4429"
+           id="tspan7031">TimerLoop</tspan></text>
+    </g>
+    <g
+       transform="matrix(1.1821592,0,0,1.1821592,230.88221,-230.53912)"
+       id="g6088"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87">
+      <rect
+         rx="16.941881"
+         style="color:#000000;fill:#6ce065;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6090"
+         width="91.845215"
+         height="88.572678"
+         x="46.65921"
+         y="398.63705"
+         ry="16.94146" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="94.574013"
+         y="432.4429"
+         id="text6092"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           x="94.574013"
+           y="432.4429"
+           id="tspan6094">CAN</tspan><tspan
+           id="tspan6096"
+           sodipodi:role="line"
+           x="94.574013"
+           y="448.4429">receive</tspan><tspan
+           id="tspan6098"
+           sodipodi:role="line"
+           x="94.574013"
+           y="464.4429">IRQ</tspan></text>
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path6100"
+       d="M 250.75623,358.1612 C 266.42333,291.76685 290.94703,263.77378 307.3877,320.94216"
+       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.18215942;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path6102"
+       d="M 383.33328,310.1448 L 423.74719,314.80381 L 418.17769,302.49504 L 455.85971,315.1131 L 454.41495,299.80317 L 486.91842,322.6985"
+       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.18215919;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87" />
+    <g
+       id="g6104"
+       transform="matrix(1.1821592,0,0,1.1821592,230.88221,-65.036825)"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87">
+      <rect
+         ry="16.94146"
+         y="398.63705"
+         x="46.65921"
+         height="88.572678"
+         width="91.845215"
+         id="rect6106"
+         style="color:#000000;fill:#6ce065;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="16.941881" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text6108"
+         y="438.4429"
+         x="94.574013"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           id="tspan6110"
+           y="438.4429"
+           x="94.574013"
+           sodipodi:role="line">TIMER</tspan><tspan
+           y="454.4429"
+           x="94.574013"
+           sodipodi:role="line"
+           id="tspan6114">IRQ</tspan></text>
+    </g>
+    <path
+       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.18215919;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 383.33328,428.36072 L 423.74719,433.01973 L 418.17769,420.71096 L 455.85971,433.32902 L 454.41495,418.01909 L 486.91842,440.91442"
+       id="path6124"
+       sodipodi:nodetypes="cccccc"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87" />
+    <path
+       style="opacity:1;color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.18215942;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 240.98347,512.45635 C 259.90816,432.56811 302.89151,447.04848 308.47356,464.37868"
+       id="path6126"
+       sodipodi:nodetypes="cc"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87" />
+    <path
+       sodipodi:type="star"
+       style="opacity:1;color:#000000;fill:#e06565;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.54594374;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6152"
+       sodipodi:sides="3"
+       sodipodi:cx="360.98669"
+       sodipodi:cy="199.39957"
+       sodipodi:r1="41.588718"
+       sodipodi:r2="20.794359"
+       sodipodi:arg1="0.53284389"
+       sodipodi:arg2="1.5800414"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 396.8098,220.52601 L 360.79445,220.19304 L 324.7791,219.86006 L 343.07514,188.83634 L 361.37118,157.81263 L 379.09049,189.16932 L 396.8098,220.52601 z "
+       transform="matrix(0.5413462,-0.3125475,-0.3125475,-0.5413462,211.30009,595.96004)"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffff00;stroke-width:2.36431837;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.36431839, 4.72863679;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 340.99283,345.3082 L 340.99283,407.20233"
+       id="path6154"
+       inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_OSless.png"
+       inkscape:export-xdpi="87"
+       inkscape:export-ydpi="87" />
+  </g>
+</svg>
Binary file doc/canfestival_overview.png has changed
--- a/doc/canfestival_overview.svg	Thu Apr 05 10:06:11 2007 +0200
+++ b/doc/canfestival_overview.svg	Fri Apr 06 16:49:28 2007 +0200
@@ -7,19 +7,21 @@
    xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    width="841.88977pt"
    height="595.27557pt"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.43"
-   sodipodi:docbase="/home/edouard/taf/Pim/workspace_edouard/CanFestival-3/doc"
+   inkscape:version="0.45"
+   sodipodi:docbase="/home/edouard/workspace/CanFestival-3/doc"
    sodipodi:docname="canfestival_overview.svg"
    version="1.0"
-   inkscape:export-filename="canfestival_overview.png"
+   inkscape:export-filename="/home/edouard/workspace/CanFestival-3/doc/canfestival_overview.png"
    inkscape:export-xdpi="87.57"
-   inkscape:export-ydpi="87.57">
+   inkscape:export-ydpi="87.57"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
   <defs
      id="defs4">
     <linearGradient
@@ -52,15 +54,15 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="0.7"
-     inkscape:cx="451.09125"
-     inkscape:cy="248.53898"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="249.67273"
+     inkscape:cy="390.99214"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showguides="true"
      inkscape:guide-bbox="true"
-     inkscape:window-width="1592"
-     inkscape:window-height="1109"
+     inkscape:window-width="1672"
+     inkscape:window-height="965"
      inkscape:window-x="0"
      inkscape:window-y="0" />
   <metadata
@@ -78,6 +80,16 @@
      inkscape:label="Calque 1"
      inkscape:groupmode="layer"
      id="layer1">
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2474"
+       d="M 10.508418,492.62359 L 18.310526,505.17437 L 22.431313,490.98232"
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#f30000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path2476"
+       d="M 44.39517,382.36341 C -10.321738,472.35723 28.583493,546.94488 44.39516,625.33274"
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#f30000;stroke-width:4.00000095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
     <rect
        ry="71.644768"
        y="82.979507"
@@ -152,10 +164,19 @@
        style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.34228039;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
        id="rect12909"
        width="198.62337"
-       height="629.59943"
+       height="193.88516"
        x="17.516184"
-       y="83.033966"
+       y="518.74823"
        ry="71.644791" />
+    <rect
+       ry="71.644791"
+       y="88.748253"
+       x="17.516184"
+       height="366.74231"
+       width="198.62337"
+       id="rect2426"
+       style="color:#000000;fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.34228039;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       rx="71.644852" />
     <text
        sodipodi:linespacing="100%"
        id="text12911"
@@ -166,11 +187,11 @@
          id="tspan12915"
          y="120.68625"
          x="116.83569"
-         sodipodi:role="line">HW</tspan><tspan
+         sodipodi:role="line">Target</tspan><tspan
          y="152.68625"
          x="116.83569"
          sodipodi:role="line"
-         id="tspan12931">interfaces</tspan></text>
+         id="tspan12931">interface</tspan></text>
     <rect
        style="color:#000000;fill:#4c9d40;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.342278;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
        id="rect1307"
@@ -287,43 +308,6 @@
        id="path14818"
        d="M 813.74257,664.52305 L 624.82375,664.52305 L 624.82376,195.16589"
        style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#cbcbcb;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       id="path10021"
-       d="M 240.53386,430.81304 L 208.79172,430.81304"
-       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#d5d5d5;stroke-width:3.99999809;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:nodetypes="cc" />
-    <g
-       id="g4148"
-       transform="translate(-259.7932,217.8507)">
-      <rect
-         ry="14.770906"
-         y="189.95525"
-         x="501.7005"
-         height="44.312717"
-         width="183.69043"
-         id="rect2190"
-         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.875;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         rx="14.770906" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text2243"
-         y="193.93582"
-         x="593.54962"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="193.93582"
-           x="593.54962"
-           id="tspan2245"
-           sodipodi:role="line" /><tspan
-           id="tspan2247"
-           y="209.93582"
-           x="593.54962"
-           sodipodi:role="line">SCHEDULING</tspan><tspan
-           id="tspan2249"
-           y="225.93582"
-           x="593.54962"
-           sodipodi:role="line">timer.c</tspan></text>
-    </g>
     <g
        id="g4155"
        transform="translate(60.20684,-100.7207)">
@@ -357,25 +341,6 @@
            id="tspan2259">objaccess.c</tspan></text>
     </g>
     <text
-       xml:space="preserve"
-       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="334.53381"
-       y="286.68625"
-       id="text5088"
-       sodipodi:linespacing="100%"><tspan
-         sodipodi:role="line"
-         id="tspan5090"
-         x="334.53381"
-         y="286.68625">Hardware</tspan><tspan
-         sodipodi:role="line"
-         x="334.53381"
-         y="306.68625"
-         id="tspan6019">Abstaction</tspan><tspan
-         sodipodi:role="line"
-         x="334.53381"
-         y="326.68625"
-         id="tspan6021">Layer</tspan></text>
-    <text
        sodipodi:linespacing="100%"
        id="text6009"
        y="118.68625"
@@ -411,7 +376,7 @@
     <path
        sodipodi:nodetypes="cccc"
        id="path7024"
-       d="M 506.65893,248.52305 L 455.36887,248.52305 L 455.36887,341.09448 L 202.46824,341.09448"
+       d="M 506.65893,248.52305 L 455.36887,248.52305 L 455.36887,301.09448 L 188.46824,301.09448"
        style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffb6b6;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
     <path
        style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffb6b6;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
@@ -493,7 +458,7 @@
     <path
        sodipodi:nodetypes="cc"
        id="path8774"
-       d="M 455.85521,355.23734 L 455.85521,594.52305"
+       d="M 455.85521,315.23734 L 455.85521,594.52305"
        style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bdb6ff;stroke-width:4.00000048;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
     <path
        sodipodi:nodetypes="cc"
@@ -512,7 +477,7 @@
        id="path8780" />
     <path
        style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bdb6ff;stroke-width:4.00000095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 515.01269,355.09447 L 206.04336,355.09447"
+       d="M 515.01269,355.09447 L 456.04336,355.09447"
        id="path8786"
        sodipodi:nodetypes="cc" />
     <g
@@ -643,254 +608,6 @@
            x="619.96844"
            sodipodi:role="line">sync.c</tspan></text>
     </g>
-    <g
-       id="g8884"
-       transform="translate(-10.82926,88.57142)">
-      <rect
-         ry="20.027502"
-         y="231.34967"
-         x="36.736599"
-         height="60.0825"
-         width="183.69043"
-         id="rect19040"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         rx="20.028" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="128.57401"
-         y="232.4429"
-         id="text8812"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           id="tspan8814"
-           x="128.57401"
-           y="232.4429" /><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="248.4429"
-           id="tspan8816">CAN DRIVER</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="264.4429"
-           id="tspan8820">INTERFACE</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="280.4429"
-           id="tspan8818">can_xxx.c</tspan></text>
-      <text
-         sodipodi:linespacing="100%"
-         id="text8822"
-         y="246.4429"
-         x="204.57401"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="246.4429"
-           x="204.57401"
-           id="tspan8824"
-           sodipodi:role="line" /><tspan
-           id="tspan8830"
-           y="254.4429"
-           x="204.57401"
-           sodipodi:role="line">RCV</tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="204.57401"
-         y="264.4429"
-         id="text8836"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           id="tspan8838"
-           x="204.57401"
-           y="264.4429" /><tspan
-           sodipodi:role="line"
-           x="204.57401"
-           y="272.4429"
-           id="tspan8840">TRS</tspan></text>
-    </g>
-    <g
-       id="g8898"
-       transform="translate(-10.82926,45.57037)">
-      <rect
-         ry="20.027502"
-         y="354.35071"
-         x="36.736599"
-         height="60.0825"
-         width="183.69043"
-         id="rect8842"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         rx="20.028" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text8844"
-         y="356.4429"
-         x="128.57401"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="356.4429"
-           x="128.57401"
-           id="tspan8846"
-           sodipodi:role="line" /><tspan
-           id="tspan8848"
-           y="372.4429"
-           x="128.57401"
-           sodipodi:role="line">SYSTEM TIMERS</tspan><tspan
-           id="tspan8850"
-           y="388.4429"
-           x="128.57401"
-           sodipodi:role="line">INTERFACE</tspan><tspan
-           id="tspan8852"
-           y="404.4429"
-           x="128.57401"
-           sodipodi:role="line">timers_xxx.c</tspan></text>
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#d5d5d5;stroke-width:3.99999809;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 240.53386,510.81304 L 208.79172,510.81304"
-       id="path10016" />
-    <g
-       transform="translate(-259.7932,137.8507)"
-       id="g5965">
-      <rect
-         rx="14.770906"
-         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.875;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect5967"
-         width="183.69043"
-         height="44.312717"
-         x="501.7005"
-         y="349.95526"
-         ry="14.770906" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="593.54962"
-         y="353.93582"
-         id="text5969"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           id="tspan5971"
-           x="593.54962"
-           y="353.93582" /><tspan
-           sodipodi:role="line"
-           x="593.54962"
-           y="369.93582"
-           id="tspan5973">PERSITANT STORAGE</tspan><tspan
-           sodipodi:role="line"
-           x="593.54962"
-           y="385.93582"
-           id="tspan5975">nvram.c</tspan></text>
-    </g>
-    <path
-       id="path10019"
-       d="M 240.53386,590.81304 L 208.79172,590.81304"
-       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#d5d5d5;stroke-width:3.99999809;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:nodetypes="cc" />
-    <g
-       id="g5977"
-       transform="translate(-259.7932,217.8507)">
-      <rect
-         rx="14.770906"
-         ry="14.770906"
-         y="349.95526"
-         x="501.7005"
-         height="44.312717"
-         width="183.69043"
-         id="rect5979"
-         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.875;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text5981"
-         y="353.93582"
-         x="593.54962"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="353.93582"
-           x="593.54962"
-           id="tspan5983"
-           sodipodi:role="line" /><tspan
-           id="tspan5985"
-           y="369.93582"
-           x="593.54962"
-           sodipodi:role="line">LED INDICATORS</tspan><tspan
-           id="tspan5987"
-           y="385.93582"
-           x="593.54962"
-           sodipodi:role="line">led.c</tspan></text>
-    </g>
-    <g
-       transform="translate(-10.82926,125.5703)"
-       id="g8906">
-      <rect
-         rx="20.027502"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect8908"
-         width="183.69043"
-         height="60.0825"
-         x="36.736599"
-         y="354.35071"
-         ry="20.027502" />
-      <text
-         xml:space="preserve"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         x="128.57401"
-         y="356.4429"
-         id="text8910"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           id="tspan8912"
-           x="128.57401"
-           y="356.4429" /><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="372.4429"
-           id="tspan8916">PERSISTANT</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="388.4429"
-           id="tspan17441">STORAGE INTERFACE</tspan><tspan
-           sodipodi:role="line"
-           x="128.57401"
-           y="404.4429"
-           id="tspan8918">nvram_xxx.c</tspan></text>
-    </g>
-    <g
-       id="g8920"
-       transform="translate(-10.82926,205.5704)">
-      <rect
-         rx="20.027502"
-         ry="20.027502"
-         y="354.35071"
-         x="36.736599"
-         height="60.0825"
-         width="183.69043"
-         id="rect8922"
-         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <text
-         sodipodi:linespacing="100%"
-         id="text8924"
-         y="356.4429"
-         x="128.57401"
-         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="356.4429"
-           x="128.57401"
-           id="tspan8926"
-           sodipodi:role="line" /><tspan
-           id="tspan8930"
-           y="372.4429"
-           x="128.57401"
-           sodipodi:role="line">LED</tspan><tspan
-           y="388.4429"
-           x="128.57401"
-           sodipodi:role="line"
-           id="tspan17445">INTERFACE</tspan><tspan
-           id="tspan8932"
-           y="404.4429"
-           x="128.57401"
-           sodipodi:role="line">led_xxx.c</tspan></text>
-    </g>
     <path
        id="path8782"
        d="M 509.04698,595.23734 L 455.85521,595.23734"
@@ -950,7 +667,7 @@
          id="tspan10987">(master/slave)</tspan></text>
     <path
        style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffb6b6;stroke-width:4.00000477;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 368.88653,347.1123 L 382.38404,341.09463 L 368.88653,335.07698"
+       d="M 368.88653,307.1123 L 382.38404,301.09463 L 368.88653,295.07698"
        id="path14812"
        sodipodi:nodetypes="ccc" />
     <path
@@ -961,54 +678,27 @@
     <path
        sodipodi:nodetypes="ccc"
        id="path14816"
-       d="M 337.84788,349.11112 L 324.35037,355.12879 L 337.84789,361.14645"
+       d="M 337.84788,309.11112 L 324.35037,315.12879 L 337.84789,321.14645"
        style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bdb6ff;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
     <text
-       sodipodi:linespacing="100%"
-       id="text17791"
-       y="178.68625"
-       x="26.533813"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       xml:space="preserve"><tspan
-         sodipodi:role="line"
-         id="tspan17836"
-         x="26.533813"
-         y="178.68625">Optional:</tspan><tspan
-         sodipodi:role="line"
-         id="tspan17838"
-         x="26.533813"
-         y="190.68625">- NVRAM</tspan><tspan
-         sodipodi:role="line"
-         id="tspan17840"
-         x="26.533813"
-         y="202.68625">- LED</tspan><tspan
-         sodipodi:role="line"
-         id="tspan17842"
-         x="26.533813"
-         y="214.68625">- CAN LSS support</tspan><tspan
-         sodipodi:role="line"
-         id="tspan17844"
-         x="26.533813"
-         y="226.68625" /><tspan
-         sodipodi:role="line"
-         id="tspan17846"
-         x="26.533813"
-         y="238.68625">Interfaces can be provided</tspan><tspan
-         sodipodi:role="line"
-         id="tspan17848"
-         x="26.533813"
-         y="250.68625">directly by application.</tspan></text>
-    <text
        xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="36.533813"
-       y="662.68628"
+       style="font-size:10.40019226px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="117.68457"
+       y="660.26733"
        id="text17850"
        sodipodi:linespacing="100%"><tspan
-         y="662.68628"
-         x="36.533813"
+         y="660.26733"
+         x="117.68457"
          id="tspan17864"
-         sodipodi:role="line">libcanfestival_$(TARGET).a</tspan></text>
+         sodipodi:role="line">libcanfestival_$(CAN_DRIVER).so</tspan><tspan
+         y="670.66753"
+         x="117.68457"
+         sodipodi:role="line"
+         id="tspan2438">$(CAN_DRIVER).dll,</tspan><tspan
+         y="681.06772"
+         x="117.68457"
+         sodipodi:role="line"
+         id="tspan2440">cyg$(CAN_DRIVER).dll</tspan></text>
     <text
        sodipodi:linespacing="100%"
        id="text17893"
@@ -1029,17 +719,22 @@
        y="182.44966" />
     <flowRoot
        xml:space="preserve"
-       style="font-size:12;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       id="flowRoot18801"><flowRegion
+       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="flowRoot18801"
+       transform="translate(0,-10)"><flowRegion
          id="flowRegion18803"><use
            x="0"
            y="0"
            xlink:href="#rect17926"
-           id="use18805" /></flowRegion><flowPara
+           id="use18805"
+           width="1052.3622"
+           height="744.09448" /></flowRegion><flowPara
          id="flowPara18809">Mandatory:</flowPara><flowPara
-         id="flowPara18811">- Declare nodes callbacks</flowPara><flowPara
          id="flowPara18813">- Open CAN interfaces</flowPara><flowPara
          id="flowPara18815">- Initiate TImers</flowPara><flowPara
+         id="flowPara2375" /><flowPara
+         id="flowPara2377">Optional:</flowPara><flowPara
+         id="flowPara2381">- Declare some callbacks</flowPara><flowPara
          id="flowPara18817" /><flowPara
          id="flowPara18819">Each call to the CanFestival API provide a pointer to the related node's CO_Data struct.</flowPara><flowPara
          id="flowPara18821" /><flowPara
@@ -1207,5 +902,252 @@
            sodipodi:role="line"
            style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">opened.</tspan></text>
     </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path2394"
+       d="M 455.01269,315.09447 L 192.04336,315.09447"
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bdb6ff;stroke-width:4.00000095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#d5d5d5;stroke-width:3.99999809;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 240.53386,230.81304 L 208.79172,230.81304"
+       id="path2396" />
+    <g
+       transform="translate(-259.7932,17.8507)"
+       id="g2398">
+      <rect
+         rx="14.770906"
+         style="opacity:1;color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.875;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2400"
+         width="183.69043"
+         height="44.312717"
+         x="501.7005"
+         y="189.95525"
+         ry="14.770906" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="593.54962"
+         y="193.93582"
+         id="text2402"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           id="tspan2404"
+           x="593.54962"
+           y="193.93582" /><tspan
+           sodipodi:role="line"
+           x="593.54962"
+           y="209.93582"
+           id="tspan2406">SCHEDULING</tspan><tspan
+           sodipodi:role="line"
+           x="593.54962"
+           y="225.93582"
+           id="tspan2408">timer.c</tspan></text>
+    </g>
+    <g
+       transform="translate(-10.82926,-154.42963)"
+       id="g2410">
+      <rect
+         rx="20.028"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2412"
+         width="183.69043"
+         height="60.0825"
+         x="36.736599"
+         y="354.35071"
+         ry="20.027502" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="128.57401"
+         y="356.4429"
+         id="text2414"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           id="tspan2416"
+           x="128.57401"
+           y="356.4429" /><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="372.4429"
+           id="tspan2418">SYSTEM TIMERS</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="388.4429"
+           id="tspan2420">INTERFACE</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="404.4429"
+           id="tspan2422">timers_xxx.c</tspan></text>
+    </g>
+    <text
+       sodipodi:linespacing="100%"
+       id="text2428"
+       y="166.68628"
+       x="36.533813"
+       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan2430"
+         x="36.533813"
+         y="166.68628">libcanfestival_$(TARGET).a</tspan><tspan
+         sodipodi:role="line"
+         x="36.533813"
+         y="178.68628"
+         id="tspan2432">canfestival_$(TARGET).lib</tspan></text>
+    <path
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffb6b6;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 110.39517,382.00723 L 110.39518,628.90785"
+       id="path2466"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2468"
+       d="M 116.41299,480.48957 L 110.39532,466.99206 L 104.37768,480.48957"
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffb6b6;stroke-width:4.00000477;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bdb6ff;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 118.41182,491.52822 L 124.42949,505.02572 L 130.44715,491.52821"
+       id="path2470"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="color:#000000;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bdb6ff;stroke-width:4.00000095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 124.39517,382.36341 L 124.39516,625.33274"
+       id="path2472"
+       sodipodi:nodetypes="cc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect18831"
+       id="use2448"
+       transform="translate(-477.47549,101.80629)"
+       width="1052.3622"
+       height="744.09448" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text2450"
+       y="315.32974"
+       x="116.96068"
+       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         y="315.32974"
+         x="116.96068"
+         id="tspan2452"
+         sodipodi:role="line" /><tspan
+         id="tspan2456"
+         y="331.32974"
+         x="116.96068"
+         sodipodi:role="line">OS interface</tspan><tspan
+         y="347.32974"
+         x="116.96068"
+         sodipodi:role="line"
+         id="tspan2460">unix.c</tspan><tspan
+         y="363.32974"
+         x="116.96068"
+         sodipodi:role="line"
+         id="tspan2464">or</tspan><tspan
+         y="379.32974"
+         x="116.96068"
+         sodipodi:role="line"
+         id="tspan2462">win32.c</tspan></text>
+    <g
+       id="g8884"
+       transform="translate(-10.82926,355.42856)">
+      <rect
+         ry="20.027502"
+         y="231.34967"
+         x="36.736599"
+         height="60.0825"
+         width="183.69043"
+         id="rect19040"
+         style="color:#000000;fill:#efeeb1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.87499928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         rx="20.028" />
+      <text
+         xml:space="preserve"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="128.57401"
+         y="232.4429"
+         id="text8812"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           id="tspan8814"
+           x="128.57401"
+           y="232.4429" /><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="248.4429"
+           id="tspan8816">CAN DRIVER</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="264.4429"
+           id="tspan8820">INTERFACE</tspan><tspan
+           sodipodi:role="line"
+           x="128.57401"
+           y="280.4429"
+           id="tspan8818">can_xxx.c</tspan></text>
+      <text
+         sodipodi:linespacing="100%"
+         id="text8822"
+         y="246.4429"
+         x="204.57401"
+         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="246.4429"
+           x="204.57401"
+           id="tspan8824"
+           sodipodi:role="line" /><tspan
+           id="tspan8830"
+           y="254.4429"
+           x="204.57401"
+           sodipodi:role="line">RCV</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+         x="204.57401"
+         y="264.4429"
+         id="text8836"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           id="tspan8838"
+           x="204.57401"
+           y="264.4429" /><tspan
+           sodipodi:role="line"
+           x="204.57401"
+           y="272.4429"
+           id="tspan8840">TRS</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="116.83569"
+       y="546.68628"
+       id="text2442"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         x="116.83569"
+         y="546.68628"
+         id="tspan2444">CAN</tspan><tspan
+         id="tspan2446"
+         sodipodi:role="line"
+         x="116.83569"
+         y="578.68628">interface</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="23.39595"
+       y="480.36346"
+       id="text3447"><tspan
+         sodipodi:role="line"
+         id="tspan3449"
+         x="23.39595"
+         y="480.36346">Dynamicaly </tspan><tspan
+         sodipodi:role="line"
+         x="23.39595"
+         y="495.36346"
+         id="tspan3453">loaded</tspan><tspan
+         sodipodi:role="line"
+         x="23.39595"
+         y="510.36346"
+         id="tspan3451">or Linked</tspan></text>
   </g>
 </svg>
Binary file doc/manual/en/manual.odt has changed
Binary file doc/manual/en/manual.pdf has changed
--- a/drivers/generic/.cvsignore	Thu Apr 05 10:06:11 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Makefile
-*.a
--- a/drivers/generic/Makefile.in	Thu Apr 05 10:06:11 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-#! gmake
-
-#
-# Copyright (C) 2006 Laurent Bessard
-# 
-# This file is part of canfestival, a library implementing the canopen
-# stack
-# 
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-# 
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-# 
-
-CC = SUB_CC
-OPT_CFLAGS = -O2
-CFLAGS = SUB_OPT_CFLAGS
-PROG_CFLAGS = SUB_PROG_CFLAGS
-OS_NAME = SUB_OS_NAME
-ARCH_NAME = SUB_ARCH_NAME
-PREFIX = SUB_PREFIX
-TARGET = SUB_TARGET
-CAN_DRIVER = SUB_CAN_DRIVER
-TIMERS_DRIVER = SUB_TIMERS_DRIVER
-
-INCLUDES = -I../../include -I../../include/$(SUB_TARGET)
-
-OBJS = 
-
-# add timers driver if any
-ifneq ($(TIMERS_DRIVER),timers_)
-OBJS += ../$(TIMERS_DRIVER)/$(TIMERS_DRIVER).o
-endif
-
-# add can driver if any
-ifneq ($(CAN_DRIVER),can_)
-OBJS += ../$(CAN_DRIVER)/$(CAN_DRIVER).o
-endif
-
-SRC_HFILES = ../../include/$(TARGET)/applicfg.h
-
-TARGET_HFILES = $(PREFIX)/include/$(TARGET)/applicfg.h
-
-all: driver
-
-driver: $(OBJS)
-
-#../$(TIMERS_DRIVER)/$(TIMERS_DRIVER).o:
-#	$(MAKE) -C ../$(TIMERS_DRIVER) driver
-
-#../$(CAN_DRIVER)/$(CAN_DRIVER).o:
-#	$(MAKE) -C ../$(CAN_DRIVER) driver
-
-libcanfestival_$(TARGET).a: $(OBJS)
-	@echo Building [libcanfestival_$(TARGET).a]
-	ar rc $@ $(OBJS)
-	ranlib $@
-
-install: libcanfestival_$(TARGET).a
-	mkdir -p $(PREFIX)/lib/
-	mkdir -p $(PREFIX)/include/canfestival
-	cp libcanfestival_$(TARGET).a $(PREFIX)/lib/
-	cp $(SRC_HFILES) $(PREFIX)/include/canfestival
-
-uninstall:
-	rm -f $(PREFIX)/lib/libcanfestival_$(TARGET).a
-	rm -f $(TARGET_HFILES)
-
-clean:
-	rm -f libcanfestival_$(TARGET).a
-
-mrproper: clean
-
-
--- a/drivers/timers_unix/timers_unix.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/drivers/timers_unix/timers_unix.c	Fri Apr 06 16:49:28 2007 +0200
@@ -54,14 +54,18 @@
 
 void StopTimerLoop(void)
 {
+	EnterMutex();
 	timer_delete (timer);
+	LeaveMutex();
 }
 
 void StartTimerLoop(TimerCallback_t init_callback)
 {
 	initTimer();
+	EnterMutex();
 	// At first, TimeDispatch will call init_callback.
 	SetAlarm(NULL, 0, init_callback, 0, 0);
+	LeaveMutex();
 }
 
 void CreateReceiveTask(CAN_PORT port, TASK_HANDLE* Thread, void* ReceiveLoopPtr)
--- a/drivers/unix/unix.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/drivers/unix/unix.c	Fri Apr 06 16:49:28 2007 +0200
@@ -146,7 +146,14 @@
 
 UNS8 canSend(CAN_PORT port, Message *m)
 {
-	return DLL_CALL(canSend)(((CANPort*)port)->fd, m);
+	if(port){
+		UNS8 res;
+	        LeaveMutex();
+		res = DLL_CALL(canSend)(((CANPort*)port)->fd, m);
+		EnterMutex();
+		return res;
+	}               
+	return -1;
 }
 
 void canReceiveLoop(CAN_PORT port)
@@ -184,17 +191,23 @@
 	canports[i].d = d;
 
 	CreateReceiveTask(&(canports[i]), &canports[i].receiveTask, &canReceiveLoop);
-		
+	
+	EnterMutex();
+	d->canHandle = (CAN_PORT)&canports[i];
+	LeaveMutex();
 	return (CAN_PORT)&canports[i];
 }
 
-int canClose(CAN_PORT port)
-{
-	((CANPort*)port)->used = 0;
-	int res = DLL_CALL(canClose)(((CANPort*)port)->fd);
-	
-	WaitReceiveTaskEnd(((CANPort*)port)->receiveTask);
+int canClose(CO_Data * d)
+{
+	EnterMutex();
+	((CANPort*)d->canHandle)->used = 0;
+	CANPort* tmp = (CANPort*)d->canHandle;
+	d->canHandle = NULL;
+	LeaveMutex();
+	
+	int res = DLL_CALL(canClose)(tmp->fd);
+	
+	WaitReceiveTaskEnd(tmp->receiveTask);
 	return res;
 }
-
-
--- a/drivers/win32/drivers_win32.cpp	Thu Apr 05 10:06:11 2007 +0200
+++ b/drivers/win32/drivers_win32.cpp	Fri Apr 06 16:49:28 2007 +0200
@@ -197,8 +197,12 @@
    {
    if (fd0 != NULL && s_driver_procs.m_canSend != NULL)
       {
+      UNS8 res;
       driver_data* data = (driver_data*)fd0;
-      if ((*s_driver_procs.m_canSend)(data->inst, m))
+      LeaveMutex();
+      res = (*s_driver_procs.m_canSend)(data->inst, m);      
+      EnterMutex();
+      if (res)
          return 0;
       }
    return 1;
@@ -217,6 +221,9 @@
          data->inst = inst;
          data->continue_receive_thread = true;
          CreateReceiveTask(data, &data->receive_thread, &canReceiveLoop);
+	 EnterMutex();
+         d->canHandle = data;
+         LeaveMutex();
          return data;
          }
       }
@@ -224,11 +231,14 @@
    }
 
 /***************************************************************************/
-int canClose(CAN_PORT fd0)
+int canClose(CO_Data * d)
    {
    if (fd0 != NULL && s_driver_procs.m_canClose != NULL)
       {
-      driver_data* data = (driver_data*)fd0;
+      EnterMutex();
+      driver_data* data = (driver_data*)d->canHandle;
+      d->canHandle = NULL;
+      LeaveMutex();
       data->continue_receive_thread = false;
       WaitReceiveTaskEnd(&data->receive_thread);
       (*s_driver_procs.m_canClose)(data->inst);
--- a/examples/TestMasterSlave/Master.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/examples/TestMasterSlave/Master.c	Fri Apr 06 16:49:28 2007 +0200
@@ -37,15 +37,6 @@
 }
 
 /*****************************************************************************/
-// CanSend store message in a FIFO, for Slave
-UNS8 TestMaster_canSend(Message *m)
-{
-	eprintf("M->S ");
-	print_message(m);
-	canSend(MasterCanHandle, m);
-	return 0;
-}
-
 void TestMaster_initialisation()
 {
 	eprintf("TestMaster_initialisation\n");
--- a/examples/TestMasterSlave/Slave.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/examples/TestMasterSlave/Slave.c	Fri Apr 06 16:49:28 2007 +0200
@@ -36,15 +36,6 @@
 	eprintf("TestSlave_SDOtimeoutError %d\n", line);
 }
 
-/*****************************************************************************/
-UNS8 TestSlave_canSend(Message *m)
-{
-	eprintf("S->M ");
-	print_message(m);
-	canSend(SlaveCanHandle, m);
-	return 0;
-}
-
 void TestSlave_initialisation()
 {
 	eprintf("TestSlave_initialisation\n");
--- a/examples/TestMasterSlave/TestMasterSlave.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/examples/TestMasterSlave/TestMasterSlave.c	Fri Apr 06 16:49:28 2007 +0200
@@ -78,9 +78,6 @@
 	return 0;
 }
 
-CAN_PORT SlaveCanHandle;
-CAN_PORT MasterCanHandle;
-
 s_BOARD SlaveBoard = {"0", "500K"};
 s_BOARD MasterBoard = {"1", "500K"};
 
@@ -221,16 +218,34 @@
 #endif		
 	// Open CAN devices
 	if(SlaveBoard.baudrate){
-		SlaveCanHandle = canOpen(&SlaveBoard,&TestSlave_Data);
-		if(SlaveCanHandle == NULL){
+		
+		TestSlave_Data.heartbeatError = TestSlave_heartbeatError;
+		TestSlave_Data.SDOtimeoutError = TestSlave_SDOtimeoutError;
+		TestSlave_Data.initialisation = TestSlave_initialisation;
+		TestSlave_Data.preOperational = TestSlave_preOperational;
+		TestSlave_Data.operational = TestSlave_operational;
+		TestSlave_Data.stopped = TestSlave_stopped;
+		TestSlave_Data.post_sync = TestSlave_post_sync;
+		TestSlave_Data.post_TPDO = TestSlave_post_TPDO;
+
+		if(!canOpen(&SlaveBoard,&TestSlave_Data)){
 			eprintf("Cannot open Slave Board (%s,%s)\n",SlaveBoard.busname, SlaveBoard.baudrate);
 			goto fail_slave;
 		}
 	}
 
 	if(MasterBoard.baudrate){
-		MasterCanHandle = canOpen(&MasterBoard,&TestMaster_Data);
-		if(MasterCanHandle == NULL){
+		
+		TestMaster_Data.heartbeatError = TestMaster_heartbeatError;
+		TestMaster_Data.SDOtimeoutError = TestMaster_SDOtimeoutError;
+		TestMaster_Data.initialisation = TestMaster_initialisation;
+		TestMaster_Data.preOperational = TestMaster_preOperational;
+		TestMaster_Data.operational = TestMaster_operational;
+		TestMaster_Data.stopped = TestMaster_stopped;
+		TestMaster_Data.post_sync = TestMaster_post_sync;
+		TestMaster_Data.post_TPDO = TestMaster_post_TPDO;
+		
+		if(!canOpen(&MasterBoard,&TestMaster_Data)){
 			eprintf("Cannot open Master Board (%s,%s)\n",SlaveBoard.busname, SlaveBoard.baudrate);
 			goto fail_master;
 		}
@@ -247,9 +262,9 @@
 	StopTimerLoop();
 	
 	// Close CAN devices (and can threads)
-	if(SlaveBoard.baudrate) canClose(SlaveCanHandle);
+	if(SlaveBoard.baudrate) canClose(&TestSlave_Data);
 fail_master:
-	if(MasterBoard.baudrate) canClose(MasterCanHandle);	
+	if(MasterBoard.baudrate) canClose(&TestMaster_Data);	
 fail_slave:
 	
 
--- a/examples/TestMasterSlave/TestMasterSlave.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/examples/TestMasterSlave/TestMasterSlave.h	Fri Apr 06 16:49:28 2007 +0200
@@ -30,10 +30,6 @@
 
 #include "canfestival.h"
 
-extern CAN_PORT SlaveCanHandle;
-extern CAN_PORT MasterCanHandle;
-
-
 /*
 #define CAN_FIFO_LENGTH 100
 
--- a/examples/gene_SYNC_HCS12/appli.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/examples/gene_SYNC_HCS12/appli.c	Fri Apr 06 16:49:28 2007 +0200
@@ -285,14 +285,6 @@
 }
 
 //------------------------------------------------------------------------------
-UNS8 gene_SYNC_canSend(Message *m)
-{
-  // HCS12 driver function to send the CAN msg
-  canMsgTransmit(CAN0, *m);
-  return 0;
-}
-
-//------------------------------------------------------------------------------
 void gene_SYNC_initialisation()
 {  
   MSG_WAR (0x3F00, "Entering in INIT ", 0); 
@@ -395,16 +387,6 @@
   IO_PORTS_8(PORTB) |=   0x0E; // leds 1, 2, 3, 4   : OFF
 }
 
-//------------------------------------------------------------------------------
-void gene_SYNC_post_sync()
-{
-}
-
-//------------------------------------------------------------------------------
-void gene_SYNC_post_TPDO()
-{
-}
-
 // End functions which are part of Canfestival
 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 
@@ -419,6 +401,13 @@
 
   MSG_WAR(0x3F34, "Entering in the main ", 0);
   //----------------------------- INITIALISATION --------------------------------
+  gene_SYNC_Data.heartbeatError = gene_SYNC_heartbeatError;
+  gene_SYNC_Data.SDOtimeoutError = gene_SYNC_SDOtimeoutError;
+  gene_SYNC_Data.initialisation = gene_SYNC_initialisation;
+  gene_SYNC_Data.preOperational = gene_SYNC_preOperational;
+  gene_SYNC_Data.preOperational = gene_SYNC_operational;
+  gene_SYNC_Data.stopped = gene_SYNC_stopped;
+
   
   /* Put the node in Initialisation mode */
   MSG_WAR(0x3F35, "Will entering in INIT ", 0);
--- a/examples/win32test/main.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/examples/win32test/main.c	Fri Apr 06 16:49:28 2007 +0200
@@ -34,48 +34,6 @@
 #define uptime_ms_proc (1000*(time()%86400))  // TOD
 #endif
 
-/* required canfestival callbacks. */
-void win32test_SDOtimeoutError(UNS8 line)
-  {
-  }
-  
-void win32test_heartbeatError(UNS8 node_id)
-  {
-  }
-
-void win32test_initialisation(void)
-  {
-  }
-
-void win32test_preOperational(void)
-  {
-  }
-
-void win32test_operational(void)
-  {
-  }
-
-void win32test_stopped(void)
-  {
-  }
-
-void win32test_post_sync(void)
-  {
-  }
-
-void win32test_post_TPDO(void)
-  {
-  }
-
-static CAN_HANDLE g_MasterCanHandle = NULL;
-
-UNS8 win32test_canSend(Message *m)
-  {
-  if (g_MasterCanHandle != NULL)
-     return canSend(g_MasterCanHandle, m);
-  return 1;
-  }
-
 UNS8 GetChangeStateResults(UNS8 node_id, UNS8 expected_state, unsigned long timeout_ms)
    {
    unsigned long start_time = 0;
@@ -150,9 +108,7 @@
       return 1;
       }
    
-   g_MasterCanHandle = canOpen(&MasterBoard,&win32test_Data);
-   
-   if (g_MasterCanHandle)
+   if (canOpen(&MasterBoard,&win32test_Data))
       {
       /* Defining the node Id */
       setNodeId(&win32test_Data, 0x01);
@@ -239,7 +195,7 @@
 
       setState(&win32test_Data, Stopped);
       
-      canClose(g_MasterCanHandle);
+      canClose(&win32test_Data);
       }
    return 0;
   }
--- a/include/data.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/include/data.h	Fri Apr 06 16:49:28 2007 +0200
@@ -88,7 +88,7 @@
 	
 	/* General */
 	UNS8 toggle;
-	canSend_t canSend;	
+	CAN_HANDLE canHandle;	
 	scanIndexOD_t scanIndexOD;
 };
 
@@ -127,7 +127,7 @@
 	{\
           REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES(s_transfer_Initializer)\
 	},\
-	&NODE_PREFIX ## _SDOtimeoutError,    /* SDOtimeoutError */\
+	_SDOtimeoutError,/*&NODE_PREFIX ## _SDOtimeoutError,    /* SDOtimeoutError */\
 	\
 	/* State machine*/\
 	Unknown_state,      /* nodeState */\
@@ -140,10 +140,10 @@
 		0,          /* csHeartbeat */\
 		0           /* csPDO */\
 	},\
-	&NODE_PREFIX ## _initialisation,     /* initialisation */\
-	&NODE_PREFIX ## _preOperational,     /* preOperational */\
-	&NODE_PREFIX ## _operational,        /* operational */\
-	&NODE_PREFIX ## _stopped,            /* stopped */\
+	_initialisation,/*&NODE_PREFIX ## _initialisation,     /* initialisation */\
+	_preOperational,/*&NODE_PREFIX ## _preOperational,     /* preOperational */\
+	_operational,/*&NODE_PREFIX ## _operational,        /* operational */\
+	_stopped,/*&NODE_PREFIX ## _stopped,            /* stopped */\
 	\
 	/* NMT-heartbeat */\
 	& NODE_PREFIX ## _highestSubIndex_obj1016, /* ConsumerHeartbeatCount */\
@@ -151,7 +151,7 @@
 	NODE_PREFIX ## _heartBeatTimers,           /* ConsumerHeartBeatTimers  */\
 	& NODE_PREFIX ## _obj1017,                 /* ProducerHeartBeatTime */\
 	TIMER_NONE,                                /* ProducerHeartBeatTimer */\
-	NODE_PREFIX ## _heartbeatError,            /* heartbeatError */\
+	_heartbeatError,/*NODE_PREFIX ## _heartbeatError,            /* heartbeatError */\
 	\
 	{REPEAT_NMT_MAX_NODE_ID_TIMES(NMTable_Initializer)},\
                                                    /* is  well initialized at "Unknown_state". Is it ok ? (FD)*/\
@@ -161,8 +161,8 @@
 	& NODE_PREFIX ## _obj1005,                 /* COB_ID_Sync */\
 	& NODE_PREFIX ## _obj1006,                 /* Sync_Cycle_Period */\
 	/*& NODE_PREFIX ## _obj1007, */            /* Sync_window_length */\
-	NODE_PREFIX ## _post_sync,                 /* post_sync */\
-	NODE_PREFIX ## _post_TPDO,                 /* post_TPDO */\
+	_post_sync,/*NODE_PREFIX ## _post_sync,                 /* post_sync */\
+	_post_TPDO,/*NODE_PREFIX ## _post_TPDO,                 /* post_TPDO */\
 	\
 	/* PDO, structure s_process_var */\
         {\
@@ -172,7 +172,7 @@
         \
 	/* General */\
 	0,                                         /* toggle */\
-	NODE_PREFIX ## _canSend,                   /* canSend */\
+	NULL,/*NODE_PREFIX ## _canSend,                   /* canSend */\
 	NODE_PREFIX ## _scanIndexOD                /* scanIndexOD */\
 }
 
--- a/include/generic/applicfg.h	Thu Apr 05 10:06:11 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
-This file is part of CanFestival, a library implementing CanOpen Stack. 
-
-Copyright (C): Edouard TISSERANT and Francis DUPIN
-
-See COPYING file for copyrights details.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-
-#ifndef __APPLICFG_LINUX__
-#define __APPLICFG_LINUX__
-
-#include <string.h>
-#include <stdio.h>
-
-// Define the architecture : little_endian or big_endian
-// -----------------------------------------------------
-// Test :
-// UNS32 v = 0x1234ABCD;
-// char *data = &v;
-//
-// Result for a little_endian architecture :
-// data[0] = 0xCD;
-// data[1] = 0xAB;
-// data[2] = 0x34;
-// data[3] = 0x12;
-//
-// Result for a big_endian architecture :
-// data[0] = 0x12;
-// data[1] = 0x34;
-// data[2] = 0xAB;
-// data[3] = 0xCD;
-
-// Integers
-#define INTEGER8 char
-#define INTEGER16 short
-#define INTEGER24
-#define INTEGER32 long
-#define INTEGER40
-#define INTEGER48
-#define INTEGER56
-#define INTEGER64
-
-// Unsigned integers
-#define UNS8   unsigned char
-#define UNS16  unsigned short
-#define UNS32  unsigned long
-#define UNS24
-#define UNS40
-#define UNS48
-#define UNS56
-#define UNS64 unsigned long long
-
-// Reals
-#define REAL32	float
-#define REAL64 double
-
-/// Definition of error and warning macros
-// --------------------------------------
-#if defined DEBUG_ERR_CONSOLE_ON || defined DEBUG_WAR_CONSOLE_ON
-#include <stdio.h>
-#endif
-
-/// Definition of MSG_ERR
-// ---------------------
-#ifdef DEBUG_ERR_CONSOLE_ON
-#    define MSG_ERR(num, str, val)/*            \
-          printf("%s,%d : 0X%x %s 0X%x \n",__FILE__, __LINE__,num, str, val);*/
-#else
-#    define MSG_ERR(num, str, val)
-#endif
-
-/// Definition of MSG_WAR
-// ---------------------
-#ifdef DEBUG_WAR_CONSOLE_ON
-#    define MSG_WAR(num, str, val)/*          \
-          printf("%s,%d : 0X%x %s 0X%x \n",__FILE__, __LINE__,num, str, val);*/
-#else
-#    define MSG_WAR(num, str, val)
-#endif
-
-#endif
-
-#define CAN_HANDLE	void*
-
-#define MS_TO_TIMEVAL(ms) ms*US_TO_TIMEVAL_FACTOR*1000
-#define US_TO_TIMEVAL(us) us*US_TO_TIMEVAL_FACTOR
-
-#define TASK_HANDLE pthread_t
--- a/include/lifegrd.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/include/lifegrd.h	Fri Apr 06 16:49:28 2007 +0200
@@ -27,6 +27,7 @@
 #include <applicfg.h>
 
 typedef void (*heartbeatError_t)(UNS8);
+void _heartbeatError(UNS8 heartbeatID);
 
 #include "data.h"
 
--- a/include/sdo.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/include/sdo.h	Fri Apr 06 16:49:28 2007 +0200
@@ -24,6 +24,8 @@
 #define __sdo_h__
 
 typedef void (*SDOtimeoutError_t)(UNS8 line);
+void _SDOtimeoutError (UNS8);
+
 struct struct_s_transfer;
 
 #include "timer.h"
--- a/include/states.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/include/states.h	Fri Apr 06 16:49:28 2007 +0200
@@ -55,7 +55,7 @@
 	UNS8 csPDO;
 } s_state_communication;
 
-/** Function that user app must provide
+/** Function that user app can overload
  * 
  */
 typedef void (*initialisation_t)(void);
@@ -63,6 +63,11 @@
 typedef void (*operational_t)(void);
 typedef void (*stopped_t)(void);
 
+void _initialisation();
+void _preOperational();
+void _operational();
+void _stopped();
+
 #include "data.h"
 
 /************************* prototypes ******************************/
--- a/include/sync.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/include/sync.h	Fri Apr 06 16:49:28 2007 +0200
@@ -28,8 +28,10 @@
 void stopSYNC(CO_Data* d);
 
 typedef void (*post_sync_t)(void);
+void _post_sync();
 
 typedef void (*post_TPDO_t)(void);
+void _post_TPDO();
 
 /** transmit a SYNC message on the bus number bus_id
  * bus_id is hardware dependant
--- a/include/unix/canfestival.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/include/unix/canfestival.h	Fri Apr 06 16:49:28 2007 +0200
@@ -16,6 +16,6 @@
 LIB_HANDLE LoadCanDriver(char* driver_name);
 UNS8 canSend(CAN_PORT port, Message *m);
 CAN_PORT canOpen(s_BOARD *board, CO_Data * d);
-int canClose(CAN_PORT port);
+int canClose(CO_Data * d);
 
 #endif /*UNIX_H_*/
--- a/include/win32/canfestival.h	Thu Apr 05 10:06:11 2007 +0200
+++ b/include/win32/canfestival.h	Fri Apr 06 16:49:28 2007 +0200
@@ -34,6 +34,6 @@
 LIB_HANDLE LoadCanDriver(char* driver_name);
 UNS8 canSend(CAN_PORT port, Message *m);
 CAN_PORT canOpen(s_BOARD *board, CO_Data * d);
-int canClose(CAN_PORT port);
+int canClose(CO_Data * d);
 
 #endif /*CANFESTIVAL_H_*/
--- a/objdictgen/objdictedit.py	Thu Apr 05 10:06:11 2007 +0200
+++ b/objdictgen/objdictedit.py	Fri Apr 06 16:49:28 2007 +0200
@@ -1073,7 +1073,8 @@
         event.Skip()
         
     def OnHelpCANFestivalMenu(self, event):
-        self.OpenHtmlFrame("CAN Festival Reference", os.path.join(WorkingDirectory, "../doc/canfestival.html"), wx.Size(1000, 600))
+        #self.OpenHtmlFrame("CAN Festival Reference", os.path.join(WorkingDirectory, "../doc/canfestival.html"), wx.Size(1000, 600))
+        os.system("xpdf -remote CANFESTIVAL %s %d &"%(os.path.join(WorkingDirectory, "../doc/manual/en/manual.pdf"),16))
         event.Skip()
 
     def OnAboutMenu(self, event):
--- a/src/lifegrd.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/lifegrd.c	Fri Apr 06 16:49:28 2007 +0200
@@ -22,6 +22,7 @@
 
 #include <data.h>
 #include "lifegrd.h"
+#include "canfestival.h"
 
 /* Prototypes for internals functions */
 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id);
@@ -69,7 +70,7 @@
         d->toggle = 1 ; 
       /* send the nodeguard response. */
       MSG_WAR(0x3130, "Sending NMT Nodeguard to master, state: ", d->nodeState);
-      (*d->canSend)(&msg );
+      canSend(d->canHandle,&msg );
     }  
 
   }else{ /* Not a request CAN */
@@ -125,7 +126,7 @@
 		msg.data[0] = d->nodeState; /* No toggle for heartbeat !*/
 		/* send the heartbeat */
       		MSG_WAR(0x3130, "Producing heartbeat: ", d->nodeState);
-      		(*d->canSend)(&msg );
+      		canSend(d->canHandle,&msg );
 	}else{
 		d->ProducerHeartBeatTimer = DelAlarm(d->ProducerHeartBeatTimer);
 	}
@@ -167,3 +168,4 @@
     d->ProducerHeartBeatTimer = DelAlarm(d->ProducerHeartBeatTimer);;
 }
 
+void _heartbeatError(UNS8 heartbeatID){}
--- a/src/nmtMaster.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/nmtMaster.c	Fri Apr 06 16:49:28 2007 +0200
@@ -21,6 +21,7 @@
 */
 
 #include "nmtMaster.h"
+#include "canfestival.h"
 
 /******************************************************************************/
 UNS8 masterSendNMTstateChange(CO_Data* d, UNS8 Node_ID, UNS8 cs)
@@ -36,7 +37,7 @@
   m.data[0] = cs;
   m.data[1] = Node_ID;
   
-  return (*d->canSend)(&m);
+  return canSend(d->canHandle,&m);
 }
 
 
@@ -52,7 +53,7 @@
   m.rtr = REQUEST;
   m.len = 1;
   
-  return (*d->canSend)(&m);
+  return canSend(d->canHandle,&m);
 }
 
 /******************************************************************************/
--- a/src/nmtSlave.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/nmtSlave.c	Fri Apr 06 16:49:28 2007 +0200
@@ -84,6 +84,6 @@
   m.len = 1;
   m.data[0] = 0x00;
     
-  return (*d->canSend)(&m);
+  return canSend(d->canHandle,&m);
 }
 
--- a/src/pdo.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/pdo.c	Fri Apr 06 16:49:28 2007 +0200
@@ -21,6 +21,7 @@
 */
 #include "pdo.h"
 #include "objacces.h"
+#include "canfestival.h"
 
 /****************************************************************************/
 UNS8 sendPDO(CO_Data* d, s_PDO pdo, UNS8 req)
@@ -51,7 +52,7 @@
       MSG_WAR(0x3903,"           data : ", m.data[i]);
     }
 		  
-    return (*d->canSend)(&m);
+    return canSend(d->canHandle,&m);
   } /* end if */
   return 0xFF;
 }
--- a/src/sdo.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/sdo.c	Fri Apr 06 16:49:28 2007 +0200
@@ -25,6 +25,7 @@
 
 #include "objacces.h"
 #include "sdo.h"
+#include "canfestival.h"
 
 /* Uncomment if your compiler does not support inline functions */
 #define NO_INLINE 
@@ -410,7 +411,7 @@
   for (i = 0 ; i < 8 ; i++) {
     m.data[i] =  sdo.body.data[i];
   }
-  return (*d->canSend)(&m);
+  return canSend(d->canHandle,&m);
 }
 
 /***************************************************************************/
@@ -1330,3 +1331,4 @@
   return d->transfers[line].state;
 }
 
+void _SDOtimeoutError (UNS8 line){}
--- a/src/states.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/states.c	Fri Apr 06 16:49:28 2007 +0200
@@ -207,3 +207,8 @@
   /* bDeviceNodeId is defined in the object dictionary. */
   *d->bDeviceNodeId = nodeId;
 }
+
+void _initialisation(){}
+void _preOperational(){}
+void _operational(){}
+void _stopped(){}
--- a/src/sync.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/sync.c	Fri Apr 06 16:49:28 2007 +0200
@@ -23,6 +23,7 @@
 
 #include "data.h"
 #include "sync.h"
+#include "canfestival.h"
 
 /* Prototypes for internals functions */
 void SyncAlarm(CO_Data* d, UNS32 id);
@@ -83,7 +84,7 @@
   m.cob_id.w = cob_id ;
   m.rtr = NOT_A_REQUEST;
   m.len = 0;
-  resultat = (*d->canSend)(&m) ;
+  resultat = canSend(d->canHandle,&m) ;
   proceedSYNC(d, &m) ; 
   return resultat ;
 }
@@ -237,3 +238,5 @@
 }
 
 
+void _post_sync(){}
+void _post_TPDO(){}
--- a/src/timer.c	Thu Apr 05 10:06:11 2007 +0200
+++ b/src/timer.c	Fri Apr 06 16:49:28 2007 +0200
@@ -159,7 +159,8 @@
 		if (row->state & TIMER_TRIG)
 		{
 			row->state &= ~TIMER_TRIG; /* reset trig state (will be free if not periodic) */
-			(*row->callback)(row->d, row->id); /* trig ! */
+			if(row->callback)
+				(*row->callback)(row->d, row->id); /* trig ! */
 		}
 	}
 }