mbed Weather Platform firmware http://mbed.org/users/okini3939/notebook/mbed-weather-platform-firmware/
Dependencies: ChaNFSSD EthernetNetIf I2CLEDDisp Agentbed ChaNFSUSB ILinterpreter mbed BMP085 WeatherMeters ConfigFile ChaNFS I2CLCD
TinyNet/TinySNTP.h@2:a3e5edf84f74, 2011-08-24 (annotated)
- Committer:
- okini3939
- Date:
- Wed Aug 24 13:22:32 2011 +0000
- Revision:
- 2:a3e5edf84f74
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 2:a3e5edf84f74 | 1 | /* |
okini3939 | 2:a3e5edf84f74 | 2 | * mbed Tiny SNTP(NTP) Client |
okini3939 | 2:a3e5edf84f74 | 3 | * Copyright (c) 2011 Hiroshi Suga |
okini3939 | 2:a3e5edf84f74 | 4 | * Released under the MIT License: http://mbed.org/license/mit |
okini3939 | 2:a3e5edf84f74 | 5 | */ |
okini3939 | 2:a3e5edf84f74 | 6 | |
okini3939 | 2:a3e5edf84f74 | 7 | /** @file |
okini3939 | 2:a3e5edf84f74 | 8 | * @brief Tiny DNS Resolver |
okini3939 | 2:a3e5edf84f74 | 9 | */ |
okini3939 | 2:a3e5edf84f74 | 10 | |
okini3939 | 2:a3e5edf84f74 | 11 | #ifndef TinySNTP_h |
okini3939 | 2:a3e5edf84f74 | 12 | #define TinySNTP_h |
okini3939 | 2:a3e5edf84f74 | 13 | |
okini3939 | 2:a3e5edf84f74 | 14 | #include <inttypes.h> |
okini3939 | 2:a3e5edf84f74 | 15 | |
okini3939 | 2:a3e5edf84f74 | 16 | //#define DEBUG |
okini3939 | 2:a3e5edf84f74 | 17 | |
okini3939 | 2:a3e5edf84f74 | 18 | #define NTP_PORT 123 |
okini3939 | 2:a3e5edf84f74 | 19 | #define NTP_SRC_PORT 50420 |
okini3939 | 2:a3e5edf84f74 | 20 | #define NTP_TIMESTAMP_DELTA 2208988800ull |
okini3939 | 2:a3e5edf84f74 | 21 | #define NTP_TIMEOUT 15000 // ms |
okini3939 | 2:a3e5edf84f74 | 22 | |
okini3939 | 2:a3e5edf84f74 | 23 | struct SNTPPacket { |
okini3939 | 2:a3e5edf84f74 | 24 | uint8_t info; |
okini3939 | 2:a3e5edf84f74 | 25 | uint8_t stratum; |
okini3939 | 2:a3e5edf84f74 | 26 | uint8_t poll; |
okini3939 | 2:a3e5edf84f74 | 27 | uint8_t precision; |
okini3939 | 2:a3e5edf84f74 | 28 | |
okini3939 | 2:a3e5edf84f74 | 29 | uint32_t rootDelay; |
okini3939 | 2:a3e5edf84f74 | 30 | uint32_t rootDispersion; |
okini3939 | 2:a3e5edf84f74 | 31 | uint32_t refId; |
okini3939 | 2:a3e5edf84f74 | 32 | |
okini3939 | 2:a3e5edf84f74 | 33 | uint32_t refTm_s; |
okini3939 | 2:a3e5edf84f74 | 34 | uint32_t refTm_f; |
okini3939 | 2:a3e5edf84f74 | 35 | uint32_t origTm_s; |
okini3939 | 2:a3e5edf84f74 | 36 | uint32_t origTm_f; |
okini3939 | 2:a3e5edf84f74 | 37 | uint32_t rxTm_s; |
okini3939 | 2:a3e5edf84f74 | 38 | uint32_t rxTm_f; |
okini3939 | 2:a3e5edf84f74 | 39 | uint32_t txTm_s; |
okini3939 | 2:a3e5edf84f74 | 40 | uint32_t txTm_f; |
okini3939 | 2:a3e5edf84f74 | 41 | } __attribute__((packed)); |
okini3939 | 2:a3e5edf84f74 | 42 | |
okini3939 | 2:a3e5edf84f74 | 43 | int createSntpRequest (char*); |
okini3939 | 2:a3e5edf84f74 | 44 | int getSntpResponse (const char*, uint32_t *time); |
okini3939 | 2:a3e5edf84f74 | 45 | |
okini3939 | 2:a3e5edf84f74 | 46 | /** resolv host by name |
okini3939 | 2:a3e5edf84f74 | 47 | * @param name NTP server |
okini3939 | 2:a3e5edf84f74 | 48 | * @param tim time (return) |
okini3939 | 2:a3e5edf84f74 | 49 | * @return 0:success, -1:failue |
okini3939 | 2:a3e5edf84f74 | 50 | */ |
okini3939 | 2:a3e5edf84f74 | 51 | int ntpdate (const char* name, uint32_t *tim); |
okini3939 | 2:a3e5edf84f74 | 52 | |
okini3939 | 2:a3e5edf84f74 | 53 | #endif |