<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Ehm, chtěl jsem napsat "Pak načteš z
      dalších dvou bytů délku...."</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Zdraví</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">PavelK</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Dne 12.04.2024 v 18:36 Pavel Kořenský
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:4aea11b0-95fb-481a-8b65-508cd69ad904@dator3.cz">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div class="moz-cite-prefix">Ahoj,</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">no to by mělo být skoro podobné. Jen
        uděláš takový malý stavový automat.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Packet = 0<br>
      </div>
      <div class="moz-cite-prefix">1 Je znak ?</div>
      <div class="moz-cite-prefix">2. Pokud ano, přečti ho</div>
      <div class="moz-cite-prefix">3. Je to B5 ?<br>
      </div>
      <div class="moz-cite-prefix">4. Pokud ano, tak Packet = Packet + 1
        jinak Packet = 0 a jdi zpět na 1.<br>
      </div>
      <div class="moz-cite-prefix">5. Je znak ?</div>
      <div class="moz-cite-prefix">6. Pokud ano, přečti ho</div>
      <div class="moz-cite-prefix">7. Packet = 1 ?</div>
      <div class="moz-cite-prefix">8. Pokud ano, je poslední přečtený
        znak 62 ?</div>
      <div class="moz-cite-prefix">9. Pokud ano, tak Packet = 3 jinak
        Packet = 0</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">A tak dále.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Prostě čekáš na to, až se objeví
        sekvence tech dvou bytů značících začátek packetu. Pak načteš z
        dalších dvou packetů délku a buď si alokuješ tu délku jako
        nějaké pole nebo ve smyčce čteš znaky a dáváš je do řetězce. Já
        nevím, jestli Arduino umí dynamické alokace paměti. Pokud ano,
        je lepší to ukládat do pole bytů.</div>
      <div class="moz-cite-prefix">Až načteš znaky celé délky, tak
        načteš dva další (ten checksum), spočítáš si checksum uložených
        dat a pokud to souhlasí, máš celý packet správně. Pokud to
        nesouhlasí, tak to zahodíš a skok na začátek celého toho
        podprogramu.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Zdraví PavelK</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Dne 12.04.2024 v 18:19 Daniel Valuch
        napsal(a):<br>
      </div>
      <blockquote type="cite"
        cite="mid:f5cdfa1a-095a-49cf-b5af-b7fd6806fd6c@k-net.fr">
        <p>zdravim osadenstvo,</p>
        <p>programovat viem len velmi zakladne, preto by som mal na
          piatok algoritmicku... Dokoncujem ziskavanie presneho casu z
          GNSS modulu o ktorych sme tu uz nejaky cas rozpravali. <br>
        </p>
        <p>Ten generuje dva typy vystupu po seriovej linke. Klasicky
          ascii, ktory je ukonceny \n znakom a parsovanie tohoto stringu
          je trivialne (robim v arduino ide). Prijimaju sa data, tie sa
          pridavaju do stringu a ked pride \n tak sa to rozobere a urobi
          co treba<br>
        </p>
        <pre>void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    if (inChar == '\n') {
        // sprava/retazec je hotovy, rozparsuj a urob co treba
      tempString = "";
    }
    // keep receiving until \n arrives
    else {
      // add it to the inputString and keep receiving:
      tempString += inChar;
    }
</pre>
        <p>Druhy vystup je ale binarny, prichadzaju pakety, ktore maju
          strukturu definovanu, ale paket zacina opacne. <br>
        </p>
        <pre>0000  B5 62 06 8A 18 00 00 05 00 00 01 00 76 10 01 05  
0010  00 53 10 01 7E 01 91 20 00 7F 01 91 20 01 00 B6  
</pre>
        <p>Prve dva bajty na zaciatku B5 62 vzdy oznacuju zaciatok
          paketu</p>
        <p>dalsie dva 06 8A oznacuju o aky paket ide</p>
        <p>nasledujuce dva 18 00 dlzku kolko byteov spravy nasleduje (v
          tomto pripade 24)<br>
        </p>
        <p>potom je samotna sprava</p>
        <p>a na konci 00 B6 su dva bajty checksum</p>
        <p>a s tymto si neviem poradit, ako to zapisat aby to pocuvalo
          kedy pride B5 62, pockalo ako dlha bude sprava a potom
          zapisalo do nejakeho stringu data. <br>
        </p>
        <p>Ako na to?</p>
        <p>dakujem,</p>
        <p>b.</p>
        <p><br>
        </p>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
HW-list mailing list  -  sponsored by <a
        class="moz-txt-link-abbreviated" href="http://www.HW.cz"
        moz-do-not-send="true">www.HW.cz</a>
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
        href="mailto:Hw-list@list.hw.cz" moz-do-not-send="true">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext"
        href="http://list.hw.cz/mailman/listinfo/hw-list"
        moz-do-not-send="true">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
      </blockquote>
      <p><br>
      </p>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
HW-list mailing list  -  sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>