[Ovmsdev] Polling not working as expected

Soko ovms at soko.cc
Wed Aug 12 23:39:30 HKT 2020


Okeydokey, I'll give it a try and let you know

On 12.08.2020 17:36, Michael Balzer wrote:
> Soko,
>
> by history of it's origin in the V2 module, the poller currently is only
> called by the ticker, so runs once per second, and is limited to
> processing one request at a time. A response may consist of multiple
> frames (automatically requested by the receiver). The poller doesn't
> know when/if a request is completed / cancelled.
>
> It should be pretty simple to allow PollerSend() to be called anytime,
> e.g. by the IncomingPollReply() handler as soon as it detects a
> completed response.
>
>  From a quick glance, the only change necessary for this should be adding
> a control argument to PollerSend() that inhibits the m_poll_ticker
> increment & cycling.
>
> You would e.g. call PollerSend(false) in IncomingPollReply() to check
> for any more polls to be done in the current poller second
> (m_poll_ticker value). If none is found, the poller exits and leaves the
> next call to the ticker again. The default (ticker) PollerSend()
> behaviour remains the same as now.
>
> Do you want to try implementing that change? You can test it on your
> polls directly. If you submit the change, please keep it in a separate
> commit / pull request, don't mix it with some UpMiiGo changes.
>
> Regards,
> Michael
>
>
> Am 12.08.20 um 15:47 schrieb Soko:
>> Hey guys,
>>
>> I'm wondering how the poller ticker works as it seems it doesn't poll
>> as frequently as expected. Here are my (simplified) polls:
>>
>> const OvmsVehicle::poll_pid_t vwup_polls[] = {
>>      {VWUP_CHARGER_TX, VWUP_CHARGER_RX,
>> VEHICLE_POLL_TYPE_OBDIIEXTENDED, VWUP_CHARGER_AC_U, {0, 0, 5}},
>>      {VWUP_CHARGER_TX, VWUP_CHARGER_RX,
>> VEHICLE_POLL_TYPE_OBDIIEXTENDED, VWUP_CHARGER_AC_I, {0, 0, 5}},
>>      {VWUP_BAT_MGMT_TX, VWUP_BAT_MGMT_RX,
>> VEHICLE_POLL_TYPE_OBDIIEXTENDED, VWUP_BAT_MGMT_U, {0, 1, 5}},
>>      {VWUP_BAT_MGMT_TX, VWUP_BAT_MGMT_RX,
>> VEHICLE_POLL_TYPE_OBDIIEXTENDED, VWUP_BAT_MGMT_I, {0, 1, 5}},
>>      {VWUP_BAT_MGMT_TX, VWUP_BAT_MGMT_RX,
>> VEHICLE_POLL_TYPE_OBDIIEXTENDED, VWUP_BAT_MGMT_SOC, {0, 20, 20}},
>>      {0, 0, 0, 0, {0, 0, 0}}};
>>
>> I was expecting to get both voltages and currents every 5 seconds and
>> just milliseconds apart from each other. And (of course) every 20
>> seconds the SoC.
>>
>> But I get one of the first four every seconds (taking 4 seconds in
>> total until a I have all) and SoC only ~40 seconds.
>>
>> Is there some way to change the poller to the expected behavior?
>>
>> I would like the first 4 very close to each other so I can calculate
>> AC power, DC power and therefore the efficiency of the charging process.
>>
>> thx
>>
>> Soko
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev



More information about the OvmsDev mailing list