<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>I've decided on a structure, so I'll outline it here.</p>
<p>My major problem is that I don't know how different the vehicles are (I just have the Subaru...). So, I created a Toyota e-TNGA class where most of the functionality lives. I then created a wrapper for the Subaru (and will do the same for bZ4X). The same code likely works for Lexus RZ450e as well.</p>
<p>I guess when I (or someone else) finds a difference, at least there's a home for the code.</p>
<div id="signature"></div>
<p>Thanks for your advice. </p>
<p><br /></p>
<p id="reply-intro">On 2023-05-29 20:21, Michael Geddes wrote:</p>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<div id="replybody1">
<div dir="auto">
<div>Just FYI on the Ioniq5 I was able to see using the 'valid bits' which of the battery voltages were valid, therefore hopefully what the overall battery capacity is.  I have not got feedback on any different battery configs yet... You can have a look at what I've done there anyway.
<div dir="auto"> </div>
<div dir="auto">Sounds good anyway. </div>
<div dir="auto"> </div>
<div dir="auto">Michael </div>
<div dir="auto">
<div dir="auto"> </div>
</div>
<br /><br />
<div class="v1gmail_quote">
<div class="v1gmail_attr" dir="ltr">On Tue, 30 May 2023, 3:29 am Solterra, <<a href="mailto:solterra@kezarnet.com" rel="noreferrer">solterra@kezarnet.com</a>> wrote:</div>
<blockquote class="v1gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">
<div style="font-size: 10pt; font-family: Verdana,Geneva,sans-serif;">
<p>It's Toyota's e-TNGA platform. I know the CAN network is the same for Toyota bZ4X and Subaru Solterra, but I'm not sure about the bZ3 (China) and Lexus RZ... One complicating factor is there are two battery configurations for the bZ4X, one of which is shared with the Solterra. </p>
<div id="v1m_-8791145780008999571signature"></div>
<p>Probably a detail for down the road a bit. For now, I've just created a bZ4X vehicle module and am tinkering under that. </p>
<p><br /></p>
<p id="v1m_-8791145780008999571reply-intro">On 2023-05-28 21:45, Mark Webb-Johnson wrote:</p>
<blockquote style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0;">
<div id="v1m_-8791145780008999571replybody1">
<div style="line-break: after-white-space;">Solterra,
<div> </div>
<div>Michael's advice is good.</div>
<div> </div>
<div>If it is just two names for essentially the same vehicle, I think you can refer to vehicle_voltampera (which implemented the Chevy Volt and Open Ampera vehicle support). These were essentially the same vehicle platform, but with minor bodywork differences and labelling.</div>
<div> </div>
<div>If the two vehicles share the same platform (such as BMS, battery, etc) but are otherwise very different, then I suggest you implement a vehicle_<platform> for that platform, and derive two classes from that in the same /src/ directory (one for each vehicle type). That will allow you to put all common support code in the base platform, but have each vehicle type customisable (and individually selectable).</div>
<div> </div>
<div>Looking at images of the cars, it seems they are closest to the Volt Ampera situation. Perhaps BZSS?</div>
<div> </div>
<div>Regards, Mark.<br />
<div><br />
<blockquote style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0;">
<div>On 28 May 2023, at 8:23 AM, Michael Geddes <<a href="mailto:frog@bunyip.wheelycreek.net" rel="noreferrer">frog@bunyip.wheelycreek.net</a>> wrote:</div>
<br />
<div>
<div dir="ltr">
<div dir="ltr">Hey Solterra, </div>
<div>I couldn't say definitively but imho there are various options depending on HOW different.</div>
<div> </div>
<div>1) They are exactly the same - or differences can be distinguished from responses: Register the name with both in it. Done. (This has happened with some older Kia + Hyundai even)</div>
<div>2)  They are mostly the same.  You could probably keep the one directory but have  2 wrapper classes constructing the base class with a parameter and register both in the factory Init. (Not sure if there are examples - ask the other Michael if this is ok).</div>
<div>3) They have a lot of commonality.  You can inherit off a base class - or inherit one vehicle impl off the other... But put them in separate directories.  (This happens for Ioniq 5 and a bunch of other Kia + Hyundai cars).</div>
<div> </div>
<div>//.ichael Geddes</div>
<br />
<div>
<div dir="ltr">On Sat, 27 May 2023 at 21:19, Solterra <<a href="mailto:solterra@kezarnet.com" rel="noreferrer">solterra@kezarnet.com</a>> wrote:</div>
<blockquote style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div style="font-size: 10pt; font-family: Verdana,Geneva,sans-serif;">
<p>Hello again,</p>
<p>I've finished my initial vehicle investigation and am not ready to add support to OVMS.</p>
<p>When creating the vehicle stub, is there guidance for situations like on this vehicle? There are two makes and models that are essentially the same. Can I create a common 'components/vehicle_toyota_bz4x' and point two vehicle selections to it somewhere else?</p>
<p>Thank you</p>
<p><br /></p>
</div>
_______________________________________________<br />OvmsDev mailing list<br /><a href="mailto:OvmsDev@lists.openvehicles.com" rel="noreferrer">OvmsDev@lists.openvehicles.com</a><br /><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" rel="noopener noreferrer">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></blockquote>
</div>
</div>
_______________________________________________<br />OvmsDev mailing list<br /><a href="mailto:OvmsDev@lists.openvehicles.com" rel="noreferrer">OvmsDev@lists.openvehicles.com</a><br /><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" rel="noopener noreferrer">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div>
</blockquote>
</div>
</div>
</div>
</div>
<br />
<div style="margin: 0; padding: 0; font-family: monospace;">_______________________________________________<br />OvmsDev mailing list<br /><a href="mailto:OvmsDev@lists.openvehicles.com" rel="noreferrer">OvmsDev@lists.openvehicles.com</a><br /><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" rel="noopener noreferrer">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div>
</blockquote>
</div>
_______________________________________________<br />OvmsDev mailing list<br /><a href="mailto:OvmsDev@lists.openvehicles.com" rel="noreferrer">OvmsDev@lists.openvehicles.com</a><br /><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" rel="noopener noreferrer">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></blockquote>
</div>
</div>
</div>
</div>
<br />
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">_______________________________________________<br />OvmsDev mailing list<br /><a href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a><br /><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" rel="noopener noreferrer">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div>
</blockquote>
</body></html>