<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Romuald,<br>
    <br>
    welcome :-)<br>
    <br>
    <div class="moz-cite-prefix">Am 27.04.23 um 15:06 schrieb Romuald
      Conty (Opus Codium):<br>
    </div>
    <blockquote type="cite" cite="mid:3790660.zbcBz8CA7i@violin">
      <pre class="moz-quote-pre" wrap="">To reach my goals, I'll have to:
 - Read two CAN buses to grab and display values on a HUD
 - Make an expansion board with some IC which requires to talk using I²C
 - Publish events on a third CAN bus which exposes additional sensors values
</pre>
    </blockquote>
    <br>
    <blockquote type="cite" cite="mid:2424373.9BHdbWLVS3@violin">[...]
      To do it periodically, you would need a task
      <pre class="moz-quote-pre" wrap="">Is there is a code base to write a task in OVMSv3 context? or a similar code 
that have the right architecture in current firmware?</pre>
    </blockquote>
    <br>
    There is a `TaskBase` class, but that doesn't offer much of an
    advantage for your use case. Creating a task really is very simple
    with FreeRTOS.<br>
    <br>
    Examples:<br>
    <ul>
      <li>The `obd2ecu` component derives & publishes HUD data using
        a task and seems to be close to your use case.</li>
      <li>The `retools_pidscan` component uses a task to scan for PIDs
        on OBD2/ISO-TP devices.</li>
      <li>The `canopen` component uses worker tasks to handle async
        CANopen protocol communication.<br>
      </li>
    </ul>
    Regards,<br>
    Michael<br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
  </body>
</html>