<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="">Greg,<div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div text="#000000" bgcolor="#FFFFFF" class="">...  looks like it needs an additional 512 bytes.  Dropping to an increment of 256 bytes, 21*256 didn't do it, 22*256 did.<br class=""></div></blockquote><div class=""><br class=""></div>I suggest 6144. That is what the others use.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div text="#000000" bgcolor="#FFFFFF" class="">And, why is the script running from obd2ecu causing the async console to fall over?</div></blockquote><div><br class=""></div><div>To show the value it executes the script. That needs stack.</div><div><br class=""></div><div>Regards, Mark.</div><div><br class=""><blockquote type="cite" class=""><div class="">On 29 Mar 2018, at 10:29 AM, Greg D. <<a href="mailto:gregd2350@gmail.com" class="">gregd2350@gmail.com</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="">
    ...  looks like it needs an additional 512 bytes.  Dropping to an
    increment of 256 bytes, 21*256 didn't do it, 22*256 did.<br class="">
    <br class="">
    How much above that is needed for safety?  And, why is the script
    running from obd2ecu causing the async console to fall over?  The
    output from the script is no different than a regular line generated
    from a regular metric.<br class="">
    <br class="">
    Greg<br class="">
    <br class="">
    <br class="">
    <div class="moz-cite-prefix">Greg D. wrote:<br class="">
    </div>
    <blockquote type="cite" cite="mid:7b48f711-8c35-ccd7-6526-2fa31e92d53c@gmail.com" class="">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
      Thanks for the analysis.  module tasks isn't working, but I'll do
      some tests to get an approximate limit.<br class="">
      <br class="">
      Please get some "day job" stuff done - this isn't time critical.<br class="">
      <br class="">
      Greg<br class="">
      <br class="">
      <br class="">
      <div class="moz-cite-prefix">Mark Webb-Johnson wrote:<br class="">
      </div>
      <blockquote type="cite" cite="mid:F72B9C93-FBB0-4664-B56D-950607EC9ACD@webb-johnson.net" class="">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8" class="">
        Probably insufficient stack in AsyncConsole.
        <div class=""><br class="">
        </div>
        <div class="">At the moment it should be 5KB. Maybe more needed?</div>
        <div class=""><br class="">
        </div>
        <blockquote style="margin: 0 0 0 40px; border: none; padding:
          0px;" class="">
          <div class="">console_async.cpp line 50</div>
          <div class=""><br class="">
          </div>
          <div class="">ConsoleAsync::ConsoleAsync() :
            TaskBase("AsyncConsole", 5*1024)</div>
        </blockquote>
        <div class="">
          <div class=""><br class="">
          </div>
          <div class="">Can you try increasing, then running a ‘module tasks’ to
            see what it actually used?</div>
          <div class=""><br class="">
          </div>
          <div class="">Regards, Mark.</div>
          <div class=""><br class="">
            <blockquote type="cite" class="">
              <div class="">On 29 Mar 2018, at 10:08 AM, Greg D. <<a href="mailto:gregd2350@gmail.com" class="" moz-do-not-send="true">gregd2350@gmail.com</a>>
                wrote:</div>
              <br class="Apple-interchange-newline">
              <div class="">
                <div class="">Here you go...  (newlines added for
                  clarity)<br class="">
                  <br class="">
                  Greg<br class="">
                  <br class="">
                  <a class="moz-txt-link-abbreviated" href="mailto:greg@linux-0rpb:%7E/greg/ovms/Open-Vehicle-Monitoring-System-3-master/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3" moz-do-not-send="true">greg@linux-0rpb:~/greg/ovms/Open-Vehicle-Monitoring-System-3-master/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3</a>><br class="">
                  ~/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-addr2line
                  -pfiaC -e<br class="">
                  build/ovms3.elf 0x4008ead4:0x3fff2f50
                  0x4008ecab:0x3fff2f70<br class="">
                  0x4008ecc4:0x3fff2f90 0x4008ab6b:0x3fff2fb0
                  0x4008cd94:0x3fff2fd0<br class="">
                  0x4008cd4a:0x3fff600c<br class="">
                  <br class="">
                  0x4008ead4: invoke_abort at<br class="">
                  /home/greg/esp/esp-idf/components/esp32/./panic.c:648<br class="">
                  0x4008ecab: abort at
                  /home/greg/esp/esp-idf/components/esp32/./panic.c:648<br class="">
                  0x4008ecc4: vApplicationStackOverflowHook at<br class="">
                  /home/greg/esp/esp-idf/components/esp32/./panic.c:648<br class="">
                  0x4008ab6b: vTaskSwitchContext at<br class="">
/home/greg/esp/esp-idf/components/freertos/./tasks.c:4837<br class="">
                  0x4008cd94: _frxt_dispatch at<br class="">
/home/greg/esp/esp-idf/components/freertos/./portasm.S:406<br class="">
                  0x4008cd4a: _frxt_int_exit at<br class="">
/home/greg/esp/esp-idf/components/freertos/./portasm.S:206<br class="">
                  <br class="">
                  <a class="moz-txt-link-abbreviated" href="mailto:greg@linux-0rpb:%7E/greg/ovms/Open-Vehicle-Monitoring-System-3-master/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3" moz-do-not-send="true">greg@linux-0rpb:~/greg/ovms/Open-Vehicle-Monitoring-System-3-master/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3</a>><br class="">
                  <br class="">
                  <br class="">
                  <br class="">
                  <br class="">
                  <br class="">
                  Mark Webb-Johnson wrote:<br class="">
                  <blockquote type="cite" class="">Greg,<br class="">
                    <br class="">
                    The backtrace we need is one either via gdbstub, or
                    one you produce with:<br class="">
                    <br class="">
~/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-addr2line -pfiaC -e
                    build/ovms3.elf 0x4008ead4:0x3fff2f50
                    0x4008ecab:0x3fff2f70 0x4008ecc4:0x3fff2f90
                    0x4008ab6b:0x3fff2fb0 0x4008cd94:0x3fff2fd0
                    0x4008cd4a:0x3fff600c<br class="">
                    <br class="">
                    Regards, Mark<br class="">
                    <br class="">
                    <blockquote type="cite" class="">On 29 Mar 2018, at
                      9:44 AM, Greg D. <<a href="mailto:gregd2350@gmail.com" class="" moz-do-not-send="true">gregd2350@gmail.com</a>>
                      wrote:<br class="">
                      <br class="">
                      So, now it's failing at my desk, too.  Good - a
                      lot easier to grab a<br class="">
                      backtrace...   But, it's also happening whether
                      the metrics are set or<br class="">
                      not.  I've updated the code to the current
                      (including your housekeeping<br class="">
                      changes); not sure if that made a difference.<br class="">
                      <br class="">
                      OVMS> vfs cat /store/obd2ecu/10<br class="">
                      ret1=OvmsMetricFloat("v.p.speed");<br class="">
                      ret2=OvmsMetricFloat("v.b.power");<br class="">
                      out = 0.0;<br class="">
                      if(ret1 > 0) { out=ret2/ret1; }<br class="">
                      out;<br class="">
                      OVMS> obdii ecu list<br class="">
                      PID             Type        Value    Metric<br class="">
                      0   (0x00)       internal     0.000000<br class="">
                      4   (0x04)       internal     0.000000 v.b.soc<br class="">
                      5   (0x05)         metric     0.000000 v.e.temp<br class="">
                      ***ERROR*** A stack overflow in task AsyncConsole
                      has been detected.<br class="">
                      abort() was called at PC 0x4008ecc4 on core 1<br class="">
                      <br class="">
                      Backtrace: 0x4008ead4:0x3fff2f50
                      0x4008ecab:0x3fff2f70<br class="">
                      0x4008ecc4:0x3fff2f90 0x4008ab6b:0x3fff2fb0
                      0x4008cd94:0x3fff2fd0<br class="">
                      0x4008cd4a:0x3fff600c<br class="">
                      <br class="">
                      Rebooting...<br class="">
                      <br class="">
                      <br class="">
                      <br class="">
                      <br class="">
                      Mark Webb-Johnson wrote:<br class="">
                      <blockquote type="cite" class="">Need to see a
                        backtrace. Perhaps you are just on the
                        borderline of stack usage, or something going
                        crazy?<br class="">
                        <br class="">
                        Looking at DukOvmsMetricFloat(), it just return
                        the metric AsFloat(), and for float type metrics
                        that should just be zero if not defined.<br class="">
                        <br class="">
                        Regards, Mark.<br class="">
                        <br class="">
                        <blockquote type="cite" class="">On 29 Mar 2018,
                          at 8:58 AM, Greg D. <<a href="mailto:gregd2350@gmail.com" class="" moz-do-not-send="true">gregd2350@gmail.com</a>>
                          wrote:<br class="">
                          <br class="">
                          Hi folks,<br class="">
                          <br class="">
                          Does anyone know how DukTape scripting handles
                          math with a metric that<br class="">
                          hasn't been updated yet? <br class="">
                          <br class="">
                          I have a short example script in the OBDII ECU
                          documentation which<br class="">
                          (should) calculate a power-per-speed metric
                          for display on a HUD.  Seems<br class="">
                          like it would be a useful example, and wanted
                          to verify that it actually<br class="">
                          works. <br class="">
                          <br class="">
                          OVMS> vfs cat /store/obd2ecu/10<br class="">
                          ret1=OvmsMetricFloat("v.p.speed");<br class="">
                          ret2=OvmsMetricFloat("v.b.power");<br class="">
                          out = 0.0;<br class="">
                          if(ret1 > 0) { out=ret2/ret1; }<br class="">
                          out;<br class="">
                          <br class="">
                          I have the module in the my Roadster, and the
                          v.p.speed metric comes up<br class="">
                          as 0 kph (that's good - it's parked), but the
                          power metric isn't<br class="">
                          provided by the car, so is blank when listing
                          the metrics.  I expected<br class="">
                          the code to return zero.<br class="">
                          <br class="">
                          Instead, executing the script by asking for
                          'obdii ecu list' causes an<br class="">
                          immediate crash with a stack overflow in task
                          AsyncConsole.  If I<br class="">
                          initialize the power metric by hand (metric
                          set v.b.power 0), the script<br class="">
                          runs just fine, returning 0 for the metric.<br class="">
                          <br class="">
                          Oddly, when I first set it up on the desk
                          (sans vehicle), so both of the<br class="">
                          metrics were blank, executing the script
                          didn't cause crash.<br class="">
                          <br class="">
                          Is there a way to make the code "Roadster
                          safe", without dummying up the<br class="">
                          metric in, say, a startup script?  Better, is
                          there a fix for DukTape to<br class="">
                          handle this, or should I just increase the
                          stack size in AsyncConsole?<br class="">
                          <br class="">
                          Thanks,<br class="">
                          <br class="">
                          Greg<br class="">
                          <br class="">
_______________________________________________<br class="">
                          OvmsDev mailing list<br class="">
                          <a href="mailto:OvmsDev@lists.teslaclub.hk" class="" moz-do-not-send="true">OvmsDev@lists.teslaclub.hk</a><br class="">
                          <a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a><br class="">
                        </blockquote>
                        _______________________________________________<br class="">
                        OvmsDev mailing list<br class="">
                        <a href="mailto:OvmsDev@lists.teslaclub.hk" class="" moz-do-not-send="true">OvmsDev@lists.teslaclub.hk</a><br class="">
                        <a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a><br class="">
                      </blockquote>
                      _______________________________________________<br class="">
                      OvmsDev mailing list<br class="">
                      <a href="mailto:OvmsDev@lists.teslaclub.hk" class="" moz-do-not-send="true">OvmsDev@lists.teslaclub.hk</a><br class="">
                      <a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a><br class="">
                    </blockquote>
                    _______________________________________________<br class="">
                    OvmsDev mailing list<br class="">
                    <a href="mailto:OvmsDev@lists.teslaclub.hk" class="" moz-do-not-send="true">OvmsDev@lists.teslaclub.hk</a><br class="">
                    <a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a><br class="">
                  </blockquote>
                  <br class="">
                  _______________________________________________<br class="">
                  OvmsDev mailing list<br class="">
                  <a href="mailto:OvmsDev@lists.teslaclub.hk" class="" moz-do-not-send="true">OvmsDev@lists.teslaclub.hk</a><br class="">
                  <a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a><br class="">
                </div>
              </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" moz-do-not-send="true">OvmsDev@lists.teslaclub.hk</a>
<a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a>
</pre>
      </blockquote>
      <br class="">
    </blockquote>
    <br class="">
  </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></body></html>