136 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| 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 */
 |