Aquileo | Recent changes to feature-requestshttps://sourceforge.net/p/canfestival/feature-requests/Recent changes to feature-requestsenThu, 19 Sep 2013 11:30:51 -0000Aquileo | Allow to define timer table externallyhttps://sourceforge.net/p/canfestival/feature-requests/4/<div class="markdown_content"><p>I propose to allow to define the timer table externally via a #define (timers.c):</p> <div class="codehilite"><pre><span class="cp">#ifndef HAS_EXTERNAL_TIMER_TABLE</span> <span class="cm">/* --------- The timer table --------- */</span> <span class="n">s_timer_entry</span> <span class="n">timers</span><span class="p">[</span><span class="n">MAX_NB_TIMER</span><span class="p">]</span> <span class="o">=</span> <span class="p">{{</span><span class="n">TIMER_FREE</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">},};</span> <span class="cp">#endif</span> </pre></div> <p>This allows having multiple timer threads using the same code basis <strong>without modifying the original library code</strong>, following this pattern:</p> <div class="codehilite"><pre><span class="c1">// &lt;applicfg.h&gt;:</span> <span class="cp">#define HAS_EXTERNAL_TIMER_TABLE</span> <span class="cp">#define timers getTimersList()</span> <span class="n">s_timer_entry</span><span class="o">*</span> <span class="nf">getTimersList</span><span class="p">();</span> <span class="c1">// &lt;timers_driver.c or any other appropriate&gt;:</span> <span class="k">static</span> <span class="n">g_timer_entry</span><span class="o">*</span> <span class="n">timersLists</span><span class="p">[</span><span class="mi">256</span><span class="p">];</span> <span class="n">s_timer_entry</span><span class="o">*</span> <span class="nf">getTimersList</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="n">timersLists</span><span class="p">[</span><span class="n">getIndexForTaskId</span><span class="p">()];</span> <span class="p">}</span> </pre></div> <p>In this example <code>timers[n]</code> would expand to <code>getTimersList()[n]</code> with a list per running timer task, a variant would be to have the timers lists per object dictionary:</p> <div class="codehilite"><pre><span class="c1">// &lt;applicfg.h&gt;:</span> <span class="cp">#define HAS_EXTERNAL_TIMER_TABLE</span> <span class="cp">#define timers getTimersList(d)</span> <span class="n">s_timer_entry</span><span class="o">*</span> <span class="nf">getTimersList</span><span class="p">(</span><span class="n">CO_Data</span><span class="o">*</span> <span class="n">d</span><span class="p">);</span> <span class="c1">// &lt;timers_driver.c or any other appropriate&gt;:</span> <span class="k">static</span> <span class="n">g_timer_entry</span><span class="o">*</span> <span class="n">timersLists</span><span class="p">[</span><span class="mi">256</span><span class="p">];</span> <span class="n">s_timer_entry</span><span class="o">*</span> <span class="nf">getTimersList</span><span class="p">(</span><span class="n">CO_Data</span><span class="o">*</span> <span class="n">d</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">timersLists</span><span class="p">[</span><span class="n">getIndexForOD</span><span class="p">(</span><span class="n">d</span><span class="p">)];</span> <span class="p">}</span> </pre></div> </div>Sandro BoehlerThu, 19 Sep 2013 11:30:51 -0000https://sourceforge.netdd061a1cd5dfd15f850c88030e60331469671c2aAquileo | Unlock reserved indexes 0x1019 - 0x11FFhttps://sourceforge.net/p/canfestival/feature-requests/3/<div class="markdown_content"><p>Hi!<br /> I have to use indexes from 0x1019 to 0x11FF (some of them) in my application. And it would be perfect to unlock them in Object Editor to edit.</p> <p>Unfortunetly, i can't edit our local protocol and have to search alternative ways. And at the same time, a don't want to stop using CANFestival stack. So, unlocking of those indexes would be perfect!<br /> Thank you!</p></div>ilyaikMon, 11 Mar 2013 14:15:38 -0000https://sourceforge.net29d38002c8c1e85a8184df737a4c7a6a08bd7ea1Aquileo | SDO server error messageshttps://sourceforge.net/p/canfestival/feature-requests/2/<div class="markdown_content"><p>Hello,</p> <p>The SDO server of CanFestival is not sending 0x0504 0001 error message if command specifier is invalid.</p></div>mursusSat, 19 Jan 2013 10:11:26 -0000https://sourceforge.net849ade662d86ee0ae20bb3ac73e4427661dcc87eAquileo | Add more checks to SDO client operationshttps://sourceforge.net/p/canfestival/feature-requests/1/<div class="markdown_content"><p>Hello,</p> <p>I have bumped into problems with CanFestival SDO client operations<br /> when reading/writing parameters fast from/to other CANopen modules.<br /> The problem occurs when e.g. last read operation ended to timeout and<br /> then immediately starting to read another parameter from the same<br /> device. If the remote device still responded to last read request, the<br /> response of last operation might be used to newly started SDO<br /> operation although the response was for different parameter. This<br /> causes confusion with the read values.</p> <p>However, there's rather easy solution for this; check that the index<br /> and subindex of the SDO response frame from the SDO server match to<br /> newly started SDO client operation. If they do not match, simply<br /> ignore the response. This requires following changes; implement index<br /> / sub-index checking to each SDO response handling frame for SDO<br /> client branches in proceedSDO and ignoring the frames in case they do<br /> not match. I was thinking I could implement this and send a patch for<br /> you to add it to CanFestival version control.</p> <p>How do you like the idea? I think this should be implemented to avoid<br /> situations described above.</p> <p>BR. Jari Kuusisto</p></div>Edouard TISSERANTThu, 09 Sep 2010 14:03:04 -0000https://sourceforge.netfe0113c790260e62ffd2391e9664525848ad9def