(バージョン= 3、モード= 3)、getTimeAndDate、およびsendNTPpacketと呼ばれる方法で
http://www.instructables.com/id/Arduino-Internet-Time-Client/step2/Code/
ルック。
これは送信されるパケットです。これは、バッファを設定しており、バイナリ(0b)と16進数(0x)が48文字のバッファに設定されていることを示しています。アドレスがNTPタイムサーバです。ここ
memset(packetBuffer, 0, NTP_PACKET_SIZE);
packetBuffer[0] = 0b11100011;
packetBuffer[1] = 0;
packetBuffer[2] = 6;
packetBuffer[3] = 0xEC;
packetBuffer[12] = 49;
packetBuffer[13] = 0x4E;
packetBuffer[14] = 49;
packetBuffer[15] = 52;
Udp.beginPacket(address, 123);
Udp.write(packetBuffer,NTP_PACKET_SIZE);
Udp.endPacket();
は、受信したパケットに何が起こるかである、
Udp.read(packetBuffer,NTP_PACKET_SIZE); // read the packet into the buffer
unsigned long highWord, lowWord, epoch;
highWord = word(packetBuffer[40], packetBuffer[41]);
lowWord = word(packetBuffer[42], packetBuffer[43]);
epoch = highWord << 16 | lowWord;
epoch = epoch - 2208988800 + timeZoneOffset;
flag=1;
setTime(epoch);
のsetTimeはarduinoの時間ライブラリの一部であるので、エポックは、からの秒数でなければなりませんここで提案として1900年1月1日(エポックを検索)、
https://en.wikipedia.org/wiki/Network_Time_Protocol
しかし、場合にあなたがC#バージョンが欲しい、私は下のコードをコンパイルし、ここでこれを見つけました例外的な答えとそれは動作します。これはおそらくあなたにとってより意味をなさないでしょうし、1900年1月1日の時代の使用を示しています。
How to Query an NTP Server using C#?
簡単に類似性を見ることができます。
ええすでにこれらのリンクが確認されています。しかし、私は送信されたファイルではなく、ntpから受け取ったファイルのみを見ることができます。 – Sharpless512