eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRóżny czas pomimo synchronizacji z NTPRe: Różny czas pomimo synchronizacji z NTP
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neost
    rada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Date: Wed, 12 Nov 2014 12:36:07 +0100
    From: "Andrzej W." <a...@w...pl>
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
    MIME-Version: 1.0
    Newsgroups: pl.misc.elektronika
    Subject: Re: Różny czas pomimo synchronizacji z NTP
    References: <m3ua09$pji$1@portraits.wsisiz.edu.pl>
    <54631e12$0$11152$65785112@news.neostrada.pl>
    <m3vc6j$boc$1@portraits.wsisiz.edu.pl>
    <m3vf68$l11$1@portraits.wsisiz.edu.pl>
    In-Reply-To: <m3vf68$l11$1@portraits.wsisiz.edu.pl>
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 52
    Message-ID: <54634628$0$2844$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.0.28.74
    X-Trace: 1415792168 unt-rea-b-01.news.neostrada.pl 2844 83.0.28.74:15804
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:673817
    [ ukryj nagłówki ]

    W dniu 2014-11-12 o 12:10, Atlantis pisze:
    > Hmm.... Wygląda na to, że Raspberry Pi pokazuje dokładnie ten sam czas,
    > który widać np. na epochconverter.com albo currenttimestamp.com.
    > To na układzie z Atmegą pojawia się jakaś dziwna różnica, wynosząca od
    > kilku do kilkudziesięciu sekund. Mam wrażenie, że nie narasta ona w
    > wyniku dryfu wprowadzanego przez timer - zwykle jest ona widoczna już po
    > aktualizacji czasu, którą mogę też inicjować ręcznie.
    >
    > Kod funkcji analizującej pakiet NTP w tej chwili wygląda następująco:
    >
    > uint8_t client_ntp_process_answer(uint8_t *buf, volatile uint32_t
    > *time,uint8_t dstport_l){
    >
    > uint32_t tm_temp=0;
    >
    > if (dstport_l){
    > if (buf[UDP_DST_PORT_L_P]!=dstport_l){
    > return(0);
    > }
    > }
    > if (buf[UDP_LEN_H_P]!=0 || buf[UDP_LEN_L_P]!=56 ||
    > buf[UDP_SRC_PORT_L_P]!=0x7b){
    > // not ntp
    > return(0);
    > }
    > // copy time from the transmit time stamp field:
    > tm_temp = ( ((uint32_t)buf[0x52]<<24) | ((uint32_t)buf[0x53]<<16) |
    > ((uint32_t)buf[0x54]<<8) | ((uint32_t)buf[0x55]) );
    > tm_temp -= 2208988800UL;
    > cli();
    > *time = tm_temp;
    > //*time = ( ( ((uint32_t)buf[0x52]<<24) |
    > ((uint32_t)buf[0x53]<<16) | ((uint32_t)buf[0x54]<<8) |
    > ((uint32_t)buf[0x55]) ) - 2208988800UL ); //0x83AA7E80
    > sei();
    > return(1);
    > }
    >


    Ten kod to interpretuje każdy pakiet UDP co ma 56 bajtów, tak?
    Żeby czytać właściwy pakiet warto sprawdzić czy odpowiedź zawiera
    znacznik czasu wysłany przez Ciebie w zapytaniu. (RFC4330 Originate
    Timestamp).
    Ja u siebie czytam czas z pozycji [40:43], widzę, że Ty czytasz [82:85].
    Ten bufor to "czyste" dane z pakietu UDP, czy jest tam też jakiś
    nagłówek? Bo czytasz znacznie dalej niż długość pakietu UDP.


    --
    AWa.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: