--- 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(&MyNode_Data, 0x01);</tspan><tspan
+ sodipodi:role="line"
+ x="466.21942"
+ y="353.14863"
+ id="tspan5421"> setState(&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("can_peak_win32.dll");</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 = {"0", "500K"};</tspan><tspan
+ sodipodi:role="line"
+ x="466.21942"
+ y="582.04782"
+ id="tspan5279"> MyCanHandle = canOpen(&MyBoard,&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(&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(&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">"On Operational State" 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 ! */
}
}
}