-
Data: 2014-11-13 10:03:23
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Hmm... Coś jeszcze jest na rzeczy z tą synchronizacją.
Pojedyncza, automatyczna synchronizacja (wywołana po 10 minutach dla
skompensowania tego sekundowego błędu) wprowadziła 14 sekundowe opóźnienie.
Czy kod funkcji wysyłającej request wygląda w porządku?
void client_ntp_request(uint8_t *buf,uint8_t *ntpip,uint8_t
srcport,uint8_t *dstmac)
{
uint8_t i=0;
uint16_t ck;
if (!enc28j60linkup())return;
//
while(i<6){
buf[ETH_DST_MAC +i]=dstmac[i]; // gw mac in local lan or
host mac
buf[ETH_SRC_MAC +i]=macaddr[i];
i++;
}
buf[ETH_TYPE_H_P] = ETHTYPE_IP_H_V;
buf[ETH_TYPE_L_P] = ETHTYPE_IP_L_V;
fill_buf_p(&buf[IP_P],9,iphdr);
buf[IP_ID_L_P]=ipid; ipid++;
buf[IP_TOTLEN_L_P]=0x4c;
buf[IP_PROTO_P]=IP_PROTO_UDP_V;
i=0;
while(i<4){
buf[IP_DST_P+i]=ntpip[i];
buf[IP_SRC_P+i]=ipaddr[i];
i++;
}
fill_ip_hdr_checksum(buf);
buf[UDP_DST_PORT_H_P]=0;
buf[UDP_DST_PORT_L_P]=0x7b; // ntp=123
buf[UDP_SRC_PORT_H_P]=10;
buf[UDP_SRC_PORT_L_P]=srcport; // lower 8 bit of src port
buf[UDP_LEN_H_P]=0;
buf[UDP_LEN_L_P]=56; // fixed len
// zero the checksum
buf[UDP_CHECKSUM_H_P]=0;
buf[UDP_CHECKSUM_L_P]=0;
// copy the data:
i=0;
// most fields are zero, here we zero everything and fill later
while(i<48){
buf[UDP_DATA_P+i]=0;
i++;
}
fill_buf_p(&buf[UDP_DATA_P],10,ntpreqhdr);
//
ck=checksum(&buf[IP_SRC_P], 16 + 48,1);
buf[UDP_CHECKSUM_H_P]=ck>>8;
buf[UDP_CHECKSUM_L_P]=ck& 0xff;
enc28j60PacketSend(90,buf);
}
Zastanawia mnie zmienna ntpreqhdr. Jaką funkcję ona pełni?
Bo jej deklaracja wygląda następująco:
const char ntpreqhdr[] PROGMEM ={0xe3,0,4,0xfa,0,1,0,0,0,1};
Ktoś z Was wspominał, że request powinien zawierać informację o czasie.
Tutaj nigdzie nie jestem o nią proszony...
Następne wpisy z tego wątku
- 13.11.14 10:07 Atlantis
- 13.11.14 11:45 Andrzej W.
- 13.11.14 13:35 Atlantis
- 13.11.14 13:55 J.F.
- 13.11.14 14:00 Andrzej W.
- 13.11.14 18:17 Atlantis
- 13.11.14 22:16 Atlantis
Najnowsze wątki z tej grupy
- Superkondensator. Czy to się uda?
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
- Jak działa domofon?
- Co oni mierzą miernikiem
- 40 lat OrCAD-a
- Multimetr z bluetooth
- Ciekawa mapka z BTS-ami
- Lampy uliczne LED z kubkiem
- Pęczniejące LiPo
- wyłącznik ścienny
- "Wybitna" inteligencja AI
- test stereo
- Bluetooth stereo
- W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
Najnowsze wątki
- 2025-10-21 Warszawa => Konsultant Wiodący SAP PP <=
- 2025-10-21 Warszawa => C Programmer <=
- 2025-10-21 Warszawa => Senior Programmer C <=
- 2025-10-21 Łódź => Network Engineer <=
- 2025-10-21 Łódź => System Administrator (Linux) <=
- 2025-10-21 dziś ostatni raz
- 2025-10-21 pizza motorek
- 2025-10-20 oszustwo czy nie
- 2025-10-20 Poznań => Specjalista ds. Marketingu Online (PPC) <=
- 2025-10-20 Warszawa => International Freight Forwarder <=
- 2025-10-20 Warszawa => Dyrektor pionu IT <=
- 2025-10-20 Zakrzewo => Konsultant SAP HCM <=
- 2025-10-19 Superkondensator. Czy to się uda?
- 2025-10-19 HYUANDAI NIE POJEDZIE DALEJ! Potrzebuje PILNIE POMOCY!
- 2025-10-18 BLIK a Sprawa Polska