<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=""><div class=""><br class=""></div><div class="">The backtrace you provided does not seem complete. Here is what it shows:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""># xtensa-esp32-elf-addr2line -pfiaC -e 3.1.008-29-gaf41242.ovms3.elf 0x400dc8ec 0x4008f43d 0x4008e181 0x400818cc 0x40082163 0x40083c4d 0x400dc8e9</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x400dc8ec: esp_vApplicationIdleHook at /home/openvehicles/build/esp-idf/components/esp32/freertos_hooks.c:85</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x4008f43d: prvIdleTask at /home/openvehicles/build/esp-idf/components/freertos/tasks.c:4587</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x4008e181: xQueueGiveFromISR at /home/openvehicles/build/esp-idf/components/freertos/queue.c:2037</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x400818cc: timer_alarm_handler at /home/openvehicles/build/esp-idf/components/esp32/esp_timer.c:318</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40082163: timer_alarm_isr at /home/openvehicles/build/esp-idf/components/esp32/esp_timer_esp32.c:323</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40083c4d: _xt_lowint1 at /home/openvehicles/build/esp-idf/components/freertos/xtensa_vectors.S:1105</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x400dc8e9: esp_vApplicationIdleHook at /home/openvehicles/build/esp-idf/components/esp32/freertos_hooks.c:85</span></font></div></div></blockquote><div class=""><br class=""></div><div class="">The 'Alloca exception’ is a stack overflow.</div><div class=""><br class=""></div><div class="">I don’t see anything in vehicle_thinkcity using up much stack.</div><div class=""><br class=""></div><div class="">Are you using the <a href="http://api.openvehicles.com" class="">api.openvehicles.com</a> server? If so, what is your vehicle id? These crashes are also reported to the server and we can check there for details. I do see some crashes for TC003 (which I think is one of yours):</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""># xtensa-esp32-elf-addr2line -pfiaC -e 3.1.008-29-gaf41242.ovms3.elf 0x40091e6b 0x40091fc3 0x40091063 0x40091423 0x40091a83 0x40083e80 0x40083f1f 0x4008db31 0x401b36c5 0x401bca20 0x40089ea1</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40091e6b: invoke_abort at /home/openvehicles/build/esp-idf/components/esp32/panic.c:669</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40091fc3: abort at /home/openvehicles/build/esp-idf/components/esp32/panic.c:669</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40091063: multi_heap_assert at /home/openvehicles/build/esp-idf/components/heap/multi_heap.c:696</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40091423: multi_heap_malloc_impl at /home/openvehicles/build/esp-idf/components/heap/multi_heap.c:696</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40091a83: multi_heap_malloc at /home/openvehicles/build/esp-idf/components/heap/multi_heap_poisoning.c:328</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40083e80: heap_caps_malloc at /home/openvehicles/build/esp-idf/components/heap/heap_caps.c:387</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40083f1f: heap_caps_malloc_prefer at /home/openvehicles/build/esp-idf/components/heap/heap_caps.c:387</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x4008db31: wifi_malloc at /home/openvehicles/build/esp-idf/components/esp32/wifi_internal.c:31</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x401b36c5: esf_buf_alloc at ??:?</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x401bca20: wdevProcessRxSucDataAll at ??:?</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">0x40089ea1: ppTask at ??:?</span></font></div></div></blockquote><div class=""><br class=""></div><div class="">Maybe heap/stack corruption? But your module looks ok. What else do you have configured to run? Can you show the output of ‘config show auto’, ‘module memory’, and ‘module tasks’?</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class=""><div class="" style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13px;"><div class="">How is performance and power usage affected when using S<span class="">tandardMetrics.xxxxx->SetValue</span> in the <span class="">IncomingFrameCan1 method?</span></div><div class="">Most of the messages update value every 100ms, and except maybe speed, battery current and voltage, most of the parameters are not changing that often. And even for the speed, current and voltage, it is probably enough to update StandardMetrics in the 1 second ticker... does this make sense or is the difference non-existing. </div></div></div></blockquote></div><div class=""><br class=""></div><div class="">The function to set a metric’s value checks to see if the value has changed before updating, so should not be too expensive/costly to run. The only time I’ve seen this as an issue is when a value if flapping (changing every 1/100th second, as it moves around). You can workaround that with the age() function of the metric. Such as this example from vehicle_teslamodels:</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="">// Don't update battery voltage too quickly (as it jumps around like crazy)</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">if (StandardMetrics.ms_v_bat_voltage->Age() > 10)</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""> StandardMetrics.ms_v_bat_voltage->SetValue(((float)((int)d[1]<<8)+d[0])/100);</span></font></div></blockquote><div class=""><br class=""></div><div class="">Or, if you really want to limit the number of updates, you could use monotonictime in your IncomingFrameCan1() function, and only run the code to look at changed metrics if it is different from the last run (which would delay metrics for a maximum of once every second):</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">static uint32_t tc_monotonic = 0;</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""><br class=""></span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">void OvmsVehicleThinkCity::IncomingFrameCan1(CAN_frame_t* p_frame)</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""> {</span></font></div></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""> if (tc_monotonic == monotonictime) return;</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""> tc_monotonic = monotonictime</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""> ...</span></font></div></blockquote><div class=""><br class=""></div><div class="">Regards, Mark.</div><div><br class=""><blockquote type="cite" class=""><div class="">On 26 Jul 2018, at 3:59 PM, Nikolay Shishkov <<a href="mailto:nshishkov@yahoo.com" class="">nshishkov@yahoo.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;" class=""><div class="">Quick update:</div><div class="">I managed to do a not so quick update on one of the ovms v.3 boxes that sits in a Think and can confirm that the porting seems to work. </div><div class="">I could see speed, parking time, ambient temperature.</div><div class=""><br class=""></div><div class="">I had very strange problems doing the OTA update. The firmware start download and I can see the messages progressing, but it would halt in between 700kB and 1600kB and then stay there until I refresh the browser. </div><div class="">And when I refresh the browser I am asked of my password which leads me to that there must have been a crash in the meantime. </div><div class=""><br class=""></div><div class="">I was finally able to get the OTA update work by disconnecting the box from the car and powering it via USB. This is a single data point but it kind of points to a problem with the code that communicates with the car. </div><div class=""><br class=""></div><div class="">I was not able to get a laptop connected to checkout the console, but managed to get the following log - not sure how to interpret it. </div><div class=""> <span class=""><div class="">Last boot was 87 second(s) ago</div><div class="">Time at boot: 2018-07-25 18:07:43 GMT</div><div class="">This is reset #3 since last power cycle</div><div class="">Detected boot reason: Crash (12/12)</div><div class="">Crash counters: 3 total, 0 early</div><div class=""><br class=""></div><div class="">Last crash: Alloca exception on core 0</div><div class="">Registers:</div><div class="">PC : 0x400dc8ec PS : 0x00060234 A0 : 0x8008f440 A1 : 0x3ffc45b0</div><div class="">A2 : 0x00000020 A3 : 0x00000001 A4 : 0x00000000 A5 : 0x3ffb44b8</div><div class="">A6 : 0x3ffb47e4 A7 : 0x3ffb458c A8 : 0x3ffb44d4 A9 : 0x3ffc4590</div><div class="">A10 : 0x00000000 A11 : 0x7fffffff A12 : 0x8008e65b A13 : 0x3ffcc450</div><div class="">A14 : 0x00000003 A15 : 0x00060023 SAR : 0x00000000 EXCCAUSE: 0x00000005</div><div class="">EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000</div><div class="">Backtrace:</div><div class="">0x400dc8ec 0x4008f43d 0x4008e181 0x400818cc 0x40082163 0x40083c4d 0x400dc8e9</div><div class="">Version: 3.1.008-29-gaf41242/ota_1/edge (build idf v3.1-dev-987-g55d915e Jul 6 2018 00:14:59)</div><div class="">Running partition: ota_1</div><div class="">Boot partition: ota_1</div><div class="">Firmware: 3.1.008-29-gaf41242/ota_1/edge (build idf v3.1-dev-987-g55d915e Jul 6 2018 00:14:59)</div></span></div><div class=""><br class=""></div><div class="">How is performance and power usage affected when using S<span class="">tandardMetrics.xxxxx->SetValue</span> in the <span class="">IncomingFrameCan1 method?</span></div><div class="">Most of the messages update value every 100ms, and except maybe speed, battery current and voltage, most of the parameters are not changing that often. And even for the speed, current and voltage, it is probably enough to update StandardMetrics in the 1 second ticker... does this make sense or is the difference non-existing. </div><div class=""><br class=""></div><div class="">Thanks for all the hand holding and help, </div><div class="">Nikolay </div><div class=""><br class=""></div><div id="yahoo_quoted_3182977951" class="yahoo_quoted">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;" class="">
<div class="">
On Thursday, July 19, 2018, 1:11:46 PM GMT+2, Nikolay Shishkov <<a href="mailto:nshishkov@yahoo.com" class="">nshishkov@yahoo.com</a>> wrote:
</div>
<div class=""><br class=""></div>
<div class=""><br class=""></div>
<div class=""><div id="yiv9610836996" class=""><div class=""><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;" class=""><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;" class=""><div class=""></div>
<div class="">Done. </div><div class=""><a rel="nofollow" shape="rect" class="yiv9610836996" target="_blank" href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/pull/143">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/pull/143</a><br clear="none" class=""></div><div class=""><br clear="none" class=""></div><div class="">I have not tested this in a vehicle.</div><div class="">It would take some time to receive the new boxes, but I thought it may help someone to go further. </div><div class=""><br clear="none" class=""></div><div class=""><br clear="none" class=""></div><div class=""><br clear="none" class=""></div><div class=""><br clear="none" class=""></div><div class=""><br clear="none" class=""></div>
</div><div class="yiv9610836996yahoo_quoted" id="yiv9610836996yahoo_quoted_2652681336">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;" class="">
<div class="yiv9610836996yqt3699350765" id="yiv9610836996yqt45699"><div class="">
On Thursday, July 19, 2018, 12:46:28 PM GMT+2, Mark Webb-Johnson <<a href="mailto:mark@webb-johnson.net" class="">mark@webb-johnson.net</a>> wrote:
</div>
<div class=""><br clear="none" class=""></div>
<div class=""><br clear="none" class=""></div>
<div class=""><div id="yiv9610836996" class=""><div class=""><div class=""></div><div class="">Best is to create a pull request, and let us know. We can check and merge with master.</div><div class=""><br clear="none" class=""></div><div class="">Regards, Mark</div><div class="yiv9610836996yqt4942752334" id="yiv9610836996yqt29398"><div class=""><br clear="none" class="">On 19 Jul 2018, at 6:41 PM, Nikolay Shishkov <<a rel="nofollow" shape="rect" ymailto="mailto:nshishkov@yahoo.com" target="_blank" href="mailto:nshishkov@yahoo.com" class="">nshishkov@yahoo.com</a>> wrote:<br clear="none" class=""><br clear="none" class=""></div><blockquote type="cite" class=""><div class=""><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;" class=""><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;" class=""><div class=""></div>
<div class="">Thank you guys!</div><div class="">I think I am ready with something I want to create pull request on. Do I do this through my own repository, or can I just send someone a diff?</div><div class="">Nikolay</div><div class=""><br clear="none" class=""></div>
</div><div class="yiv9610836996yahoo_quoted" id="yiv9610836996yahoo_quoted_2418342972">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;" class="">
<div class="">
On Thursday, July 19, 2018, 12:37:58 PM GMT+2, Michael Balzer <<a rel="nofollow" shape="rect" ymailto="mailto:dexter@expeedo.de" target="_blank" href="mailto:dexter@expeedo.de" class="">dexter@expeedo.de</a>> wrote:
</div>
<div class=""><br clear="none" class=""></div>
<div class=""><br clear="none" class=""></div>
<div class=""><div id="yiv9610836996" class=""><div class="">
Nikolay,<br clear="none" class="">
<br clear="none" class="">
<blockquote type="cite" class="">
</blockquote></div><div class=""><blockquote class="yiv9610836996" type="cite">
<div class="yiv9610836996">
<div class="yiv9610836996" style="">
<div class="yiv9610836996">
<div class="yiv9610836996">
<div class="yiv9610836996">- what is the best way to compare
OvmsMetricStrings? Or should I dublicate the state in
an enum and use that?</div>
<div class="yiv9610836996">- what is the best way to compare the
OvmsMetricFloat to a literal float?</div>
</div>
</div>
</div>
</div>
</blockquote>
<br clear="none" class="">
If you want to compare a state code encoded as a string, you can
simply compare the std::string returned by AsString() with hard
coded strings, e.g.<br clear="none" class="">
<br clear="none" class="">
<tt class=""> std::string charge_state =
StdMetrics.ms_v_charge_state->AsString();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> if (charge_state == "charging")</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> …</tt><tt class=""><br clear="none" class="">
</tt><br clear="none" class="">
If you'd rather use the old numeric state codes, there are utility
functions in the ovms_utils module for encoding / decoding them.<br clear="none" class="">
<br clear="none" class="">
As Mark wrote, you get the float value by the AsFloat() method and
can compare that directly to a float literal. We haven't added
comparison operators to the metrics classes yet, just assignment
(and that needs casts in many cases). If you'd like to add more
operators/types, go ahead.<br clear="none" class="">
<br clear="none" class="">
<br clear="none" class="">
<blockquote type="cite" class=""><br clear="none" class="yiv9610836996">
<blockquote class="yiv9610836996" type="cite">
<div class="yiv9610836996">
<div class="yiv9610836996" style="">
<div class="yiv9610836996">
<div class="yiv9610836996">
<div class="yiv9610836996">- what is the current way of doing <span class="yiv9610836996">net_req_notification</span></div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=""><br clear="none" class="yiv9610836996">
</div>
<div class="">Not required in v3. If you change a metric that needs
notification, the serverv2 and serverv3 will act appropriately.</div>
</blockquote>
<br clear="none" class="">
And if you want to customize standard notifications, you can do so
by overloading the vehicle methods:<br clear="none" class="">
<br clear="none" class="">
<tt class=""> virtual void NotifyChargeState();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyChargeStart();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyHeatingStart();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyChargeStopped();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyChargeDone();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyValetEnabled();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyValetDisabled();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyValetHood();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyValetTrunk();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyAlarmSounding();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void NotifyAlarmStopped();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void Notify12vCritical();</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> virtual void Notify12vRecovered();</tt><br clear="none" class="">
<br clear="none" class="">
If you want to add vehicle specific notifications, take a look at
the Twizy module (rt_notify).<br clear="none" class="">
<br clear="none" class="">
You can simply send a notification from any command output by
issuing MyNotify.NotifyCommand() (att: stack intensive) or send any
string by MyNotify.NotifyString(). There are also varargs versions
with "f" suffix acting like printf.<br clear="none" class="">
<br clear="none" class="">
For building strings from command methods, there is the StringWriter
class, that's a std::string that can be used as an OvmsWriter.
Example:<br clear="none" class="">
<br clear="none" class="">
<tt class=""> StringWriter buf(200);</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> CommandStat(COMMAND_RESULT_NORMAL, &buf);</tt><tt class=""><br clear="none" class="">
</tt><tt class=""> MyNotify.NotifyString("info", "charge.sufficient",
buf.c_str());</tt><br clear="none" class="">
<br clear="none" class="">
Best practice is to send notifications from within an event handler
(e.g. Ticker1), so they run asynchronously in the event task context
instead of blocking something.<br clear="none" class="">
<br clear="none" class="">
Regards,<br clear="none" class="">
Michael<br clear="none" class="">
<br clear="none" class="">
PS: we should start collecting these pieces for the developer
manual, the general system API is quite mature now<div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd36178"><br clear="none" class="">
<br clear="none" class="">
<br clear="none" class="">
</div><blockquote type="cite" class=""><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd98875">On
19 Jul 2018, at 6:00 AM, Nikolay Shishkov <<a rel="nofollow" shape="rect" class="yiv9610836996" ymailto="mailto:nshishkov@yahoo.com" target="_blank" href="mailto:nshishkov@yahoo.com">nshishkov@yahoo.com</a>> wrote:
</div><div class=""><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd84373">
</div><blockquote class="yiv9610836996" type="cite"><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd08496"><br clear="none" class="yiv9610836996Apple-interchange-newline">
</div><div class="yiv9610836996"><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd35976">
</div><div class="yiv9610836996"><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd14102">
</div><div class="yiv9610836996" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd61138">
<div class="yiv9610836996" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;">
<div class="yiv9610836996" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;">
<div class="yiv9610836996">Hi, </div>
<div class="yiv9610836996">I am working on the Think City EV code
and have some questions.</div>
<div class="yiv9610836996">- what is the best way to signal that
the charging connector is plugged?
ms_v_charge_pilot?</div>
<div class="yiv9610836996">previously it was cardoorbits1. </div>
<div class="yiv9610836996"><br clear="none" class="yiv9610836996">
</div>
<div class="yiv9610836996">- what is the best way to compare
OvmsMetricStrings? Or should I dublicate the state
in an enum and use that?</div>
<div class="yiv9610836996"><br clear="none" class="yiv9610836996">
</div>
<div class="yiv9610836996">- what is the best way to compare the
OvmsMetricFloat to a literal float?</div>
<div class="yiv9610836996"><br clear="none" class="yiv9610836996">
</div>
<div class="yiv9610836996">- what is the current way of doing <span class="yiv9610836996">net_req_notification</span></div>
<div class="yiv9610836996"><br clear="none" class="yiv9610836996">
</div>
<div class="yiv9610836996">Thanks in advance,</div>
<div class="yiv9610836996">Nikolay</div>
</div>
</div>
</div><div class="yiv9610836996yahoo_quoted" id="yiv9610836996yahoo_quoted_1950539485"><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd09252">
</div><div class="yiv9610836996" style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;"><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd20374">
<div class="yiv9610836996"> On Tuesday, July 17, 2018, 3:37:49 AM
GMT+2, Mark Webb-Johnson <<a rel="nofollow" shape="rect" class="yiv9610836996" ymailto="mailto:mark@webb-johnson.net" target="_blank" href="mailto:mark@webb-johnson.net">mark@webb-johnson.net</a>>
wrote: </div></div>
<br clear="none" class="">
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br clear="none" class="">
<pre class="yiv9610836996moz-signature">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd11498">
</div></div></div><div class="yiv9610836996yqt4097312186" id="yiv9610836996yqtfd59892">_______________________________________________<br clear="none" class="">OvmsDev mailing list<br clear="none" class=""><a rel="nofollow" shape="rect" ymailto="mailto:OvmsDev@lists.openvehicles.com" target="_blank" href="mailto:OvmsDev@lists.openvehicles.com" class="">OvmsDev@lists.openvehicles.com</a><br clear="none" class=""><a rel="nofollow" shape="rect" target="_blank" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" class="">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br clear="none" class=""></div></div>
</div>
</div></div></div></blockquote></div><blockquote type="cite" class=""><div class=""><span class="">_______________________________________________</span><br clear="none" class=""><span class="">OvmsDev mailing list</span><br clear="none" class=""><span class=""><a rel="nofollow" shape="rect" ymailto="mailto:OvmsDev@lists.openvehicles.com" target="_blank" href="mailto:OvmsDev@lists.openvehicles.com" class="">OvmsDev@lists.openvehicles.com</a></span><br clear="none" class=""><span class=""><a rel="nofollow" shape="rect" target="_blank" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" class="">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></span><br clear="none" class=""></div></blockquote></div></div><div class="yiv9610836996yqt4942752334" id="yiv9610836996yqt58658">_______________________________________________<br clear="none" class="">OvmsDev mailing list<br clear="none" class=""><a rel="nofollow" shape="rect" ymailto="mailto:OvmsDev@lists.openvehicles.com" target="_blank" href="mailto:OvmsDev@lists.openvehicles.com" class="">OvmsDev@lists.openvehicles.com</a><br clear="none" class=""><a rel="nofollow" shape="rect" target="_blank" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" class="">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br clear="none" class=""></div></div></div>
</div>
</div></div></div></div></div>
</div>
</div></div></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=""></body></html>