162 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			5.3 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_VERSION_H
 | 
						|
#define IOT_VERSION_H
 | 
						|
 | 
						|
#include "iot_config.h"
 | 
						|
/* export includes */
 | 
						|
#include "iot_version_api.h"
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    IOT_FIRMWARE_TYPE_KL = 0,
 | 
						|
    /* KL2 type III collector Series equipment */
 | 
						|
    IOT_FIRMWARE_TYPE_KL2_BRM,
 | 
						|
    IOT_FIRMWARE_TYPE_KL3,
 | 
						|
    /* KL2 topology recognition module */
 | 
						|
    IOT_FIREWARE_TYPE_KL2_BSRM,
 | 
						|
    /* KL2 measurement circuit breaker module */
 | 
						|
    IOT_FIREWARE_TYPE_KL2_BRK,
 | 
						|
    /* KL1 ckb image type */
 | 
						|
    IOT_FIREWARE_TYPE_KL1_CKB,
 | 
						|
    /* KL3 ckb image type */
 | 
						|
    IOT_FIREWARE_TYPE_KL3_CKB,
 | 
						|
    /* KL3 type III collector Series equipment */
 | 
						|
    IOT_FIREWARE_TYPE_KL3_BRM,
 | 
						|
    /* kl3 measurement circuit breaker module */
 | 
						|
    IOT_FIREWARE_TYPE_KL3_BRK,
 | 
						|
    /* KL1 new type cco */
 | 
						|
    IOT_FIREWARE_TYPE_KL1_NEW_TYPE_CCO,
 | 
						|
    /* KL3 new type cco */
 | 
						|
    IOT_FIREWARE_TYPE_KL3_NEW_TYPE_CCO,
 | 
						|
    /* KL3 for no rf device */
 | 
						|
    IOT_FIRMWARE_TYPE_KL3_NO_RF,
 | 
						|
    /* KL3 type III collector Series equipment without RF hardware */
 | 
						|
    IOT_FIREWARE_TYPE_KL3_BRM_NO_RF,
 | 
						|
    /* KL3 measurement circuit breaker module without RF hardware */
 | 
						|
    IOT_FIREWARE_TYPE_KL3_BRK_NO_RF,
 | 
						|
    /* max image type value */
 | 
						|
    IOT_FIREWARE_TYPE_MAX = 255,
 | 
						|
} FIRMWARE_IMAGE_TYPE;
 | 
						|
 | 
						|
/* Image type: see IOT_FIRMWARE_TYPE_XXX */
 | 
						|
#ifndef AP_FIRMWARE_IMAGE_TYPE
 | 
						|
 | 
						|
#if (TARGET_VERSION == TARGET_KUNLUN)
 | 
						|
 | 
						|
#if (IOT_STA_CONTROL_MODE > 0)
 | 
						|
/* KL1 CKB FW. */
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIREWARE_TYPE_KL1_CKB)
 | 
						|
#elif (INCLUDE_VIRTUAL_CHANNEL && PLC_SUPPORT_CCO_ROLE)
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIREWARE_TYPE_KL1_NEW_TYPE_CCO)
 | 
						|
#else /* (IOT_STA_CONTROL_MODE > 0) */
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIRMWARE_TYPE_KL)
 | 
						|
#endif /* (IOT_STA_CONTROL_MODE > 0) */
 | 
						|
 | 
						|
#elif (TARGET_VERSION == TARGET_KUNLUN2)
 | 
						|
 | 
						|
#if (IOT_APP_DEF_14_BSRM == IOT_APP_SELECTION)
 | 
						|
/* KL2 BSRM FW. */
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIREWARE_TYPE_KL2_BSRM)
 | 
						|
#elif (IOT_APP_DEF_16_BSRM_CUS_APP == IOT_APP_SELECTION)
 | 
						|
/* KL2 BSRM CUS FW. */
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIREWARE_TYPE_KL2_BRK)
 | 
						|
#else
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIRMWARE_TYPE_KL2_BRM)
 | 
						|
#endif
 | 
						|
 | 
						|
#elif (TARGET_VERSION == TARGET_KUNLUN3)
 | 
						|
 | 
						|
#if (IOT_STA_CONTROL_MODE > 0)
 | 
						|
/* KL3 CKB FW. */
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIREWARE_TYPE_KL3_CKB)
 | 
						|
#elif (IOT_APP_DEF_11_BRM == IOT_APP_SELECTION)
 | 
						|
#if HPLC_RF_DEV_SUPPORT
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE   (IOT_FIREWARE_TYPE_KL3_BRM)
 | 
						|
#else
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE   (IOT_FIREWARE_TYPE_KL3_BRM_NO_RF)
 | 
						|
#endif
 | 
						|
#elif (IOT_APP_DEF_16_BSRM_CUS_APP == IOT_APP_SELECTION)
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE   (IOT_FIREWARE_TYPE_KL3_BRK)
 | 
						|
#elif (INCLUDE_VIRTUAL_CHANNEL && PLC_SUPPORT_CCO_ROLE)
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIREWARE_TYPE_KL3_NEW_TYPE_CCO)
 | 
						|
#else
 | 
						|
#if HPLC_RF_DEV_SUPPORT
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIRMWARE_TYPE_KL3)
 | 
						|
#else
 | 
						|
#define AP_FIRMWARE_IMAGE_TYPE    (IOT_FIRMWARE_TYPE_KL3_NO_RF)
 | 
						|
#endif
 | 
						|
#endif /* (IOT_STA_CONTROL_MODE > 0) */
 | 
						|
 | 
						|
#else
 | 
						|
#error "!!Unknown target version!!"
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* AP_FIRMWARE_IMAGE_TYPE */
 | 
						|
 | 
						|
/* Build type: Release/Debug-(0/1) */
 | 
						|
#define AP_FIRMWARE_VERSION_TYPE (1)
 | 
						|
 | 
						|
/* The major version 5 bits: 0~31 */
 | 
						|
#define AP_FIRMWARE_VERSION_MAJOR (11)
 | 
						|
 | 
						|
/* The minor version 7 bits: 0~127 */
 | 
						|
#define AP_FIRMWARE_VERSION_MINOR (0)
 | 
						|
 | 
						|
/* The micro version 4 bits: 0~15 */
 | 
						|
#define AP_FIRMWARE_VERSION_MICRO (0)
 | 
						|
 | 
						|
/* The build version 16 bits: 0~65535. note that only lower 6 bits can be used
 | 
						|
 * if app version is not 0. app version will use higher 10 bits for
 | 
						|
 * iot_version_hex function.
 | 
						|
 */
 | 
						|
#define AP_FIRMWARE_VERSION_BUILD (1)
 | 
						|
 | 
						|
/* Numerically encoded version, like 0x01020304 */
 | 
						|
#define AP_FIRMWARE_VERSION_HEX ((AP_FIRMWARE_VERSION_MAJOR << 27) |  \
 | 
						|
                                 (AP_FIRMWARE_VERSION_MINOR << 20) |  \
 | 
						|
                                 (AP_FIRMWARE_VERSION_MICRO << 16) |  \
 | 
						|
                                 (AP_FIRMWARE_VERSION_BUILD ))
 | 
						|
 | 
						|
/* hw version cmd parameters */
 | 
						|
#define IOT_HW_VER_LOW_OFFSET     (0)
 | 
						|
#define IOT_HW_VER_HIGH_OFFSET    (8)
 | 
						|
#define IOT_HW_VER_LOW_MASK       (0xFF)
 | 
						|
#define IOT_HW_VER_HIGH_MASK      (0xFF << 8)
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief           set user build info
 | 
						|
 * @param info:     user build info to be set. if not set, user build info will
 | 
						|
 *                  same as buld info.
 | 
						|
 */
 | 
						|
void iot_version_set_user_build_info(iot_build_info_t *info);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_image_type() - image's build type
 | 
						|
 *
 | 
						|
 * @return            image type see - IOT_FIRMWARE_TYPE_XXX
 | 
						|
 *
 | 
						|
 */
 | 
						|
uint8_t iot_image_type(void);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* IOT_VERSION_H */
 |