| /* |
| * Copyright (c) 2017 Linaro Limited |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr.h> |
| #include <misc/printk.h> |
| #include <net/sntp.h> |
| |
| #define SNTP_PORT 123 |
| |
| struct k_sem sem; |
| |
| void resp_callback(struct sntp_ctx *ctx, |
| int status, |
| u64_t epoch_time, |
| void *user_data) |
| { |
| printk("time: %lld\n", epoch_time); |
| printk("status: %d\n", status); |
| printk("user_data: %p\n", user_data); |
| |
| k_sem_give(&sem); |
| } |
| |
| void main(void) |
| { |
| struct sntp_ctx ctx; |
| int rv; |
| |
| k_sem_init(&sem, 0, 1); |
| |
| /* ipv4 */ |
| rv = sntp_init(&ctx, |
| CONFIG_NET_APP_PEER_IPV4_ADDR, |
| SNTP_PORT, |
| K_FOREVER); |
| if (rv < 0) { |
| printk("Failed to init sntp ctx: %d\n", rv); |
| return; |
| } |
| |
| rv = sntp_request(&ctx, K_FOREVER, resp_callback, NULL); |
| if (rv < 0) { |
| printk("Failed to send sntp request: %d\n", rv); |
| return; |
| } |
| |
| k_sem_take(&sem, K_FOREVER); |
| sntp_close(&ctx); |
| |
| /* ipv6 */ |
| rv = sntp_init(&ctx, |
| CONFIG_NET_APP_PEER_IPV6_ADDR, |
| SNTP_PORT, |
| K_NO_WAIT); |
| if (rv < 0) { |
| printk("Failed to initi sntp ctx: %d\n", rv); |
| return; |
| } |
| |
| rv = sntp_request(&ctx, K_NO_WAIT, resp_callback, NULL); |
| if (rv < 0) { |
| printk("Failed to send sntp request: %d\n", rv); |
| return; |
| } |
| |
| k_sem_take(&sem, K_FOREVER); |
| sntp_close(&ctx); |
| } |