mirror of
https://github.com/m5stack/ESP-Claw.git
synced 2026-05-20 11:51:49 -07:00
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include "claw_core.h"
|
|
#include "esp_err.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef bool (*cap_time_network_ready_fn)(void *ctx);
|
|
typedef void (*cap_time_sync_success_fn)(bool had_valid_time, void *ctx);
|
|
|
|
typedef struct {
|
|
cap_time_network_ready_fn network_ready;
|
|
void *network_ready_ctx;
|
|
cap_time_sync_success_fn on_sync_success;
|
|
void *on_sync_success_ctx;
|
|
uint32_t disconnected_retry_ms;
|
|
uint32_t sync_retry_ms;
|
|
} cap_time_sync_service_config_t;
|
|
|
|
esp_err_t cap_time_register_group(void);
|
|
// TODO: improve the workflow of cap_scheduler skill
|
|
esp_err_t cap_time_get_timezone(char *timezone, size_t timezone_size);
|
|
esp_err_t cap_time_get_current(char *output, size_t output_size);
|
|
esp_err_t cap_time_sync_now(char *output, size_t output_size);
|
|
bool cap_time_is_valid(void);
|
|
esp_err_t cap_time_sync_service_start(const cap_time_sync_service_config_t *config);
|
|
esp_err_t cap_time_sync_service_stop(void);
|
|
|
|
extern const claw_core_context_provider_t cap_time_context_provider;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|