<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    If brick index numbers are normally coming sequentially, a simple
    approach would be to fill cell readings sequentially based on just
    checking the new brick index is higher than the one received before.<br>
    <br>
    To autodetect the layout, use Michael's new
    CheckChangeCellArrangement calls to let the cell array grow for
    every new highest brick number received. Once the first complete
    brick sequence is received, the BMS cell layout should match the
    actual battery layout.<br>
    <br>
    A better option able to handle sparse frames: collect the brick
    index keys in a std::set or sorted array, use the key index to
    address the cells in the BMS, and for auto detection let the cell
    layout grow with the set size.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 12.11.22 um 14:12 schrieb Michael
      Geddes:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAH0p7uLS_p7S-ZXCOs_ffexnMn+rTo8Dj1T_sUo_MH62SX_NXQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">I did have some code that handled this kind of
        stuff... But it was over complicated.. There's a new function
        that allows you to set the new size that the ioniq 5 code
        uses... But a similar function could be added that just
        compresses what is there as well.
        <div dir="auto"><br>
        </div>
        <div dir="auto">Michael </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Sat, 12 Nov 2022, 9:02 pm
          Mark Webb-Johnson, <<a href="mailto:mark@webb-johnson.net"
            moz-do-not-send="true" class="moz-txt-link-freetext">mark@webb-johnson.net</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
          The original Model S had a fairly simple to decode CAN bus
          message 0x6f2 with the first byte in range 0..1f and each
          message encoding 3 battery bricks, for a total of 96 bricks.<br>
          <br>
          However, things have now got more complicated. A 75kWh Model
          X, and a replacement pack for a 85kWh Model S, contain
          cut-down packs with modules missing, so 0x6f2 only contains 28
          messages, for 84 bricks, with bricks #15, #16, #17 and #31
          missing from the message.<br>
          <br>
          When we feed this into BmsSetCell… calls, the OVMS BMS support
          code sees the missing bricks, assumes things are missing, and
          refuses to give an output.<br>
          <br>
          So my (hopefully simple) question, is how to tell it the brick
          arrangement? Or how to deal with these missing bricks?<br>
          <br>
          Regards, Mark.<br>
          <br>
          _______________________________________________<br>
          OvmsDev mailing list<br>
          <a href="mailto:OvmsDev@lists.openvehicles.com"
            target="_blank" rel="noreferrer" moz-do-not-send="true"
            class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a><br>
          <a
            href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
            rel="noreferrer noreferrer" target="_blank"
            moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
  </body>
</html>