<div dir="ltr"><div>please have a good look at the function names.. when I have Get and Set prefixes.. should I have them.. etc to be consistent.</div><div><br></div><div>But  Just FYI (a couple of silly bugs later) - This is the full output from a test proving that both the 'Times' property works and that at least as a concept- having the "Poll:PRI" as a key works.</div><div>//.</div><div>----8<-------------------</div><div dir="ltr"><br><div><font face="monospace" style="background-color:rgb(207,226,243)">JSON.print(OvmsPoller.Times.GetStatus())</font><br><font face="monospace" style="background-color:rgb(238,238,238)"><br>{<br>  "items": {<br>    "Poll:PRI": {<br>      "count_hz": 1.00600004196167,<br>      "avg_util_pm": 0.5598000288009644,<br>      "peak_util_pm": 0.6503999829292297,<br>      "avg_time_ms": 0.05350000038743019,<br>      "peak_time_ms": 0.9779999852180481<br>    },<br>    "Poll:SRX": {<br>      "count_hz": 1.1330000162124634,<br>      "avg_util_pm": 0.18970000743865967,<br>      "peak_util_pm": 0.23240000009536743,<br>      "avg_time_ms": 0.015799999237060547,<br>      "peak_time_ms": 0.3319999873638153<br>    },<br>    "RxCan1[778]": {<br>      "count_hz": 1.8489999771118164,<br>      "avg_util_pm": 1.2870999574661255,<br>      "peak_util_pm": 1.8909000158309937,<br>      "avg_time_ms": 0.06909999996423721,<br>      "peak_time_ms": 2.7119998931884766<br>    },<br>    "RxCan1[7bb]": {<br>      "count_hz": 0.2240000069141388,<br>      "avg_util_pm": 0.10409999638795853,<br>      "peak_util_pm": 0.25859999656677246,<br>      "avg_time_ms": 0.043800000101327896,<br>      "peak_time_ms": 1.50600004196167<br>    },<br>    "RxCan1[7ea]": {<br>      "count_hz": 1.0670000314712524,<br>      "avg_util_pm": 0.4699000120162964,<br>      "peak_util_pm": 0.7283999919891357,<br>      "avg_time_ms": 0.04830000177025795,<br>      "peak_time_ms": 1.5379999876022339<br>    },<br>    "RxCan1[7ec]": {<br>      "count_hz": 1.8669999837875366,<br>      "avg_util_pm": 0.8090000152587891,<br>      "peak_util_pm": 0.9458000063896179,<br>      "avg_time_ms": 0.04639999940991402,<br>      "peak_time_ms": 2.2769999504089355<br>    },<br>    "TxCan1[770]": {<br>      "count_hz": 0.9240000247955322,<br>      "avg_util_pm": 0.039400000125169754,<br>      "peak_util_pm": 0.054499998688697815,<br>      "avg_time_ms": 0.0038999998942017555,<br>      "peak_time_ms": 0.08699999749660492<br>    },<br>    "TxCan1[7b3]": {<br>      "count_hz": 0.041999999433755875,<br>      "avg_util_pm": 0.0035000001080334187,<br>      "peak_util_pm": 0.008299999870359898,<br>      "avg_time_ms": 0.008500000461935997,<br>      "peak_time_ms": 0.09200000017881393<br>    },<br>    "TxCan1[7e2]": {<br>      "count_hz": 0.21199999749660492,<br>      "avg_util_pm": 0.01600000075995922,<br>      "peak_util_pm": 0.020500000566244125,<br>      "avg_time_ms": 0.006800000090152025,<br>      "peak_time_ms": 0.08500000089406967<br>    },<br>    "TxCan1[7e4]": {<br>      "count_hz": 0.21199999749660492,<br>      "avg_util_pm": 0.006899999920278788,<br>      "peak_util_pm": 0.009800000116229057,<br>      "avg_time_ms": 0.002899999963119626,<br>      "peak_time_ms": 0.05299999937415123<br>    },<br>    "Cmd:Thrtl": {<br>      "count_hz": 0.014999999664723873,<br>      "avg_util_pm": 0.0006000000284984708,<br>      "peak_util_pm": 0,<br>      "avg_time_ms": 0.004699999932199717,<br>      "peak_time_ms": 0.04699999839067459<br>    },<br>    "Cmd:State": {<br>      "count_hz": 0.039000000804662704,<br>      "avg_util_pm": 0.002300000051036477,<br>      "peak_util_pm": 0.007000000216066837,<br>      "avg_time_ms": 0.006500000134110451,<br>      "peak_time_ms": 0.09000000357627869<br>    }<br>  },<br>  "tot_count_hz": 8.59000015258789,<br>  "tot_util_pm": 3.488300085067749,<br>  "tot_time_ms": 3.1019999980926514<br>}</font></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 3 Jul 2024 at 14:31, Michael Geddes <<a href="mailto:frog@bunyip.wheelycreek.net">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">OH, and also,<div><br></div><div>What do you think of treating the O<span style="font-family:monospace">vmsPoller.Times.GetStatus() </span><font face="arial, sans-serif">items as an associative array - or should I treat it as a normal array?</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">//.ichael</font></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 3 Jul 2024 at 14:24, Michael Geddes <<a href="mailto:frog@bunyip.wheelycreek.net" target="_blank">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">I figured I may as well add an OvmsPoller object to DukTape for Ovms.   I'm waiting to get back to my OVMS so that I can test it.. but this is the documentation I have for the stuff I have coded. Thoughts on this?<div><br></div><div>What do people think of OvmsPoller.Times sub-object?   I've added a general mechanism for this.  </div><div><br></div><div>Also should I have OvmsPoller.Pause()  or OvmsPoller.SetUserPaused(true)  ?</div><div>//.</div><div><br></div><div><br></div><div><font face="monospace">OvmsPoller<br>^^^^^^^^^^<br>The Ovms Poller object represents the poller sub-system. It contains the following methods:<br><br>- ``ispaused = OvmsPoller.GetPaused()``: Return true if the poller is paused by the system/user.<br>- ``ispaused = OvmsPoller.GetUserPaused()``: Return true if the poller is paused by the user.<br>- ``OvmsPoller.Pause()``: Pause the poller (adds User poller pause)<br>- ``OvmsPoller.Resume()``: Remove the User poller pause.<br><br>- ``tracemode = OvmsPoller.GetTrace()``: Return the current trace mode.<br>- ``OvmsPoller.SetTrace(tracemode)``: Set the current trace mode.<br><br>    The Traces still require that 'Verbose' and 'Debug' levels (depending) for the 'vehicle-poll'<br>    debug tag are set.<br>    Trace modes for verbose logging can be one of:<br>    - ``on``: On for poller loop<br>    - ``txrx``: On for txrx queue (this can be hazardous for some cars)<br>    - ``all``: On for both poller loop and txrx queuing<br>    - ``off``: Logging Off<br>    Note that only ``on`` and ``off`` are recommended.<br><br>The poller object also contains a ``Times`` property for the OBD Poll-Time tracing<br>which contains the following methods:<br>- ``isrunning = OvmsPoller.Times.GetEnabled()``: Returns true if the time-tracing is enabled<br>- ``OvmsPoller.Times.SetEnabled(isrunning)``: Sets the enabled status of the timer-tracing<br>- ``OvmsPoller.Times.Reset()``: Reset the timers (doesn't affect their current state).<br>- ``OvmsPoller.Times.GetStatus()``: Gets the status of the various times. This returns an object<br>    of this format:<br>    .. code-block:: javascript<br>    return_value = {<br>      "items": {<br>        "Poll:PRI" : {<br>          "count_hz":    1,<br>          "avg_util_pm": 0.529,<br>          "peak_util_pm":0.652,<br>          "avg_time_ms": 0.052,<br>          "peak_time_ms":1.516<br>        },<br>        "Poll:SRX": {<br>          "count_hz":    1.47,<br>          "avg_util_pm": 0.302,<br>          "peak_util_pm":0.44,<br>          "avg_time_ms": 0.02,<br>          "peak_time_ms":0.573<br>        },<br>        "RxCan1[778]": {<br>          "count_hz":    0.74,<br>          "avg_util_pm": 0.427,<br>          "peak_util_pm":0.826,<br>          "avg_time_ms": 0.063,<br>          "peak_time_ms":1.872<br>        },<br>        "RxCan1[7a8]": {<br>          "count_hz":    0.35,<br>          "avg_util_pm": 0.183,<br>          "peak_util_pm":0.355,<br>          "avg_time_ms": 0.052,<br>          "peak_time_ms":1.382<br>        },<br>        "TxCan1[7b3]": {<br>          "count_hz":    0.07,<br>          "avg_util_pm": 0.005,<br>          "peak_util_pm":0.01,<br>          "avg_time_ms": 0.007,<br>          "peak_time_ms":0.099<br>        },<br>        "TxCan1[7c6]": {<br>          "count_hz":    0,<br>          "avg_util_pm": 0,<br>          "peak_util_pm":0.009,<br>          "avg_time_ms": 0.004,<br>          "peak_time_ms":0.098<br>        },<br>        "Cmd:State": {<br>          "count_hz":    0,<br>          "avg_util_pm": 0,<br>          "peak_util_pm":0,<br>          "avg_time_ms": 0.011,<br>          "peak_time_ms":0.109<br>        }<br>      },<br><br>      "tot_count_hz": 11.76,<br>      "tot_util_pm": 6.247,<br>      "tot_time_ms": 4.628<br>    };</font><br></div></div>
</blockquote></div>
</blockquote></div></div>