sntp_example.c 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * Redistribution and use in source and binary forms, with or without modification,
  3. * are permitted provided that the following conditions are met:
  4. *
  5. * 1. Redistributions of source code must retain the above copyright notice,
  6. * this list of conditions and the following disclaimer.
  7. * 2. Redistributions in binary form must reproduce the above copyright notice,
  8. * this list of conditions and the following disclaimer in the documentation
  9. * and/or other materials provided with the distribution.
  10. * 3. The name of the author may not be used to endorse or promote products
  11. * derived from this software without specific prior written permission.
  12. *
  13. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
  14. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  15. * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
  16. * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  17. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
  18. * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  19. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  20. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  21. * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
  22. * OF SUCH DAMAGE.
  23. *
  24. * This file is part of the lwIP TCP/IP stack.
  25. *
  26. * Author: Dirk Ziegelmeier <dziegel@gmx.de>
  27. *
  28. */
  29. #include <time.h>
  30. #include "lwip/opt.h"
  31. #include "lwip/apps/sntp.h"
  32. #include "sntp_example.h"
  33. #include "lwip/netif.h"
  34. void
  35. sntp_set_system_time(u32_t sec)
  36. {
  37. char buf[32];
  38. struct tm current_time_val;
  39. time_t current_time = (time_t)sec;
  40. #if defined(_WIN32) || defined(WIN32)
  41. localtime_s(&current_time_val, &current_time);
  42. #else
  43. localtime_r(&current_time, &current_time_val);
  44. #endif
  45. strftime(buf, sizeof(buf), "%d.%m.%Y %H:%M:%S", &current_time_val);
  46. LWIP_PLATFORM_DIAG(("SNTP time: %s\n", buf));
  47. }
  48. void
  49. sntp_example_init(void)
  50. {
  51. sntp_setoperatingmode(SNTP_OPMODE_POLL);
  52. #if LWIP_DHCP
  53. sntp_servermode_dhcp(1); /* get SNTP server via DHCP */
  54. #else /* LWIP_DHCP */
  55. #if LWIP_IPV4
  56. sntp_setserver(0, netif_ip_gw4(netif_default));
  57. #endif /* LWIP_IPV4 */
  58. #endif /* LWIP_DHCP */
  59. sntp_init();
  60. }