Tiny SNTP(NTP) Client

Dependencies:   EthernetNetIf mbed

Committer:
okini3939
Date:
Thu Jul 21 17:53:11 2011 +0000
Revision:
0:41e7cfdbd23a
Child:
1:d3c1871be1e9

        

Who changed what in which revision?

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