[Ovmsdev] Recommen

Michael Geddes frog at bunyip.wheelycreek.net
Tue Jun 20 09:49:56 HKT 2023


Oh, I just realised I did not clarify that the example VIN code is where
I'm heading to.. Not what exists now. Presumably you looked at what I have
now in the Ioniq 5 code.

There are keep-alive mechanisms and examples around.


Michael

On Sat, 17 June 2023, 7:46 pm Solterra, <solterra at kezarnet.com> wrote:

> Thanks for the tips.
>
> For my first question, I initially copied the what the Ionic5 module did
> for VIN request, but it doesn't really fit with the framework of my vehicle
> module. I'm in the process of refactoring and figured there were other
> instances where I'll just want to send a one-time poll and let the
> framework process the response. Your response points me down the right
> path...
>
> For my second question, I'm considering a command where I need to enter a
> UDS diagnostic session and will need to add a poll to keep the ECU in that
> session. I don't always need the poll, but once I do I need it every 2
> seconds or so. Then, at the end of the session, I'll return the polling
> back to the 'standard'.
>
> Things are going well with my module, by the way. I'm having trouble where
> the communications gateway ECU goes to sleep when the vehicle is 'off' and
> I dont yet know how to wake it up. This might cause some charging sessions
> to be missed. I haven't decided if I care yet or not, as my initial use
> case is most important when the vehicle is on.
>
> I'm going to do some reverse engineering of the Toyota TIS software
> communication today to see how they keep the communications gateway ECU
> awake.
>
>
> On 2023-06-17 03:01, Michael Balzer wrote:
>
> Solterra,
>
> Am 17.06.23 um 01:37 schrieb Solterra:
>
> Is there a recommended method for adding a one-time CAN poll to the queue
> with the response to be processed by IncomingPollReply?
>
>
> For single-shot requests you can either use the synchronous
> `OvmsVehicle::PollSingleRequest()` method(s) or temporarily replace the PID
> list via `OvmsVehicle::PollSetPidList()`.
>
> For the latter, you'd reinstall your standard PID list in the incoming
> handler once you've received the response.
>
> What is the recommended method for adding or modifying obdii_polls after
> initialization?
>
>
> In most situations you only need to switch polls partially or change the
> poll frequency. For this, use the up to four poll state timings per list
> entry, and call `OvmsVehicle::PollSetState()` to switch the current state.
>
> If you need to fully replace a poll list:
>
>    1. Lock the poller mutex
>    2. Remove the current PID list
>    3. Create / modify your PID list
>    4. Install the new / modified PID list
>    5. Unlock the poller mutex
>
> For dynamically created PID lists and/or combining predefined with dynamic
> entries, use a C++ std::vector & std::initializer_list.
>
> For a full example of this and also an example for how to do the PID list
> update, see the `vehicle_vweup` OBD module:
>
>    -
>    https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/vehicle_vweup/src/vehicle_vweup.h#L83
>    -
>    https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/vehicle_vweup/src/vweup_obd.cpp#L217
>
> Regards,
> Michael
>
> --
> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
>
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20230620/c2ffbba9/attachment.htm>


More information about the OvmsDev mailing list