A general demonstration color etch-a-sketch program using the QVGA TFT with HX8347D controller, Orange Board. Saves touchscreen calibaration data saved in tft.ini. Creates /local/tft.ini if missing. Also included is an Ethernet NTP client to update the RTC. Assumes all other Orange Board devices attached: Text LCD, SDHC Flash, Ethernet.
Dependencies: EthernetNetIf TextLCD mbed
TinySTNP/TinySNTP.h@0:e065ca40f28a, 2011-08-01 (annotated)
- Committer:
- loopsva
- Date:
- Mon Aug 01 16:29:58 2011 +0000
- Revision:
- 0:e065ca40f28a
Inititial Release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
loopsva | 0:e065ca40f28a | 1 | /* |
loopsva | 0:e065ca40f28a | 2 | * mbed Tiny SNTP(NTP) Client |
loopsva | 0:e065ca40f28a | 3 | * Copyright (c) 2011 Hiroshi Suga |
loopsva | 0:e065ca40f28a | 4 | * Released under the MIT License: http://mbed.org/license/mit |
loopsva | 0:e065ca40f28a | 5 | */ |
loopsva | 0:e065ca40f28a | 6 | |
loopsva | 0:e065ca40f28a | 7 | /** @file |
loopsva | 0:e065ca40f28a | 8 | * @brief Tiny DNS Resolver |
loopsva | 0:e065ca40f28a | 9 | */ |
loopsva | 0:e065ca40f28a | 10 | |
loopsva | 0:e065ca40f28a | 11 | #ifndef TinySNTP_h |
loopsva | 0:e065ca40f28a | 12 | #define TinySNTP_h |
loopsva | 0:e065ca40f28a | 13 | |
loopsva | 0:e065ca40f28a | 14 | #include <inttypes.h> |
loopsva | 0:e065ca40f28a | 15 | |
loopsva | 0:e065ca40f28a | 16 | //#define DEBUG |
loopsva | 0:e065ca40f28a | 17 | |
loopsva | 0:e065ca40f28a | 18 | #define NTP_PORT 123 |
loopsva | 0:e065ca40f28a | 19 | #define NTP_SRC_PORT 50420 |
loopsva | 0:e065ca40f28a | 20 | #define NTP_TIMESTAMP_DELTA 2208988800ull |
loopsva | 0:e065ca40f28a | 21 | #define NTP_TIMEOUT 5000 // ms |
loopsva | 0:e065ca40f28a | 22 | |
loopsva | 0:e065ca40f28a | 23 | struct SNTPPacket { |
loopsva | 0:e065ca40f28a | 24 | uint8_t info; |
loopsva | 0:e065ca40f28a | 25 | uint8_t stratum; |
loopsva | 0:e065ca40f28a | 26 | uint8_t poll; |
loopsva | 0:e065ca40f28a | 27 | uint8_t precision; |
loopsva | 0:e065ca40f28a | 28 | |
loopsva | 0:e065ca40f28a | 29 | uint32_t rootDelay; |
loopsva | 0:e065ca40f28a | 30 | uint32_t rootDispersion; |
loopsva | 0:e065ca40f28a | 31 | uint32_t refId; |
loopsva | 0:e065ca40f28a | 32 | |
loopsva | 0:e065ca40f28a | 33 | uint32_t refTm_s; |
loopsva | 0:e065ca40f28a | 34 | uint32_t refTm_f; |
loopsva | 0:e065ca40f28a | 35 | uint32_t origTm_s; |
loopsva | 0:e065ca40f28a | 36 | uint32_t origTm_f; |
loopsva | 0:e065ca40f28a | 37 | uint32_t rxTm_s; |
loopsva | 0:e065ca40f28a | 38 | uint32_t rxTm_f; |
loopsva | 0:e065ca40f28a | 39 | uint32_t txTm_s; |
loopsva | 0:e065ca40f28a | 40 | uint32_t txTm_f; |
loopsva | 0:e065ca40f28a | 41 | } __attribute__((packed)); |
loopsva | 0:e065ca40f28a | 42 | |
loopsva | 0:e065ca40f28a | 43 | int createSntpRequest (char*); |
loopsva | 0:e065ca40f28a | 44 | int getSntpResponse (const char*, uint32_t *time); |
loopsva | 0:e065ca40f28a | 45 | |
loopsva | 0:e065ca40f28a | 46 | /** resolv host by name |
loopsva | 0:e065ca40f28a | 47 | * @param name NTP server |
loopsva | 0:e065ca40f28a | 48 | * @param tim time (return) |
loopsva | 0:e065ca40f28a | 49 | * @return 0:success, -1:failue |
loopsva | 0:e065ca40f28a | 50 | */ |
loopsva | 0:e065ca40f28a | 51 | int ntpdate (const char* name, uint32_t *tim); |
loopsva | 0:e065ca40f28a | 52 | |
loopsva | 0:e065ca40f28a | 53 | #endif |