Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetNetIf SimpleSocket 1.0 mbed
ntpclient.cpp@33:39d9cdf99de8, 2011-11-02 (annotated)
- Committer:
- yamaguch
- Date:
- Wed Nov 02 12:16:51 2011 +0000
- Revision:
- 33:39d9cdf99de8
- Parent:
- 32:00114e36de90
- Child:
- 34:a108bcc26b69
added examples
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| yamaguch |
32:00114e36de90 | 1 | #include "EthernetNetIf.h" |
| yamaguch |
32:00114e36de90 | 2 | #include "SimpleSocket.h" |
| yamaguch |
32:00114e36de90 | 3 | |
| yamaguch |
32:00114e36de90 | 4 | void ntpclient() { |
| yamaguch |
33:39d9cdf99de8 | 5 | EthernetNetIf eth; |
| yamaguch |
33:39d9cdf99de8 | 6 | eth.setup(); |
| yamaguch |
32:00114e36de90 | 7 | char *NTP_SERVER = "pool.ntp.org"; |
| yamaguch |
33:39d9cdf99de8 | 8 | printf("ntp server = %s\n", NTP_SERVER); |
| yamaguch |
32:00114e36de90 | 9 | |
| yamaguch |
32:00114e36de90 | 10 | while (true) { |
| yamaguch |
32:00114e36de90 | 11 | DatagramSocket datagram; |
| yamaguch |
33:39d9cdf99de8 | 12 | char buf[48] = {0x23}; // 00100011 LI(0), Version(4), Mode(3: Client) |
| yamaguch |
32:00114e36de90 | 13 | datagram.write(buf, sizeof(buf)); |
| yamaguch |
32:00114e36de90 | 14 | datagram.send(NTP_SERVER, 123); |
| yamaguch |
32:00114e36de90 | 15 | |
| yamaguch |
32:00114e36de90 | 16 | if (datagram.receive() > 0) { |
| yamaguch |
33:39d9cdf99de8 | 17 | if (datagram.read(buf, sizeof(buf)) > 0) { |
| yamaguch |
32:00114e36de90 | 18 | unsigned long seconds = 0; |
| yamaguch |
32:00114e36de90 | 19 | for (int i = 40; i <= 43; i++) |
| yamaguch |
32:00114e36de90 | 20 | seconds = (seconds << 8) | buf[i]; |
| yamaguch |
33:39d9cdf99de8 | 21 | set_time(time_t(seconds - 2208988800ULL)); |
| yamaguch |
33:39d9cdf99de8 | 22 | char timestamp[16]; |
| yamaguch |
32:00114e36de90 | 23 | time_t jstime = time(NULL) + 9 * 3600; |
| yamaguch |
33:39d9cdf99de8 | 24 | strftime(timestamp, sizeof(timestamp), "%m/%d %X", localtime(&jstime)); |
| yamaguch |
33:39d9cdf99de8 | 25 | printf("Time: %s\n", timestamp); |
| yamaguch |
32:00114e36de90 | 26 | break; |
| yamaguch |
32:00114e36de90 | 27 | } |
| yamaguch |
33:39d9cdf99de8 | 28 | } else { |
| yamaguch |
33:39d9cdf99de8 | 29 | printf("no answer\n"); |
| yamaguch |
33:39d9cdf99de8 | 30 | wait(1.0); |
| yamaguch |
32:00114e36de90 | 31 | } |
| yamaguch |
32:00114e36de90 | 32 | } |
| yamaguch |
32:00114e36de90 | 33 | } |