<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="">Not sure how we can do this, in a generic way, without a delay. Let’s look at the “ShutDown” event:<div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">The “module reset” goes through the first part (ShuttingDown), then sends the ShutDown event. We can use a ‘done’ callback to know when that event has been delivered.</li><li class="">The SD CARD process picks up on ShutDown, and issues it’s own “sd.unmount.prep” event. It too can use a ‘done’ callback to know when that event has been delivered.</li><li class="">Now that the ShutDown event has been delivered, the ‘done’ callback for that is fired and “module reset” things everything is shutdown.</li><li class="">But, the “sd.unmount.prep” event has not been delivered yet, and the sd card has not been unmounted.</li></ul><div><br class=""></div><div>This is different to the “sd unmount” case, where sending “sd.unmount.prep” and then doing the actual unmount on the callback is fine. Although, I am still unsure of how that will work in practice; as we really need to keep the command blocked until that unmount has run to completion.</div><div><br class=""></div><div>Ideas? Without making it overly complex?</div><div><br class=""></div><div>Regards, Mark</div><div><br class=""><blockquote type="cite" class=""><div class="">On 30 Apr 2018, at 3:13 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="">
    Sorry for not being clear, it's early over here. My point was:<br class="">
    <br class="">
    Unmounting the SD card should be a separate process, usable without
    doing a complete shutdown.<br class="">
    <br class="">
    Regarding a fixed delay, I would rather proceed to the actual
    unmount  as soon as the "unmounting" event has been processed by all
    listeners, i.e. on the event's done callback. Unmounting listeners
    just need to close their files, no need to introduce delays there.<br class="">
    <br class="">
    Regards,<br class="">
    Michael<br class="">
    <br class="">
    <br class="">
    <div class="moz-cite-prefix">Am 30.04.2018 um 08:41 schrieb Mark
      Webb-Johnson:<br class="">
    </div>
    <blockquote type="cite" cite="mid:B09911C9-0CEB-4423-B550-6611B8C3CDF4@webb-johnson.net" class="">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
      <div class=""><br class="">
      </div>
      That is why I was thinking of two signals:
      <div class=""><br class="">
      </div>
      <div class="">
        <ol class="MailOutline">
          <li class="">“ShuttingDown”. This would be sent when the
            shutdown process was initiated. My suggestion is to then
            delay 20 seconds (to give peripherals time to cleanly
            shutdown) before proceeding to the next stage. The signal is
            intended to ask peripherals and systems to cleanly prepare
            for shutdown.<br class="">
            <br class="">
          </li>
          <li class="">“ShutDown”. This would be sent 5 seconds before
            the actual shutdown. The signal is intended to ask
            peripherals and systems to prepare for shutdown now.</li>
        </ol>
        <div class=""><br class="">
        </div>
        <div class="">I will implement the basics of this tonight.</div>
        <div class=""><br class="">
        </div>
        <div class="">Regards, Mark.</div>
        <div class=""><br class="">
          <blockquote type="cite" class="">
            <div class="">On 30 Apr 2018, at 2:32 PM, Michael Balzer
              <<a href="mailto:dexter@expeedo.de" class="" moz-do-not-send="true">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=""> Yes, a
                general shutdown signal scheme makes sense, but still
                also a separate SD unmounting signal to be able to
                remove just the SD card with a single command.<br class="">
                <br class="">
                Regards,<br class="">
                Michael<br class="">
                <br class="">
                <br class="">
                <div class="moz-cite-prefix">Am 30.04.2018 um 04:28
                  schrieb Mark Webb-Johnson:<br class="">
                </div>
                <blockquote type="cite" cite="mid:B0392199-B3EA-49AC-9CAD-A59991ACB4C8@webb-johnson.net" class="">
                  <meta http-equiv="Content-Type" content="text/html;
                    charset=utf-8" class="">
                  Writing the code last night, it seemed that the
                  shutting down of wifi/simcom/etc was messy.
                  <div class=""><br class="">
                  </div>
                  <div class="">Perhaps we need to have new signals
                    “ShuttingDown” and “ShutDown”, then make the
                    components responsible for this? So, for example,
                    wifi powers off, server v2 disconnects, logging
                    stops logging to SD, etc, on “ShuttingDown”. Then SD
                    unmounts on “ShutDown”.</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">A better solution?</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">Regards, Mark.</div>
                  <div class="">
                    <div class=""><br class="">
                      <div class="">
                        <blockquote type="cite" class="">
                          <div class="">On 30 Apr 2018, at 6:31 AM,
                            Michael Balzer <<a href="mailto:dexter@expeedo.de" class="" moz-do-not-send="true">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=""> Attention: performing an
                              AutoFlash just killed my SD filesystem.<br class="">
                              <br class="">
                              Possibly just by chance and I was lucky
                              all the reboots before, but I think we
                              really need to close all SD files before
                              reboot -- see issue #97.<br class="">
                              <br class="">
                              FYI: the SD could be restored by a simple
                              fsck, no data loss. My Linux system also
                              could mount the SD before the fsck. The
                              module was stuck in the mount attempt.<br class="">
                              <br class="">
                              Regards,<br class="">
                              Michael<br class="">
                              <br class="">
                              <br class="">
                              <div class="moz-cite-prefix">Am 29.04.2018
                                um 16:39 schrieb Mark Webb-Johnson:<br class="">
                              </div>
                              <blockquote type="cite" cite="mid:8A101897-B19C-4FEC-89D5-8D00304BC65F@webb-johnson.net" class="">
                                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
                                <div class=""><br class="">
                                </div>
                                The last piece of the puzzle falls into
                                place.
                                <div class=""><br class="">
                                </div>
                                <blockquote style="margin: 0 0 0 40px;
                                  border: none; padding: 0px;" class=""><font class="" face="Andale Mono"><span style="font-size: 14px;" class="">OVMS#
                                      config set auto ota yes</span></font></blockquote>
                                <blockquote style="margin: 0 0 0 40px;
                                  border: none; padding: 0px;" class=""><font class="" face="Andale Mono"><span style="font-size: 14px;" class="">OVMS#
                                      config set ota auto.hour 2</span></font></blockquote>
                                <div class="">
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Module will wake up
                                    sometime between 2am and 3am, and if
                                    wifi is available it will check the
                                    available server version (according
                                    to OTA tag and server url). If the
                                    server has a later version, the
                                    module will download and flash that
                                    new version then reboot into it.</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">I’ve also brought in the
                                    strverscmp function for GNU library,
                                    which is generally useful for
                                    comparing versions.</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Enjoy.</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Regards, Mark.</div>
                                  <div class=""><br class="">
                                    <blockquote type="cite" class="">
                                      <div class="">Begin forwarded
                                        message:</div>
                                      <br class="Apple-interchange-newline">
                                      <div style="margin-top: 0px;
                                        margin-right: 0px;
                                        margin-bottom: 0px; margin-left:
                                        0px;" class=""><span style="font-family:
                                          -webkit-system-font,
                                          "Helvetica Neue",
                                          Helvetica, sans-serif;" class=""><b class="">From: </b></span><span style="font-family:
                                          -webkit-system-font, Helvetica
                                          Neue, Helvetica, sans-serif;" class="">GitHub <<a href="mailto:noreply@github.com" class="" moz-do-not-send="true">noreply@github.com</a>><br class="">
                                        </span></div>
                                      <div style="margin-top: 0px;
                                        margin-right: 0px;
                                        margin-bottom: 0px; margin-left:
                                        0px;" class=""><span style="font-family:
                                          -webkit-system-font,
                                          "Helvetica Neue",
                                          Helvetica, sans-serif;" class=""><b class="">Subject:
                                          </b></span><span style="font-family:
                                          -webkit-system-font, Helvetica
                                          Neue, Helvetica, sans-serif;" class=""><b class="">[openvehicles/Open-Vehicle-Monitoring-System-3]
                                            1a4301: Bring in GNU
                                            strverscmp component, and
                                            test comman...</b><br class="">
                                        </span></div>
                                      <div style="margin-top: 0px;
                                        margin-right: 0px;
                                        margin-bottom: 0px; margin-left:
                                        0px;" class=""><span style="font-family:
                                          -webkit-system-font,
                                          "Helvetica Neue",
                                          Helvetica, sans-serif;" class=""><b class="">Date: </b></span><span style="font-family:
                                          -webkit-system-font, Helvetica
                                          Neue, Helvetica, sans-serif;" class="">29 April 2018 at
                                          10:23:54 PM HKT<br class="">
                                        </span></div>
                                      <div style="margin-top: 0px;
                                        margin-right: 0px;
                                        margin-bottom: 0px; margin-left:
                                        0px;" class=""><span style="font-family:
                                          -webkit-system-font,
                                          "Helvetica Neue",
                                          Helvetica, sans-serif;" class=""><b class="">To: </b></span><span style="font-family:
                                          -webkit-system-font, Helvetica
                                          Neue, Helvetica, sans-serif;" class=""><a href="mailto:mark@webb-johnson.net" class="" moz-do-not-send="true">mark@webb-johnson.net</a><br class="">
                                        </span></div>
                                      <div style="margin-top: 0px;
                                        margin-right: 0px;
                                        margin-bottom: 0px; margin-left:
                                        0px;" class=""><span style="font-family:
                                          -webkit-system-font,
                                          "Helvetica Neue",
                                          Helvetica, sans-serif;" class=""><b class="">Reply-To:
                                          </b></span><span style="font-family:
                                          -webkit-system-font, Helvetica
                                          Neue, Helvetica, sans-serif;" class="">GitHub <<a href="mailto:noreply@github.com" class="" moz-do-not-send="true">noreply@github.com</a>><br class="">
                                        </span></div>
                                      <br class="">
                                      <div class="">
                                        <div class="">  Branch:
                                          refs/heads/master<br class="">
                                           Home:   <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3" class="" moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3</a><br class="">
                                           Commit:
                                          1a4301d7ca1c7ed619109dfcb2e832a599af7dda<br class="">
                                               <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/1a4301d7ca1c7ed619109dfcb2e832a599af7dda" class="" moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/1a4301d7ca1c7ed619109dfcb2e832a599af7dda</a><br class="">
                                           Author: Mark Webb-Johnson
                                          <<a href="mailto:mark@webb-johnson.net" class="" moz-do-not-send="true">mark@webb-johnson.net</a>><br class="">
                                           Date:   2018-04-29 (Sun, 29
                                          Apr 2018)<br class="">
                                          <br class="">
                                           Changed paths:<br class="">
                                             A
                                          vehicle/OVMS.V3/components/strverscmp/component.mk<br class="">
                                             A
                                          vehicle/OVMS.V3/components/strverscmp/src/strverscmp.c<br class="">
                                             A
                                          vehicle/OVMS.V3/components/strverscmp/src/strverscmp.h<br class="">
                                             M
                                          vehicle/OVMS.V3/main/test_framework.cpp<br class="">
                                          <br class="">
                                           Log Message:<br class="">
                                           -----------<br class="">
                                           Bring in GNU strverscmp
                                          component, and test command<br class="">
                                          <br class="">
                                          <br class="">
                                           Commit:
                                          58fa1b57448d3491889e3d1d3f487e475d036c92<br class="">
                                               <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/58fa1b57448d3491889e3d1d3f487e475d036c92" class="" moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/58fa1b57448d3491889e3d1d3f487e475d036c92</a><br class="">
                                           Author: Mark Webb-Johnson
                                          <<a href="mailto:mark@webb-johnson.net" class="" moz-do-not-send="true">mark@webb-johnson.net</a>><br class="">
                                           Date:   2018-04-29 (Sun, 29
                                          Apr 2018)<br class="">
                                          <br class="">
                                           Changed paths:<br class="">
                                             M
                                          vehicle/OVMS.V3/components/ovms_ota/src/ovms_ota.cpp<br class="">
                                             M
                                          vehicle/OVMS.V3/components/ovms_ota/src/ovms_ota.h<br class="">
                                          <br class="">
                                           Log Message:<br class="">
                                           -----------<br class="">
                                           AutoFlash implementation:<br class="">
                                          Config auto[ota]=yes<br class="">
                                          Config ota[auto.hour]=2<br class="">
                                          <br class="">
                                          <br class="">
                                          Compare: <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/compare/87d80c30825b...58fa1b57448d" class="" moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/compare/87d80c30825b...58fa1b57448d</a></div>
                                      </div>
                                    </blockquote>
                                  </div>
                                  <br class="">
                                </div>
                                <br class="">
                                <fieldset class="mimeAttachmentHeader"></fieldset>
                                <br class="">
                                <pre class="" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                              </blockquote>
                              <br class="">
                              <pre class="moz-signature" cols="160">-- 
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.openvehicles.com" class="" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br class="">
                            <a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br class="">
                          </div>
                        </blockquote>
                      </div>
                      <br class="">
                    </div>
                  </div>
                  <br class="">
                  <fieldset class="mimeAttachmentHeader"></fieldset>
                  <br class="">
                  <pre class="" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                </blockquote>
                <br class="">
                <pre class="moz-signature" cols="160">-- 
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.openvehicles.com" class="" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br class="">
              <a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br class="">
            </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.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 class="">
    <pre class="moz-signature" cols="160">-- 
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.openvehicles.com" class="">OvmsDev@lists.openvehicles.com</a><br class="">http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br class=""></div></blockquote></div><br class=""></div></body></html>