<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>ZdravĂ­m, odpovĂ­m tak nÄ›jak hromadnÄ› všem v jednĂ© zprávÄ›.</p>
    <p>Ne, read návratovĂ˝ kod neošetĹ™uje - dobrĂ˝ nápad - read by mÄ›lo
      vrátit poÄŤet byte paketu - zkusĂ­m kontrolovat, to by mohlo pomoci
      na nÄ›jakĂ© fake pakety.</p>
    <p>InternĂ­ ÄŤas poÄŤĂ­tám a synchro dÄ›lám jednou za 12 hodin a pĹ™i
      startu, nejede mi tam nic kritickĂ©ho abych musel implementovat
      ÄŤasovĂ˝ fázovĂ˝ závÄ›s (jestli se rybiÄŤkám rozsvĂ­tĂ­ o vteĹ™inu dřív 
      anebo pozdÄ›ji je jedno :-)).</p>
    <p>Jako ÄŤasovĂ˝ server používám  ÄŤeskĂ© pooly NTP serverĹŻ:</p>
    <p>String ntp_hosts[NUM_NTP]
      ={"0.cz.pool.ntp.org","1.cz.pool.ntp.org","2.cz.pool.ntp.org"};<br>
    </p>
    <p>Prakticky to znamená, Ĺľe kaĹľdĂ© ÄŤtenĂ­ jde proti jinĂ©mu NTP
      serveru.</p>
    <p>CelĂ© jsou to zkoušel ve vlaku LEO Express do Prahy - Leoš má dost
      blbou wifi, takĹľe o vĂ˝padky tam nenĂ­ nouze, stejnÄ› tak o latenci
      paketĹŻ jdoucĂ­ aĹľ >15s,  mÄ›l jsem upravenou synchronizaci aby to
      Ĺˇlo co pár vteĹ™in a ani jednou to nezablblo. Ĺ˜Ă­kal jsem si, Ĺľe
      blbÄ›jší situace uĹľ nenastane :-) (A nastala)</p>
    <p>DĂ­ky</p>
    <p>Petr<br>
    </p>
    <p><br>
    </p>
    <p> Â Â Â Â Â Â  <br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Dne 23. 07. 22 v 22:02 <a class="moz-txt-link-abbreviated" href="mailto:spam@nagano.cz">spam@nagano.cz</a>
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:f1c7d302-530e-472d-8dd0-dd4aa4f2bbaa.maildroid@localhost">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div>Má read ošetĹ™enĂ˝ návratovĂ˝ kĂłd?<br>
        L.<br>
        <br>
        <font color="#888888"><font color="#888888">Sent from </font><font
            color="#888888"><a href="https://goo.gl/ODgwBb"
              moz-do-not-send="true">MailDroid</a></font></font><br>
        <br>
        -----Original Message-----<br>
        From: Petr Zapadlo <a class="moz-txt-link-rfc2396E" href="mailto:zapik@email.cz"><zapik@email.cz></a><br>
        To: HW-news <a class="moz-txt-link-rfc2396E" href="mailto:hw-list@list.hw.cz"><hw-list@list.hw.cz></a><br>
        Sent: so, 23 ÄŤvc 2022 21:28<br>
        Subject: příjem NTP ESP8266/32<br>
        <br>
      </div>
      ZdravĂ­m,
      <br>
      <br>
      na vÄ›tšinÄ› projektĹŻ, kde je  tĹ™eba   ÄŤas, tak ho synchronizuji z
      NTP.  <br>
      ObÄŤas (tĹ™eba  jednou za pĹŻl roku) se stane, Ĺľe ESP zĂ­ská ĹˇpatnĂ˝
      ÄŤas.  <br>
      Pokusil jsem se to eliminovat  - naÄŤĂ­tám ÄŤas 3x a porovnávám -
      pouĹľiji <br>
      dvÄ› hodnoty, kterĂ© majĂ­ minimálnĂ­ rozestup. (pokud se nesejdou,
      tak to <br>
      ignoruji a zkouším znova)
      <br>
      <br>
      Situace se zlepšila, pĹ™esto obÄŤas k problĂ©mu dojde. Zdá se, Ĺľe
      ÄŤetnost <br>
      nÄ›jak závisĂ­ i na kvalitÄ› internetovĂ© linky.  U mÄ› doma se to
      prakticky <br>
      nedÄ›je (Metronet, DSL, modem Terminator) , ale u známĂ© se to dÄ›je
      <br>
      pomÄ›rnÄ› ÄŤasto (mÄ›sĂ­ÄŤnÄ›) (O2, DSL, modem ZTE), u syna tak jednou za
      pĹŻl <br>
      roku (kabelovka Vodafone).
      <br>
      <br>
      Vypadá to, Ĺľe za nÄ›jakĂ˝ch podmĂ­nek projde UDP stackem v ESP i
      paket, <br>
      kterĂ˝ nenĂ­ v pořádku - asi má i vadnĂ˝ checksum, ale vzhledem k
      ÄŤetnosti <br>
      to nejsem schopen nijak ověřit.  PřípadnÄ› projde nesmyslnĂ˝ paket
      (ale to <br>
      by mÄ›l eliminovat poĹľadavek na 2 stejnĂ© hodnoty).
      <br>
      <br>
      Jak se divám do struktury NTP paketu, tak tam uĹľ ĹľĂˇdnĂ˝ kontrolnĂ­ <br>
      mechanizmus nenĂ­. (dĂ­vám se dobĹ™e?)
      <br>
      <br>
      ZákladnĂ­ kus kodu je vzat z mnohokrát opakovanĂ©ho příkladu:
      <br>
      <br>
      PoslánĂ­ paketu:
      <br>
      <br>
      Â Â memset(packetBuffer, 0, NTP_PACKET_SIZE);
      <br>
      Â Â  // Initialize values needed to form NTP request
      <br>
      Â Â  // (see URL above for details on the packets)
      <br>
      Â Â  packetBuffer[0] = 0b11100011;   // LI, Version, Mode
      <br>
      Â Â  packetBuffer[1] = 0;     // Stratum, or type of clock
      <br>
      Â Â  packetBuffer[2] = 6;     // Polling Interval
      <br>
      Â Â  packetBuffer[3] = 0xEC;  // Peer Clock Precision
      <br>
      Â Â  // 8 bytes of zero for Root Delay & Root Dispersion
      <br>
      Â Â  packetBuffer[12]  = 49;
      <br>
      Â Â  packetBuffer[13]  = 0x4E;
      <br>
      Â Â  packetBuffer[14]  = 49;
      <br>
      Â Â  packetBuffer[15]  = 52;
      <br>
      <br>
      Â Â  // all NTP fields have been given values, now
      <br>
      Â Â  // you can send a packet requesting a timestamp:
      <br>
      Â Â  _ntp_udp.beginPacket(timeServerIP, 123); //NTP requests are to
      port 123
      <br>
      Â Â  _ntp_udp.write(packetBuffer, NTP_PACKET_SIZE);
      <br>
      Â Â  _ntp_udp.endPacket();
      <br>
      <br>
      <br>
      Příjem paketu:
      <br>
      <br>
      _ntp_udp.read(packetBuffer, NTP_PACKET_SIZE); // read the packet
      into <br>
      the buffer
      <br>
      <br>
      Â Â Â Â  //the timestamp starts at byte 40 of the received packet and
      is <br>
      four bytes,
      <br>
      Â Â Â Â  // or two words, long. First, esxtract the two words:
      <br>
      <br>
      Â Â Â Â  unsigned long highWord = word(packetBuffer[40],
      packetBuffer[41]);
      <br>
      Â Â Â Â  unsigned long lowWord = word(packetBuffer[42],
      packetBuffer[43]);
      <br>
      <br>
      <br>
      Jak zvýšit spolehlivost a eliminovat blbĂ˝ ÄŤas?
      <br>
      <br>
      <br>
      DĂ­ky
      <br>
      <br>
      Petr
      <br>
      <br>
      <br>
      _______________________________________________
      <br>
      HW-list mailing list  -  sponsored by <a href="http://www.HW.cz"
        moz-do-not-send="true">www.HW.cz</a>
      <br>
      <a href="mailto:Hw-list@list.hw.cz" moz-do-not-send="true">Hw-list@list.hw.cz</a>
      <br>
      <a href="http://list.hw.cz/mailman/listinfo/hw-list"
        moz-do-not-send="true">http://list.hw.cz/mailman/listinfo/hw-list</a>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></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>
  </body>
</html>