<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Michael,<br>
    <br>
    you're free to implement your debug logging the way you want / need
    it.<br>
    <br>
    Unless where performance critical or within some ISR context, you
    can decide to keep some logging you'd like to be able to get from
    users later on in the release. Put that on level debug or verbose,
    so it won't spam the log unless enabled for the tag. Btw, you're
    also free to use different tags, e.g. for functional units.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 03.10.22 um 09:32 schrieb Michael
      Geddes:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAH0p7uJu0CD+ydpFTVWV9Jx6FYB9crUUg0KKngYyYMMkmh2XOw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">I can live with those astyle settings, so I'll
          include them.
          <div><br>
          </div>
          <div>I've been using  vim: tabstop=2 shiftwidth=2 expandtabs 
             (which is the same as --indent=spaces=2 afaict) - so that's
            a relief.  Mixed tabs and spaces are a pitb.. </div>
          <div><br>
          </div>
          <div>While I am used to delphi and so have been using the
            style that puts the brace at the indent level l'm happy to
            go with the one you have chosen. </div>
          <div>I really dislike that style with the brace indented. 
            While I still like much about C++, especially the template
            engine, I do miss delphi enums, sets and a few other
            features!<br>
          </div>
          <div><br>
          </div>
          <div>I'll download astyle and make it nice before I push up. 
            I've been making lots of little commits as I'm going, but
            will probably just squash it into one initial.</div>
          <div><br>
          </div>
          <div>I'm wondering what I should do about my instrumented
            function calls!  For example - All my functions look like
            this at the moment (with XARM() and XDISARM)</div>
          <div><br>
          </div>
          <div>
            <div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:Consolas,"Courier New",monospace;font-size:14px;line-height:19px;white-space:pre"><div><span style="color:rgb(86,156,214)">bool</span> <span style="color:rgb(78,201,176)">OvmsBatteryMon</span>::<span style="color:rgb(220,220,170)">checkStateChange</span>()</div><div>{</div><div>  <span style="color:rgb(86,156,214)">XARM</span>(<span style="color:rgb(206,145,120)">"OvmsBatteryMon::checkStateChange"</span>);</div><div>  <span style="color:rgb(197,134,192)">if</span> (!<span style="color:rgb(156,220,254)">m_dirty</span>)</div><div>  {</div><div>    <span style="color:rgb(86,156,214)">XDISARM</span>;</div><div>    <span style="color:rgb(197,134,192)">return</span> <span style="color:rgb(86,156,214)">false</span>;</div><div>  }</div><div>  <span style="color:rgb(78,201,176)">OvmsBatteryState</span> <span style="color:rgb(156,220,254)">newState</span> = <span style="color:rgb(220,220,170)">calc_state</span>();</div><div>  <span style="color:rgb(86,156,214)">bool</span> <span style="color:rgb(156,220,254)">res</span> = <span style="color:rgb(156,220,254)">newState</span> != <span style="color:rgb(156,220,254)">m_lastState</span>;</div><div>  <span style="color:rgb(156,220,254)">m_lastState</span> = <span style="color:rgb(156,220,254)">newState</span>;</div><div>  <span style="color:rgb(156,220,254)">m_dirty</span> = <span style="color:rgb(86,156,214)">false</span>;</div><div>  <span style="color:rgb(86,156,214)">XDISARM</span>;</div><div>  <span style="color:rgb(197,134,192)">return</span> <span style="color:rgb(156,220,254)">res</span>;</div><div>}</div>
</div>
          </div>
          <div><br>
          </div>
          <div>These are Macros so they would process  to blank for the
            release.  The idea is that if the object created by XARM()
            is not disarmed, it will cause a log to happen. (ie if
            there's an unexpected exception).  Should I just leave them
            in? </div>
          <div><br>
          </div>
          <div>//.ichael</div>
          <div><br>
          </div>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Mon, 3 Oct 2022 at 14:26,
            Michael Balzer <<a href="mailto:dexter@expeedo.de"
              moz-do-not-send="true" class="moz-txt-link-freetext">dexter@expeedo.de</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div> Thanks, Michael.<br>
              <br>
              > The main problem was the diversity of tab style.<br>
              <br>
              Yes… I see you even tried to fix indentation style where
              it seems to have been mixed unintentionally by the module
              developers ^_^<br>
              <br>
              Btw, I've begun including EditorConfigs and Artistic Style
              configs for newer modules, e.g.:<br>
              -
              <a
href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/zip/.editorconfig"
                target="_blank" moz-do-not-send="true"
                class="moz-txt-link-freetext">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/zip/.editorconfig</a><br>
              -
              <a
href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/vehicle_vweup/src/.astylerc"
                target="_blank" moz-do-not-send="true"
                class="moz-txt-link-freetext">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/vehicle_vweup/src/.astylerc</a><br>
              <br>
              Regards,<br>
              Michael<br>
              <br>
              <br>
              <div>Am 03.10.22 um 04:07 schrieb Michael Geddes:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">Pull request created.<br>
                  <div><br>
                  </div>
                  <div>I hope it's ok.  </div>
                  <div>The main problem was the diversity of tab style.</div>
                  <div><br>
                  </div>
                  <div>//.ichael</div>
                </div>
                <br>
                <div class="gmail_quote">
                  <div dir="ltr" class="gmail_attr">On Mon, 3 Oct 2022
                    at 09:23, Michael Geddes <<a
                      href="mailto:frog@bunyip.wheelycreek.net"
                      target="_blank" moz-do-not-send="true"
                      class="moz-txt-link-freetext">frog@bunyip.wheelycreek.net</a>>
                    wrote:<br>
                  </div>
                  <blockquote class="gmail_quote" style="margin:0px 0px
                    0px 0.8ex;border-left:1px solid
                    rgb(204,204,204);padding-left:1ex">
                    <div dir="ltr">
                      <div dir="ltr">Not 8 issues.  8 Files that I found
                        issues in, each with a bunch of them - so around
                        50 all up.</div>
                      <div dir="ltr"><br>
                        <div>I did a vimgrep for lines starting with
                          something like 'const char* ident =' ish... </div>
                        <div><br>
                        </div>
                        <div>Yeah, I agree, checking for IsDefined() is
                          a lot less cludgy, so have done that (yay for
                          vim macros). Also the existing code didn't
                          cope with -ve values!</div>
                        <div><br>
                        </div>
                        <div>I guess I better fork the project now and
                          submit a pull request!! :) </div>
                        <div>//.ichael</div>
                      </div>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr" class="gmail_attr">On Sun, 2 Oct
                          2022 at 22:01, Michael Balzer <<a
                            href="mailto:dexter@expeedo.de"
                            target="_blank" moz-do-not-send="true"
                            class="moz-txt-link-freetext">dexter@expeedo.de</a>>
                          wrote:<br>
                        </div>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
                          0.8ex;border-left:1px solid
                          rgb(204,204,204);padding-left:1ex">
                          <div> Michael,<br>
                            <br>
                            oh, the dreadful c_str() trap once again…
                            nice find.<br>
                            <br>
                            The deallocated heap buffer *can* have been
                            reallocated easily, we're running on a
                            preemptive OS and on two CPU cores.<br>
                            <br>
                            IOW, all of these need to be fixed. Sure
                            there are only 8 of them?<br>
                            <br>
                            On your is_empty_metric() utility: may be I
                            miss something, but why don't we simply use
                            the metric's IsDefined() method?<br>
                            <br>
                            Regards,<br>
                            Michael<br>
                            <br>
                            <br>
                            <div>Am 02.10.22 um 13:37 schrieb Michael
                              Geddes:<br>
                            </div>
                            <blockquote type="cite">
                              <div dir="auto">
                                <div dir="ltr">Hi all,
                                  <div><br>
                                  </div>
                                  <div>I noticed some behavior on the <b>tpms</b>
                                    command I'd copied from the Kia/Kona
                                    code, which sent me down a small
                                    rabbit hole.</div>
                                  <div>What I was seeing was that the
                                    temperature was repeated instead of
                                    seeing the pressure and temperature.</div>
                                  <div><br>
                                  </div>
                                  <div>Even in vehicle.cpp, we can see
                                    code like this:</div>
                                  <div dir="auto"><br>
                                  </div>
                                  <div>  <font face="monospace">const
                                      char* range_est =
                                      StdMetrics.ms_v_bat_range_est->AsUnitString("-",
                                      rangeUnit, 0).c_str();<br>
                                        if (*range_est != '-')<br>
                                          writer->printf("Est. range:
                                      %s\n", range_est);</font></div>
                                  <div dir="auto"><font face="monospace"><br>
                                    </font></div>
                                  <div>My C++ is a bit rusty, however I
                                    believe that the 'const char*' won't
                                    hold the temporary std::string
                                    object returned by 'AsUnitString'. 
                                    To do that, I believe we need to
                                    assign to a reference (which I know
                                    will work).  The problem is that the
                                    original code will mostly work
                                    (especially in cases like the
                                    above), as the deallocated heap
                                    memory won't have been reallocated.</div>
                                  <div><br>
                                    <font face="monospace">  const
                                      std::string& range_est =
                                      StdMetrics.ms_v_bat_range_est->AsUnitString("-",
                                      rangeUnit, 0);<br>
                                        if (!is_empty_metric(range_est))<br>
                                          writer->printf("Est. range:
                                      %s\n", range_est.c_str());<br>
                                    </font></div>
                                  <div><br>
                                  </div>
                                  <div>Where I've defined in vehicle.h
                                    the following:</div>
                                  <div><font face="monospace">inline
                                      bool is_empty_metric(const
                                      std::string &measure)<br>
                                      {<br>
                                        return (measure == "") ||
                                      (measure[0] == '-');<br>
                                      }<br>
                                    </font><br>
                                  </div>
                                  <div>Will the above work
                                    functionally?  Would it be better to
                                    be:  </div>
                                  <div dir="auto"><br>
                                  </div>
                                  <div dir="auto">return (measure =="")
                                    || (measure == "-") </div>
                                  <div dir="auto"><br>
                                  </div>
                                  <div>This occurs in 8 files (outside
                                    my new Ioniq 5 files) that I have
                                    noted. </div>
                                  <div dir="auto"><br>
                                  </div>
                                  <div>I would make a separate commit
                                    for this and do a pull request for
                                    it, </div>
                                  <div><br>
                                  </div>
                                  <div>//.ichael</div>
                                  <div><br>
                                  </div>
                                </div>
                              </div>
                              <br>
                              <fieldset></fieldset>
                              <pre>_______________________________________________
OvmsDev mailing list
<a href="mailto:OvmsDev@lists.openvehicles.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a>
<a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                            </blockquote>
                            <br>
                            <pre cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
                          </div>
_______________________________________________<br>
                          OvmsDev mailing list<br>
                          <a
                            href="mailto:OvmsDev@lists.openvehicles.com"
                            target="_blank" moz-do-not-send="true"
                            class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a><br>
                          <a
                            href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true"
                            class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
                        </blockquote>
                      </div>
                    </div>
                  </blockquote>
                </div>
                <br>
                <fieldset></fieldset>
                <pre>_______________________________________________
OvmsDev mailing list
<a href="mailto:OvmsDev@lists.openvehicles.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a>
<a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
              </blockquote>
              <br>
              <pre cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
            </div>
            _______________________________________________<br>
            OvmsDev mailing list<br>
            <a href="mailto:OvmsDev@lists.openvehicles.com"
              target="_blank" moz-do-not-send="true"
              class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a><br>
            <a
              href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
              rel="noreferrer" target="_blank" moz-do-not-send="true"
              class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <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>