<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    The Twizy feedback looks better, 3.3.004-74-gbd4e7196 seems to be
    fully functional again.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 03.05.24 um 13:35 schrieb Michael
      Geddes via OvmsDev:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAH0p7uJt3CKA2pJO4oqLLvs5phfa=A0dnNtTNjsuVnepF25exQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">
        <div>Thanks that is definitely weird.  Will check it out in
          detail tomorrow.
          <div dir="auto">
            <div dir="auto"><br>
            </div>
            <div dir="auto"><br>
            </div>
            <div dir="auto">Michael </div>
          </div>
          <br>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">On Fri, 3 May 2024, 19:10
              Derek Caudwell 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 dir="ltr">
                <div>Hi Michael,</div>
                <div><br>
                </div>
                When running firmware 
                <span
style="color:rgb(0,34,0);font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Hack,"Source Code Pro","Roboto Mono",Menlo,Monaco,Consolas,monospace;font-size:13px">3.3.004-74-gbd4e7196
                  on my Nissan Leaf I suspect (but can't be 100% sure as
                  it's only been 24h without fault) the new poller
                  caused the car to throw the attached faults from
                  overloading the can bus whilst driving. The fault was
                  sufficient to send the car into limp mode and could
                  not be driven until cleared with LeafSpy. Ovms should
                  not be polling in the driving state, so I'm not sure
                  why the poller is overflowing.</span>
                <div><span
style="color:rgb(0,34,0);font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Hack,"Source Code Pro","Roboto Mono",Menlo,Monaco,Consolas,monospace;font-size:13px"><br>
                  </span></div>
                <div><span
style="color:rgb(0,34,0);font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Hack,"Source Code Pro","Roboto Mono",Menlo,Monaco,Consolas,monospace;font-size:13px">The
                    ovms log repeats this overflow in rapid succession
                    right before the failure occurred. I have since
                    reverted to an earlier version and it might be
                    advisable for other Leaf owners to do so until the
                    new poller is fully operational.</span>
                  <div><span
style="color:rgb(0,34,0);font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Hack,"Source Code Pro","Roboto Mono",Menlo,Monaco,Consolas,monospace;font-size:13px"><br>
                    </span></div>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.316 NZST I (36847486)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.316 NZST I (36847486)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.316 NZST I (36847486)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.326 NZST I (36847496)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.336 NZST I (36847506)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.336 NZST I (36847506)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.336 NZST I (36847506)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.336 NZST I (36847506)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.346 NZST I (36847516)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.346 NZST I (36847516)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.346 NZST I (36847516)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.346 NZST I (36847516)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.356 NZST I (36847526)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.356 NZST I (36847526)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.356 NZST I (36847526)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <p class="MsoNormal"
style="margin:0cm;line-height:normal;font-size:11pt;font-family:Calibri,sans-serif"><span
style="font-size:10pt;font-family:"Courier New";color:black">2024-05-02
                      12:22:28.356 NZST I (36847526)
                      vehicle-poll: Poller[Frame]: Task Queue Overflow</span></p>
                  <div><span
style="color:black;font-family:Calibri,sans-serif;font-size:11pt"> </span><span
style="color:rgb(0,34,0);font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Hack,"Source Code Pro","Roboto Mono",Menlo,Monaco,Consolas,monospace;font-size:13px"> </span></div>
                </div>
              </div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr" class="gmail_attr">On Fri, 3 May 2024 at
                  05:40, Michael Balzer via OvmsDev <<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>>
                  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> A task may delete itself by calling
                    vTaskDelete(NULL) as the final statement, and that's
                    normally a better way to shutdown a task, if you can
                    signal the task it should terminate. Deleting a task
                    from outside may always result in resources taken by
                    the task not being freed, as the task gets
                    terminated wherever it just is.<br>
                    <br>
                    As the vehicle task also needs to access vehicle
                    data memory, vehicle destruction should not begin
                    until the task has finished, otherwise a task job
                    already running while the vehicle destruction takes
                    place may run into an illegal memory access (access
                    after free). Keep in mind, destructors are executed
                    bottom up, so waiting for the task shutdown within
                    the destructor won't help.<br>
                    <br>
                    Also, I think "MyCan.DeregisterCallback(TAG)" in
                    ShuttingDown() is now obsolete.<br>
                    <br>
                    Regards,<br>
                    Michael<br>
                    <br>
                    <br>
                    <div>Am 02.05.24 um 15:23 schrieb Michael Geddes:<br>
                    </div>
                    <blockquote type="cite">
                      <div dir="auto">Thanks.
                        <div dir="auto"><br>
                        </div>
                        <div dir="auto">On that race condition... do you
                          think we are better to just delete the task 
                          or I saw one recommendation that</div>
                        <div dir="auto">We can delete it outside the
                          while loop in the task itself! </div>
                        <div dir="auto"><br>
                        </div>
                        <div dir="auto">//.ichael </div>
                      </div>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr" class="gmail_attr">On Tue, 30 Apr
                          2024, 17:46 Michael Balzer via OvmsDev, <<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>>
                          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> 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>Am 30.04.24 um 08:55 schrieb Michael
                              Geddes:<br>
                            </div>
                            <blockquote type="cite">
                              <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" rel="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> 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"
rel="noreferrer noreferrer noreferrer" target="_blank"
                                          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" 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>
                                                      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 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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"
rel="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" 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 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" 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"
                            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>
                  _______________________________________________<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>
              _______________________________________________<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>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
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>
    <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>