/**************************************************************************** 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_VERSION_API_H #define IOT_VERSION_API_H #ifdef __cplusplus extern "C" { #endif #define BUILD_TIME_YEAR 17 #define BUILD_TIME_MONTH 5 #define BUILD_TIME_DATE 19 #define BUILD_TIME_HOUR 16 #define BUILD_TIME_MIN 9 #define BUILD_TIME_SEC 0 #define BUILD_EXTERN_SW_VER 0 /** \defgroup MISC_APIs MISC APIs * @brief MISC APIs * * */ /** @addtogroup MISC_APIs * @{ * */ /** build info descriptor descriptor */ typedef struct _iot_build_info { /** external software version. BCD format. range from 0 - 9999 */ uint16_t sw_ver; /** app software version. bin format. range from 0 - 1023 */ uint16_t app_ver; /** build year */ uint8_t year; /** build month */ uint8_t month; /** build day */ uint8_t day; /** build hour */ uint8_t hour; /** build min */ uint8_t min; /** build sec */ uint8_t sec; } iot_build_info_t; /** * @brief iot_version_major() - firmware's major version * * @return major version */ uint8_t iot_version_major(void); /** * @brief iot_version_minor() - firmware's minor version * * @return minor version */ uint8_t iot_version_minor(void); /** * @brief iot_version_micro() - firmware's micro version * * @return micro version */ uint8_t iot_version_micro(void); /** * @brief iot_version_bootloader() - bootloader version * * @return bootloader version */ uint8_t iot_version_bootloader(void); /** * @brief iot_version_build() - firmware's build id * * @return build id */ uint16_t iot_version_build(void); /** * @brief iot_version_hex() - convert firmware's version to hex * * @return hex version */ uint32_t iot_version_hex(void); /** * @brief iot_version_packed() - convert firmware's version to packed version * * @return packed version */ uint16_t iot_version_packed(void); /** * @brief iot_version_type() - firmware's build type * * @return build type * 0 - release * 1 - debug */ uint8_t iot_version_type(void); /** * @brief get user build info. if user build info is not available, * the return value is same as BUILD_TIME_XXX and iot_version_packed(). * @param info: buffer to return user build info */ void iot_version_get_user_build_info(iot_build_info_t *info); /** * @} */ #ifdef __cplusplus } #endif #endif /* IOT_VERSION_API_H */