[Ovmsdev] Recommen

Solterra solterra at kezarnet.com
Sat Jun 17 19:45:59 HKT 2023



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:
> 
> * Lock the poller mutex
> * Remove the current PID list
> * Create / modify your PID list
> * Install the new / modified PID list
> * 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20230617/8b9b2480/attachment.htm>


More information about the OvmsDev mailing list