<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>