Tiny SNTP(NTP) Client

Dependencies:   EthernetNetIf mbed

Committer:
okini3939
Date:
Thu Jul 28 17:23:43 2011 +0000
Revision:
1:d3c1871be1e9
Parent:
0:41e7cfdbd23a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 1:d3c1871be1e9 1 /*
okini3939 1:d3c1871be1e9 2 * mbed Tiny SNTP(NTP) Client
okini3939 1:d3c1871be1e9 3 * Copyright (c) 2011 Hiroshi Suga
okini3939 1:d3c1871be1e9 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 1:d3c1871be1e9 5 */
okini3939 1:d3c1871be1e9 6
okini3939 1:d3c1871be1e9 7 /** @file
okini3939 1:d3c1871be1e9 8 * @brief Tiny DNS Resolver
okini3939 1:d3c1871be1e9 9 */
okini3939 1:d3c1871be1e9 10
okini3939 1:d3c1871be1e9 11 #ifndef TinySNTP_h
okini3939 1:d3c1871be1e9 12 #define TinySNTP_h
okini3939 1:d3c1871be1e9 13
okini3939 1:d3c1871be1e9 14 #include <inttypes.h>
okini3939 1:d3c1871be1e9 15
okini3939 1:d3c1871be1e9 16 #define DEBUG
okini3939 1:d3c1871be1e9 17
okini3939 1:d3c1871be1e9 18 #define NTP_PORT 123
okini3939 1:d3c1871be1e9 19 #define NTP_SRC_PORT 50420
okini3939 1:d3c1871be1e9 20 #define NTP_TIMESTAMP_DELTA 2208988800ull
okini3939 1:d3c1871be1e9 21 #define NTP_TIMEOUT 15000 // ms
okini3939 1:d3c1871be1e9 22
okini3939 1:d3c1871be1e9 23 struct SNTPPacket {
okini3939 1:d3c1871be1e9 24 uint8_t info;
okini3939 1:d3c1871be1e9 25 uint8_t stratum;
okini3939 1:d3c1871be1e9 26 uint8_t poll;
okini3939 1:d3c1871be1e9 27 uint8_t precision;
okini3939 1:d3c1871be1e9 28
okini3939 1:d3c1871be1e9 29 uint32_t rootDelay;
okini3939 1:d3c1871be1e9 30 uint32_t rootDispersion;
okini3939 1:d3c1871be1e9 31 uint32_t refId;
okini3939 1:d3c1871be1e9 32
okini3939 1:d3c1871be1e9 33 uint32_t refTm_s;
okini3939 1:d3c1871be1e9 34 uint32_t refTm_f;
okini3939 1:d3c1871be1e9 35 uint32_t origTm_s;
okini3939 1:d3c1871be1e9 36 uint32_t origTm_f;
okini3939 1:d3c1871be1e9 37 uint32_t rxTm_s;
okini3939 1:d3c1871be1e9 38 uint32_t rxTm_f;
okini3939 1:d3c1871be1e9 39 uint32_t txTm_s;
okini3939 1:d3c1871be1e9 40 uint32_t txTm_f;
okini3939 1:d3c1871be1e9 41 } __attribute__((packed));
okini3939 1:d3c1871be1e9 42
okini3939 1:d3c1871be1e9 43 int createSntpRequest (char*);
okini3939 1:d3c1871be1e9 44 int getSntpResponse (const char*, uint32_t *time);
okini3939 1:d3c1871be1e9 45
okini3939 1:d3c1871be1e9 46 /** resolv host by name
okini3939 1:d3c1871be1e9 47 * @param name NTP server
okini3939 1:d3c1871be1e9 48 * @param tim time (return)
okini3939 1:d3c1871be1e9 49 * @return 0:success, -1:failue
okini3939 1:d3c1871be1e9 50 */
okini3939 1:d3c1871be1e9 51 int ntpdate (const char* name, uint32_t *tim);
okini3939 1:d3c1871be1e9 52
okini3939 1:d3c1871be1e9 53 #endif