<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
OK, understood & merged, thanks for the quick fix/workaround.<br>
<br>
I'll ask the Twizy driver to test this.<br>
<br>
Regards,<br>
Michael<br>
<br>
PS: side note: there's a shutdown race condition arising from `while
(!m_is_shutdown)` in the new `OvmsVehicle::VehicleTask()`: if the
task receives a message while m_is_shutdown already has been set, it
will exit the loop and return from the task function, which isn't
allowed. I think FreeRTOS will abort in that case.<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">Am 30.04.24 um 08:55 schrieb Michael
Geddes:<br>
</div>
<blockquote type="cite"
cite="mid:CAH0p7uKuzhga9jF27RoExmyaAVZB83a8Kj8HkrdkB7L2YGOxSQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">No it will start the poll thread of the poller
fine for those that don't use it. That's the last commit.... so
that should be covered. When the callback is registered the
thread is force started.
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">This is not to say that what you are suggesting
isn't a better way forward... just that it should work.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Michael <br>
<div dir="auto"><br>
</div>
<br>
<br>
<div class="gmail_quote" dir="auto">
<div dir="ltr" class="gmail_attr">On Tue, 30 Apr 2024, 14:51
Michael Balzer via OvmsDev, <<a
href="mailto:ovmsdev@lists.openvehicles.com"
moz-do-not-send="true" class="moz-txt-link-freetext">ovmsdev@lists.openvehicles.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> Michael,<br>
<br>
(taking this back to the list, as other developers may
have helpful ideas or suggestions)<br>
<br>
from a first check, your new patch (PR #1008) won't help
for vehicles that don't use the poller, like the generic
DBC vehicle or the Fiat 500 (plus possibly non-public
third party vehicles). As the poller is normally
compiled in, these would need a run time switch to
re-enable the vehicle task, or more suitably default
into that configuration and switch to the poller task
only when the poller gets initialized.<br>
<br>
How about moving the task back into the vehicle class,
but keeping your task message extensions while doing so,
and adding a way for the poller to hook into the task?
The dedicated vehicle task is an essential part of the
vehicle framework, but I do remember some occasions
where a general way to pass custom messages to the
vehicle task would have been helpful to use the task for
more than CAN processing.<br>
<br>
If the poller shall become avaible as a separate service
that can be used without any vehicle instance (currently
not a defined use case), the construct of a CAN
processor task that can be extended for custom messages
(or a message processor task that can subscribe to CAN
frames) could be factored out into a dedicated class or
template. The poller could then create his own instance
of that class, if it cannot hook into an existing one.<br>
<br>
Btw, in case you're not aware of this, FreeRTOS also
provides queue sets (<a
href="https://www.freertos.org/RTOS-queue-sets.html"
target="_blank" rel="noreferrer"
moz-do-not-send="true" class="moz-txt-link-freetext">https://www.freertos.org/RTOS-queue-sets.html</a>).
We haven't used them in the OVMS yet, but they could be
useful, especially if message unions become large or
tasks shall be able to dynamically subscribe to
different message sources.<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div>Am 30.04.24 um 01:20 schrieb Michael Geddes:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="auto">
<div>It might be worth reverting, but, I've got a
patch suggestion that I'll push up which will
let me know if I understand everything and which
might provide a solution.</div>
<div><br>
</div>
<div>If this isn't going to work then revert. (P/R
coming)</div>
<div dir="auto"><br>
</div>
<div>While the poller was still a part of the
vehicle class it was probably still all ok.
The poller had taken over what I assume you are
talking about as the vehicle task. A call-back
fromthe poller was calling IncomingPollRxFrame
which was then coming from the (now) poller task
(is that correct?)</div>
<div><br>
</div>
<div>While we have OVMS_COMP_POLLER config
defined, we could just use the poller task to
provide the IncomingPollRxFrame call-back from
the poller (was vehicle?) task.</div>
<div><br>
</div>
<div>The problem is when OVMS_COMP_POLLER is
undefined, we need an alternate (maybe we could
use the 'Event' loop then) which is when I
hacked that bad solution.</div>
<div><br>
</div>
<div><br>
</div>
<div>//.ichael</div>
<div><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">I was thinking though that because
everything is being queued we could divert some
calls into the car <br>
<br>
<div class="gmail_quote" dir="auto">
<div dir="ltr" class="gmail_attr">On Mon, 29
Apr 2024, 18:58 Michael Balzer, <<a
href="mailto:dexter@expeedo.de"
target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">dexter@expeedo.de</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> Michael,<br>
<br>
I've found a severe design flaw with your
poller change. Sorry, I should have seen
that before, and shouldn't have merged
this.<br>
<br>
You have moved the standard CAN frame
processing from the vehicle task into the
CAN task by changing the vehicle from a
CAN listener to a CAN callback processor.
That will break all kind of things,
vehicles like the Twizy, Smart and many
others rely on frame processing being done
in the dedicated vehicle task.<br>
<br>
This especially induces issues regarding
CAN processing capacity, as the vehicles
rely on having a separate context and not
needing to decouple complex processing of
incoming frames. So this will degrade the
CAN processing performance seriously in
many cases, where additional steps
involving file or network I/O need to be
done.<br>
<br>
So this needs to be changed back.<br>
<br>
I assumed you introduced a new dedicated
poller task but kept the vehicle task
intact. From your naming
(OvmsVehicle::IncomingPollRxFrame), it
seems you misinterpreted the vehicle
task's purpose as only being used for
polling.<br>
<br>
I assume this isn't a small change…? If so
we should revert the poller merge, to
avoid having a defunctional edge build
state until the fix.<br>
<br>
<br>
Secondly: logging is generally expensive
regardless of the log level control and
log channels enabled. Any log message
needs to be queued to the log system, so
involves a lock and a potential wait state
(for the queue) & resulting context
switch (= minimum delay of 10 ms).
Therefore, logging must be avoided as far
as possible in any time critical context,
and is forbidden under some circumstances,
e.g. in a timer callback (see FreeRTOS
docs on this). The log system load
multiplies with connected web clients or
enabled file logging and enabled debug /
verbose level logging -- that quickly
becomes too much, usually triggering the
task watchdog.<br>
<br>
Your logging of nearly all bus events
passing to/from the poller (especially the
log entry in Queue_PollerFrame) becomes an
issue on any vehicle that has high
frequency running process data frames on
the bus, like the Twizy or Smart. As a
counter measure, I've just added a runtime
control for all the poller's verbose
logging (by default now off), and changed
some debug level logs to verbose. Not sure
if I've catched all that may need to be
silenced by default. Please check all your
log calls and place them under the new
"trace" control flag wherever appropriate.<br>
<br>
This won't help avoiding issues with
process data frame buses though.<br>
<br>
<br>
Shall I revert the poller merge for now?<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<br>
<div>Am 29.04.24 um 06:18 schrieb Michael
Geddes:<br>
</div>
<blockquote type="cite">
<div dir="auto">Btw I included the log
changes in the p/r which is a few
small commits for the poller.
<div dir="auto"><br>
</div>
<div dir="auto">//.</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On
Mon, 29 Apr 2024, 07:20 Michael
Geddes, <<a
href="mailto:frog@bunyip.wheelycreek.net" rel="noreferrer noreferrer"
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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hey Michael,
<div>I've got to work now (it's
Monday), but I suspect those
'giving up' are from unsolicited
messages on the bus.</div>
<div>I can re-order things so that
the message will likely be
'dropped (no poll entry)' rather
than the time-out message. </div>
<div>And make it a verbose log.</div>
<div><br>
</div>
<div>//.ichael </div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On
Mon, 29 Apr 2024 at 00:25,
Michael Balzer <<a
href="mailto:dexter@expeedo.de" rel="noreferrer noreferrer noreferrer"
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>
forwarding the Twizy logs to
you directly, as they contain
the user location.<br>
<br>
He has just verified it's the
new version, he says the
module stops responding as
soon as he turns on the Twizy.<br>
<br>
His description of his actions
is a bit ambiguous, and it
seems he didn't enable logging
to the file persistently.<br>
<br>
According to the server, these
were the version boot times:<br>
<br>
2024-04-28 15:30:56 0
3.3.004-32-g125e0841/ota_0/edge
(build idf
v3.3.4-849-g6e214dc335 Apr 26
2024 19:16:50)<br>
2024-04-28 16:21:08 0
3.3.004-32-g125e0841/ota_0/edge
(build idf
v3.3.4-849-g6e214dc335 Apr 26
2024 19:16:50)<br>
2024-04-28 16:38:33 0
3.3.004-63-gf3595561/ota_1/edge
(build idf
v3.3.4-849-g6e214dc335 Apr 27
2024 07:44:50)<br>
2024-04-28 16:40:57 0
3.3.004-63-gf3595561/ota_1/edge
(build idf
v3.3.4-849-g6e214dc335 Apr 27
2024 07:44:50)<br>
2024-04-28 16:43:14 0
3.3.004-63-gf3595561/ota_1/edge
(build idf
v3.3.4-849-g6e214dc335 Apr 27
2024 07:44:50)<br>
2024-04-28 16:46:39 0
3.3.004-63-gf3595561/ota_1/edge
(build idf
v3.3.4-849-g6e214dc335 Apr 27
2024 07:44:50)<br>
2024-04-28 16:54:44 0
3.3.004-32-g125e0841/ota_0/edge
(build idf
v3.3.4-849-g6e214dc335 Apr 26
2024 19:16:50)<br>
<br>
Attached is also his crash
debug log -- a2ll doesn't tell
much about what happened, but
maybe you get an idea from
this.<br>
<br>
After the boot at 16:46, there
are immediately lots of these
messages:<br>
<br>
2024-04-28 16:46:33.792 CEST D
(39042) vehicle-poll: Poller:
Queue PollerFrame()<br>
2024-04-28 16:46:33.792 CEST D
(39042) vehicle-poll:
[1]Poller: Incoming - giving
up<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div>Am 28.04.24 um 16:44
schrieb Michael Geddes:<br>
</div>
<blockquote type="cite">
<div dir="auto">Ah. OK.
<div dir="auto"><br>
</div>
<div dir="auto">I could
try to fix the vin thing
using the new way of
doing it and get rid of
a semaphore? </div>
<div dir="auto">It would
at least identify the
problem possibly?</div>
<div dir="auto"><br>
</div>
<div dir="auto">Michael </div>
<div dir="auto"><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr"
class="gmail_attr">On
Sun, 28 Apr 2024, 22:32
Michael Balzer via
OvmsDev, <<a
href="mailto:ovmsdev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer" target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">ovmsdev@lists.openvehicles.com</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> Not sure if that's
the problem, but I've
found a different
behaviour with the new
PollSetState()
implementation.<br>
<br>
The old version only
did anything if the
new state actually was
different from the
previous one. The
Twizy relies on this
behaviour, calling
PollSetState() from
the per second ticker
(see
OvmsVehicleRenaultTwizy::ObdTicker1).<br>
<br>
The new implementation
apparently always
sends the PollState
command to the task,
and that in turn
always at least locks
the poller mutex. Not
sure if/how that could
cause the observed
issues, but it
definitely adds quite
some (unnecessary?)
lock/unlock
operations.<br>
<br>
<br>
<br>
<div>Am 28.04.24 um
16:05 schrieb
Michael Balzer via
OvmsDev:<br>
</div>
<blockquote
type="cite"> The
Twizy uses the
poller to query the
VIN (once) and DTCs
(every 10 seconds
while driving), see
rt_obd2.cpp.<br>
<br>
It also has its own
version of the OBD
single request
(OvmsVehicleRenaultTwizy::ObdRequest),
which was the
precursor for the
generalized version.
This is used by
custom/user Twizy
plugins and scripts
to access ECU
internals.<br>
<br>
The Twizy doesn't
use
IncomingPollRxFrame,
but the Twizy's
IncomingPollReply
handler will log any
poll responses it
doesn't know about,
so that could lead
to a lot of log
output if something
goes wrong there.<br>
<br>
<br>
<div>Am 28.04.24 um
15:49 schrieb
Michael Geddes via
OvmsDev:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">
<div>AFAICT the
twizzy doesn't
use the poller
list at all.
So is it
missing a
call-back or
something??</div>
<div><br>
</div>
<div>I can see a
potential
problem with
IncomingPollRxFrame
being called
twice as much
as it should
be but only
when there is
a poll list.
Maybe
commenting out
this would do
it. (I can
find another
away to get
this called on
the thread I
want). This
might be the
problem with
the smarted</div>
<div><br>
</div>
<div><font
face="monospace">void
OvmsVehicle::OvmsVehicleSignal::IncomingPollRxFrame(canbus* bus,
CAN_frame_t
*frame, bool
success)<br>
{<br>
//if
(Ready())<br>
//
m_parent->IncomingPollRxFrame(frame,
success);<br>
}<br>
</font></div>
<div><br>
</div>
<div>//.</div>
<div><br>
</div>
<br>
<div
class="gmail_quote">
<div dir="ltr"
class="gmail_attr">On Sun, 28 Apr 2024 at 21:10, Michael Balzer via
OvmsDev <<a
href="mailto:ovmsdev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">ovmsdev@lists.openvehicles.com</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> There
may also be an
issue with the
Renault Twizy,
I've received
a report of a
user who is
using the edge
builds, that
the latest
build wouldn't
work.<br>
<br>
He reports all
kinds of
errors and
warnings
signaled by
the car during
driving, and
switching back
to the
previous build
fixed the
issues.<br>
<br>
I've asked him
to provide a
debug log
excerpt if
possible.<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div>Am
28.04.24 um
14:29 schrieb
Michael Geddes
via OvmsDev:<br>
</div>
<blockquote
type="cite">
<div
dir="auto">
<div>OK.
That's bad.</div>
<div
dir="auto"><br>
</div>
<div
dir="auto">Does
the reading
work in
general?</div>
<div
dir="auto"><br>
</div>
<div
dir="auto">Is
it just the
writing
commands?</div>
<div
dir="auto"><br>
</div>
<div
dir="auto">Raise
a ticket on
github and tag
me in and we
can address it
that way.</div>
<div
dir="auto"><br>
</div>
<div
dir="auto">Michael</div>
<div
dir="auto"><br>
<div
class="gmail_quote" dir="auto">
<div dir="ltr"
class="gmail_attr">On Sun, 28 Apr 2024, 19:49 Thomas Heuer via OvmsDev,
<<a
href="mailto:ovmsdev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">ovmsdev@lists.openvehicles.com</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 lang="DE">
<div>
<p
class="MsoNormal"><span style="font-size:11pt">Hi,</span></p>
<p
class="MsoNormal"><span style="font-size:11pt"> </span></p>
<p
class="MsoNormal"><span style="font-size:11pt" lang="EN-GB">The new
poller code
doesn't seem
to work
properly with
the smarted.</span></p>
<div
style="border:1pt solid rgb(204,204,204);padding:7pt;background:whitesmoke">
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(218831)
vehicle-poll:
[1]PollerNextTick(PRI): cycle complete for ticker=215</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(218831)
vehicle-poll:
Standard Poll
Series: List
reset</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(218831)
vehicle-poll:
PollSeriesList::NextPollEntry[!v.standard]: ReachedEnd</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(218831)
vehicle-poll:
[1]PollerSend:
Poller Reached
End</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219691)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219691)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219691)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219691)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219691)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219691)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219691)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><b><span
style="font-size:10pt;font-family:"Cascadia Mono";color:rgb(0,34,0)"
lang="EN-GB">OVMS#</span></b><span
style="font-size:10pt;font-family:"Cascadia Mono";color:rgb(0,34,0)"
lang="EN-GB"> </span><span
style="font-size:9pt;font-family:"Cascadia Mono";color:white;background:rgb(51,51,51)"
lang="EN-GB">unlock
22</span><span
style="font-size:10pt;font-family:"Cascadia Mono";color:rgb(0,34,0)"
lang="EN-GB"><br>
Vehicle
unlocked</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219691)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219691)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219691)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">V
(219701)
vehicle-poll:
Pollers:
FrameRx(bus=2)</span></p>
<p
class="MsoNormal"
style="margin-bottom:7.5pt;background:whitesmoke;word-break:break-all;border:none;padding:0cm"><span
style="font-size:8.5pt;font-family:"Cascadia Mono";color:gray"
lang="EN-GB">D
(219701)
vehicle-poll:
Poller: Queue
PollerFrame()</span></p>
</div>
<p
class="MsoNormal"><span style="font-size:11pt" lang="EN-GB"> </span></p>
<p
class="MsoNormal"><span style="font-size:11pt" lang="EN-GB"> </span></p>
<div
style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm">
<p
class="MsoNormal"><b><span
style="font-size:11pt;font-family:Calibri,sans-serif">Von:</span></b><span
style="font-size:11pt;font-family:Calibri,sans-serif"> OvmsDev <<a
href="mailto:ovmsdev-bounces@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer noreferrer"
target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">ovmsdev-bounces@lists.openvehicles.com</a>>
<b>Im Auftrag
von </b>Michael
Geddes via
OvmsDev<br>
<b>Gesendet:</b>
Sonntag, 28.
April 2024
12:27<br>
<b>An:</b>
OVMS
Developers
<<a
href="mailto:ovmsdev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer noreferrer"
target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">ovmsdev@lists.openvehicles.com</a>><br>
<b>Cc:</b>
Michael Geddes
<<a
href="mailto:frog@bunyip.wheelycreek.net"
rel="noreferrer noreferrer noreferrer noreferrer noreferrer"
target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">frog@bunyip.wheelycreek.net</a>><br>
<b>Betreff:</b>
[Ovmsdev] OVMS
Poller
module/singleton</span></p>
</div>
<p
class="MsoNormal"> </p>
<div>
<p
class="MsoNormal">Hey all,</p>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">The poller singleton code that I've been working on
for over a
year now is
merged in.
(Thanks
Michael for
expediting the
final step).</p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">This includes separate multi-frame states per bus and
multiple poll
lists as well
as
non-blocking
one off
queries. As
well as more
'states'.</p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">I have included some programming documentation in the
change but am
happy to
supply more if
needed. </p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">The ioniq 5 code has some examples of how it can be
used. Some
examples are:</p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">* grabbing the vin as a one shot without blocking </p>
</div>
<div>
<p
class="MsoNormal">* having a short list of queries that are polled
quickly for
obd2ecu (this
also
demonstrates
using a
shorter frame
break value
and then a
break after
successful a
response)</p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">Have a play please!</p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">Also interested in hearing what user tools might be
worth looking
at next for
the poller
object.</p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal">//.ichael G.</p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
<div>
<p
class="MsoNormal"> </p>
</div>
</div>
</div>
</div>
_______________________________________________<br>
OvmsDev
mailing list<br>
<a
href="mailto:OvmsDev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer noreferrer"
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 noreferrer noreferrer noreferrer noreferrer 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>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
OvmsDev mailing list
<a href="mailto:OvmsDev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer" 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"
rel="noreferrer noreferrer noreferrer noreferrer" 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"
rel="noreferrer noreferrer noreferrer noreferrer" 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 noreferrer noreferrer noreferrer 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></fieldset>
<pre>_______________________________________________
OvmsDev mailing list
<a href="mailto:OvmsDev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer" 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"
rel="noreferrer noreferrer noreferrer noreferrer" 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>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
OvmsDev mailing list
<a href="mailto:OvmsDev@lists.openvehicles.com"
rel="noreferrer noreferrer noreferrer noreferrer" 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"
rel="noreferrer noreferrer noreferrer noreferrer" 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"
rel="noreferrer noreferrer noreferrer noreferrer" 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 noreferrer noreferrer noreferrer noreferrer"
target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
</blockquote>
</div>
</blockquote>
<br>
<pre cols="72">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
<br>
<pre cols="72">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</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" rel="noreferrer" 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 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>
</div>
</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>