<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Thanks.<div class=""><br class=""></div><div class="">I really should formally document the CRTD format properly somewhere. Anyway, here are my old notes on it, and an example:<div class=""><br class=""></div><div class="">+++++</div><div class=""><br class=""></div><div class="">CRTD Example:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">1320724293.000 CXX OVMS Tesla Roadster cando2crtd converted log</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">1320724293.000 CXX OVMS Tesla roadster log: trip.20111108.csv</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">1320724294.072 R11 420 00 96 96<br class="">1320724294.073 R11 588 00 00 86<br class="">1320724294.073 R11 280 00 00 03 00 00 00 00 00<br class="">1320724294.073 R11 001 00 00 00 00<br class="">1320724294.073 R11 590 01 00 00 00 00 00 00 00<br class="">1320724294.113 R11 400 01 01 00 00 00 00 4C 1D</span></font></div></blockquote><div class=""><div><br class=""></div><div>Generators should use whatever line termination the host system uses. For Unix and embedded systems that is LF. Parsers should support all CR, LF, and CRLF variants.</div><div><br class=""></div><div>Generators should output hex fields in upper-case and front zero padded (for clarity). Parsers should support both upper and lower case, as well as variable length.</div><div><br class=""></div><div>By convention, the .crtd extension is used for these files. It is suggested that generators prefix all crtd files with CXX lines documenting the generator, comment and source of log file.</div><div><br class=""></div><div>Space-separated fields are:</div><div><ul class="MailOutline"><li class="">Timestamp (can be seconds, milliseconds, or microseconds - zero prefixed and full length padded for ms and us).</li><li class="">Type:</li><ul class=""><li class="">C*: comment</li><ul class=""><li class="">CXX: general comment (rest of line is a comment)</li><li class="">CEV: user-generated event (rest of line is event description)</li></ul><li class="">R11: rx standard frame</li><li class="">R29: rx extended frame</li><li class="">T11: tx standard frame</li><li class="">T29: tx extended frame</li></ul></ul><div class=""><br class=""></div><div class="">Other field notes:</div><ul class="MailOutline"><li class="">For the R?? and T?? types, the rest of the line is hex ID followed by hex data bytes (up to 8).<br class=""></li><li class="">In the case of systems supporting multiple CAN buses, the type can be prefixed with the bus number (eg; 1R11, 2T29, etc). Messages from different CAN bus captures can be written to one shared crtd file, or individual files for each bus - entirely up to the generator.</li></ul></div><div><br class=""></div><div>+++++</div><div><br class=""></div><div>Regards, Mark.</div><div><br class=""><blockquote type="cite" class=""><div class="">On 11 Jan 2018, at 8:59 PM, Michael Balzer <<a href="mailto:dexter@expeedo.de" class="">dexter@expeedo.de</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
  
  <div text="#000000" bgcolor="#FFFFFF" class="">
    <div class="moz-cite-prefix">Mark,<br class="">
      <br class="">
      I'll add the logging support along with the TX queue.<br class="">
      <br class="">
      Regards,<br class="">
      Michael<br class="">
      <br class="">
      <br class="">
      Am 10.01.2018 um 01:27 schrieb Mark Webb-Johnson:<br class="">
    </div>
    <blockquote type="cite" cite="mid:D4A07E68-FD57-4A6E-AEDC-FD4FBE97E547@webb-johnson.net" class="">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
      Probably best to split this off as a separate eMail thread.
      <div class=""><br class="">
      </div>
      <div class="">I think the implementation would be relatively
        simple.</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <ul class="MailOutline">
          <li class="">Create a canlog class with a FILE* m_log member
            variable, and a virtual function Log() that is called with a
            direction (tx/rx) and frame to log.</li>
          <ul class="">
            <li class="">The constructor should be passed the vfs file
              path to log to. It should fopen the m_log file to that.</li>
            <li class="">The destructor should fclose the m_log file.</li>
          </ul>
          <li class="">Create a canlog_crtd class, derived from canlog,
            that supports Log() to log to m_log in CRTD format.</li>
          <li class="">Optionally create other canlog_* classes, for
            other logging formats that we want to support.</li>
          <li class="">Add a canlog* m_log member variable in canbus.</li>
          <ul class="">
            <li class="">Initialise m_log to NULL in the constructor.</li>
            <li class="">In the destructor, if m_log is not null, delete
              it’s object and set it to NULL.</li>
            <li class="">Have a command ‘can log’ like ‘can trace’ that
              specifies a vfs file path (remember to check it with
              OvmsConfig ProtectedPath) and logging format. It will then
              ’new’ a canlog_* style object (depending on logging
              format).</li>
          </ul>
          <li class="">In can::IncomingFrame, log incoming CAN messages
            with m_log->Log(), in the same way as m_trace is handled.</li>
          <li class="">In canbus::Write, log outgoing CAN messages with
            m_log->Log(), in the same way as m_trace is handled.</li>
        </ul>
        <div class=""><br class="">
        </div>
        <div class="">Volunteer?</div>
        <div class=""><br class="">
        </div>
        <div class="">Regards, Mark.</div>
        <div class=""><br class="">
          <blockquote type="cite" class="">
            <div class="">On 10 Jan 2018, at 8:07 AM, Mark Webb-Johnson
              <<a href="mailto:mark@webb-johnson.net" class="" moz-do-not-send="true">mark@webb-johnson.net</a>>
              wrote:</div>
            <br class="Apple-interchange-newline">
            <div class=""><span style="font-family: Helvetica;
                font-size: 24px; font-style: normal; font-variant-caps:
                normal; font-weight: normal; letter-spacing: normal;
                text-align: start; text-indent: 0px; text-transform:
                none; white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; float: none; display:
                inline !important;" class="">Now SD CARD support is
                coming, anybody want to step forward and extend
                components/can to support CAN bus logging to a file (in
                crtd format, or perhaps support one or two popular
                formats)? Implementation would be in class canbus, very
                similar to m_trace; just need to have a FILE* m_log and
                appropriate commands / logging of packet write/read in
                the same place that trace does it.</span></div>
          </blockquote>
        </div>
        <br class="">
      </div>
      <br class="">
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br class="">
      <pre wrap="" class="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.teslaclub.hk">OvmsDev@lists.teslaclub.hk</a>
<a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br class="">
    <br class="">
    <pre class="moz-signature" cols="144">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
  </div>

_______________________________________________<br class="">OvmsDev mailing list<br class=""><a href="mailto:OvmsDev@lists.teslaclub.hk" class="">OvmsDev@lists.teslaclub.hk</a><br class="">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev<br class=""></div></blockquote></div><br class=""></div></div></body></html>