99 lines
2.8 KiB
C
Executable File
99 lines
2.8 KiB
C
Executable File
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
|
|
#ifndef IOT_RTC_API_H
|
|
#define IOT_RTC_API_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** \defgroup RTC_APIs RTC APIs
|
|
* @brief WQ30x1 RTC API
|
|
*/
|
|
|
|
typedef struct iot_time_tm
|
|
{
|
|
uint16_t tm_year; /*year, need when set*/
|
|
uint8_t tm_mon; /*month, need when set*/
|
|
uint8_t tm_mday; /*day in the month, need when set*/
|
|
uint8_t tm_hour; /*hour, need when set*/
|
|
uint8_t tm_min; /*minute, need when set*/
|
|
uint8_t tm_sec; /*second, need when set*/
|
|
} iot_time_tm_t;
|
|
|
|
/** @addtogroup RTC_APIs
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @brief iot_rtc_set(iot_time_tm_t *tm) - set RTC data
|
|
* @param tm: time zone param
|
|
*
|
|
*/
|
|
void iot_rtc_set(iot_time_tm_t *tm);
|
|
|
|
/**
|
|
* @brief iot_rtc_get(iot_time_tm_t *tm) - get current RTC data
|
|
* @param tm: time zone param
|
|
*/
|
|
void iot_rtc_get(iot_time_tm_t *tm);
|
|
|
|
/**
|
|
* @brief iot_rtc_delta_calc - time delta calc between tm1 and tm2.
|
|
* @param tm1: time param.
|
|
* @param tm2: time param.
|
|
* @retval: delta time, uint is 1s. delta = tm2 - tm1.
|
|
*/
|
|
int64_t iot_rtc_delta_calc(iot_time_tm_t *tm1, iot_time_tm_t *tm2);
|
|
|
|
/**
|
|
* @brief iot_rtc_delta_add - add time delta to tm.
|
|
* @param delta_time: delta time, uint is 1s.
|
|
* @param tm: time param.
|
|
*/
|
|
void iot_rtc_delta_add(int64_t delta_time, iot_time_tm_t *tm);
|
|
|
|
/**
|
|
* @brief iot_is_rtc_data_revised - the rtc data whether is revised.
|
|
* @retval: 0 - isn't revised, 1 - is revised.
|
|
*/
|
|
uint32_t iot_rtc_data_is_revised();
|
|
|
|
/**
|
|
* @brief iot_time_valid() - check if time is valid
|
|
* @param tm: pointer to time to be checked
|
|
* @retval: 1 - valid, 0 - invalid
|
|
*/
|
|
uint8_t iot_time_valid(iot_time_tm_t *tm);
|
|
|
|
/**
|
|
* @brief iot_time_ymdhms_valid() - check if time ymdhms is valid. valid range
|
|
* is 1970-1-1-0:0:0 - 2099-12-31-23:59:59.
|
|
* @param tm: pointer to time to be checked
|
|
* @retval: 1 - valid, 0 - invalid
|
|
*/
|
|
uint8_t iot_time_ymdhms_valid(iot_time_tm_t *time);
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //IOT_RTC_API_H
|