跳转至

calendar

Calendar 提供日历时间管理功能,支持通过日期时间结构体与时间戳进行时间的设置和获取。

头文件清单

#include "include/driver/calendar.h"

接口清单

接口名称 功能简述
uapi_calendar_init 初始化Calendar模块,注册HAL回调函数并将时间戳设置为0
uapi_calendar_deinit 去初始化Calendar模块,重置时间戳并注销HAL回调函数
uapi_calendar_set_datetime 通过日期时间结构体设置日历基础时间
uapi_calendar_get_datetime 通过日期时间结构体获取日历当前时间
uapi_calendar_set_timestamp 设置日历时间戳
uapi_calendar_get_timestamp 获取当前日历时间戳

Functions

uapi_calendar_init

errcode_t uapi_calendar_init(void)

头文件清单

#include "include/driver/calendar.h"

功能说明

  • 初始化Calendar模块,注册HAL层回调函数
  • 将时间戳设置为0
  • 需在使用其他Calendar接口前最先调用

前置条件

  • 调用时序约束:当前接口应在使用其他Calendar接口前最先调用
  • 依赖关系:HAL层适配函数已实现并可供注册

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 初始化成功
Other 其他错误码,参考errcode_t 执行失败

uapi_calendar_deinit

errcode_t uapi_calendar_deinit(void)

头文件清单

#include "include/driver/calendar.h"

功能说明

  • 去初始化Calendar模块,注销HAL层回调函数
  • 将时间戳重置为0
  • 调用后Calendar模块不可使用,需重新初始化

前置条件

  • 调用时序约束:Calendar模块已通过uapi_calendar_init()初始化完成
  • 依赖关系:HAL层回调函数已注册且有效

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 去初始化成功
Other 其他错误码,参考errcode_t 执行失败

uapi_calendar_set_datetime

errcode_t uapi_calendar_set_datetime(const calendar_t *date)

头文件清单

#include "include/driver/calendar.h"

功能说明

  • 通过calendar_t结构体设置日历日期时间
  • 将日期时间转换为时间戳后调用HAL层设置接口
  • 设置时会对日期时间进行合法性校验(年、月、日、时、分、秒范围)

前置条件

  • 调用时序约束:Calendar模块已通过uapi_calendar_init()初始化完成
  • 依赖关系:HAL层回调函数已注册且有效

入参

名称 参数类型 详细说明 约束取值范围
date const calendar_t * 指向待设置的日历日期时间结构体 非NULL;year: 1970~2099;mon: 1~12;day: 1~当月最大天数;hour: 0~23;min: 0~59;sec: 0~59

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 日期时间设置成功
Other 其他错误码,参考errcode_t 执行失败

uapi_calendar_get_datetime

errcode_t uapi_calendar_get_datetime(calendar_t *date)

头文件清单

#include "include/driver/calendar.h"

功能说明

  • 通过calendar_t结构体获取当前日历日期时间
  • 从HAL层获取时间戳后转换为日期时间
  • 获取后会对日期时间进行合法性校验,不合法则重置为0并返回错误

前置条件

  • 调用时序约束:Calendar模块已通过uapi_calendar_init()初始化完成
  • 依赖关系:HAL层回调函数已注册且有效

出参

名称 数据类型 输出说明
date calendar_t 当前日历日期时间,校验失败时重置为0

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 日期时间获取成功
Other 其他错误码,参考errcode_t 执行失败

uapi_calendar_set_timestamp

errcode_t uapi_calendar_set_timestamp(const uint64_t timestamp)

头文件清单

#include "include/driver/calendar.h"

功能说明

  • 设置日历时间戳,时间戳单位为毫秒
  • 设置前会对时间戳进行日期合法性校验
  • 时间戳为0时触发内部初始化流程

前置条件

  • 调用时序约束:Calendar模块已通过uapi_calendar_init()初始化完成
  • 依赖关系:HAL层回调函数已注册且有效

入参

名称 参数类型 详细说明 约束取值范围
timestamp const uint64_t 待设置的日历时间戳值,单位毫秒 转换为日期后year: 1970~2099;mon: 1~12;day: 1~当月最大天数;hour: 0~23;min: 0~59;sec: 0~59

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 时间戳设置成功
Other 其他错误码,参考errcode_t 执行失败

uapi_calendar_get_timestamp

errcode_t uapi_calendar_get_timestamp(uint64_t *timestamp)

头文件清单

#include "include/driver/calendar.h"

功能说明

  • 获取当前日历时间戳,时间戳单位为毫秒
  • 获取后会对时间戳进行日期合法性校验,不合法则置0并返回错误
  • HAL层函数未注册时直接返回失败

前置条件

  • 调用时序约束:Calendar模块已通过uapi_calendar_init()初始化完成
  • 依赖关系:HAL层回调函数已注册且有效

出参

名称 数据类型 输出说明
timestamp uint64_t 当前日历时间戳值,单位毫秒;校验失败时置0

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 时间戳获取成功
Other 其他错误码,参考errcode_t 执行失败

Type definitions

errcode_t [SDK公共基础类型]

typedef uint32_t errcode_t;

使用说明

作为本模块所有对外接口的返回值类型

Structures

calendar_t

typedef struct calendar {
    uint32_t sec;           /*!< 秒  0 ~ 59 */
    uint32_t min;           /*!< 分钟  0 ~ 59 */
    uint32_t hour;          /*!< 小时,0 ~ 23。 */
    uint32_t day;           /*!< 日,月的最大天数。 */
    uint32_t mon;           /*!< 月,1 ~ 12。 */
    uint32_t year;          /*!< 年,1970 ~ 2099。 */
} calendar_t;

成员说明

成员名称 数据类型 描述
sec uint32_t 秒,取值范围 0~59
min uint32_t 分钟,取值范围 0~59
hour uint32_t 小时,取值范围 0~23
day uint32_t 日,取值范围 1~当月最大天数(受闰年影响)
mon uint32_t 月,取值范围 1~12
year uint32_t 年,取值范围 1970~2099

Macros

ERRCODE_SUCC [SDK公共共享宏]

#define ERRCODE_SUCC                                        0UL

ERRCODE_CALENDAR_INVALID_PARAMETER

#define ERRCODE_CALENDAR_INVALID_PARAMETER                  0x80001021

ERRCODE_CALENDAR_GET_DATETIME_FAILURE

#define ERRCODE_CALENDAR_GET_DATETIME_FAILURE               0x80001022

ERRCODE_CALENDAR_GET_TIMESTAMP_FAILURE

#define ERRCODE_CALENDAR_GET_TIMESTAMP_FAILURE              0x80001023

ERRCODE_CALENDAR_FAILURE

#define ERRCODE_CALENDAR_FAILURE                            0x80001024