159 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			159 lines
		
	
	
		
			5.6 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_PROTO_DEV_TEST_H
 | ||
|  | #define _IOT_PROTO_DEV_TEST_H
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #pragma pack(push)      /* save the pack status */
 | ||
|  | #pragma pack(1)         /* 1 byte align */
 | ||
|  | 
 | ||
|  | /* FN code stands for CIU's ack for push-data */ | ||
|  | #define IOT_DEV_TEST_645_FN_ACK_FROM_CIU    0x1F
 | ||
|  | /* FN code stands for bootup indication's response */ | ||
|  | #define IOT_DEV_TEST_645_FN_RSP_BOOTUP_IND  0x13
 | ||
|  | /* indicate whether the debug infor should be printed or not */ | ||
|  | #define IOT_DEV_TEST_DEBUG_EN               0
 | ||
|  | /* define the buffer length for debug infor printing */ | ||
|  | #define IOT_DEV_TEST_LOG_BUF_LEN            128
 | ||
|  | 
 | ||
|  | enum dev_test_fn | ||
|  | { | ||
|  |     /* set band Fn */ | ||
|  |     IOT_DEV_TEST_FN_SET_BAND            = 0x01, | ||
|  |     /* querry band Fn */ | ||
|  |     IOT_DEV_TEST_FN_QUERRY_BAND         = 0x02, | ||
|  |     /* querry software version Fn */ | ||
|  |     IOT_DEV_TEST_FN_QUERRY_VER          = 0x03, | ||
|  |     /* respons for querring band Fn */ | ||
|  |     IOT_DEV_TEST_FN_QUERRY_BAND_RSP     = 0x04, | ||
|  |     /* respons for querring software version Fn */ | ||
|  |     IOT_DEV_TEST_FN_QUERRY_VER_RSP      = 0x05, | ||
|  |     /* set local mac Fn */ | ||
|  |     IOT_DEV_TEST_FN_SET_MAC             = 0x06, | ||
|  |     /* querry local mac Fn */ | ||
|  |     IOT_DEV_TEST_FN_QUERRY_MAC          = 0x07, | ||
|  |     /* respons for querring mac Fn */ | ||
|  |     IOT_DEV_TEST_FN_QUERRY_MAC_RSP      = 0x08, | ||
|  |     /* set CKQ operation mode */ | ||
|  |     IOT_DEV_TEST_FN_SET_OP_MODE         = 0x09, | ||
|  |     /* query CKQ operation mode */ | ||
|  |     IOT_DEV_TEST_FN_QUERY_OP_MODE       = 0x0A, | ||
|  |     /* response for querying operation mode */ | ||
|  |     IOT_DEV_TEST_FN_QUERY_OP_MODE_RSP   = 0x0B, | ||
|  |     /* set UART baudrate */ | ||
|  |     IOT_DEV_TEST_FN_SET_UART_BAUDRATE   = 0x0C, | ||
|  |     /* query UART baudrate */ | ||
|  |     IOT_DEV_TEST_FN_QUERY_BAUDRATE      = 0x0D, | ||
|  |     /* response for querying UART baudrate */ | ||
|  |     IOT_DEV_TEST_FN_QUERY_BAUD_RSP      = 0x0E, | ||
|  |     /* set rf option and rf channel */ | ||
|  |     IOT_DEV_TEST_FN_SET_RF              = 0x0F, | ||
|  |     /* set rf tx power */ | ||
|  |     IOT_DEV_TEST_FN_SET_RF_TX_POWER     = 0x10, | ||
|  |     /* set hplc tx power */ | ||
|  |     IOT_DEV_TEST_FN_SET_HPLC_TX_POWER   = 0x11, | ||
|  |     /* set tx link type */ | ||
|  |     IOT_DEV_TEST_FN_SET_TX_LINK_TYPE    = 0x12, | ||
|  |     /* used Fn Max count */ | ||
|  |     IOT_DEV_TEST_FN_PRIVATE_MAX         = IOT_DEV_TEST_FN_SET_TX_LINK_TYPE | ||
|  | }; | ||
|  | 
 | ||
|  | /* minimal respons frame lenth  */ | ||
|  | #define IOT_DEV_TEST_RSP_FRAME_LEN_MIN  0x0C
 | ||
|  | 
 | ||
|  | /* response status */ | ||
|  | #define IOT_DEV_TEST_RSP_OK             0x00
 | ||
|  | #define IOT_DEV_TEST_RSP_ERR            0x01
 | ||
|  | 
 | ||
|  | /* reaseon for response error */ | ||
|  | enum dev_test_rsp_reason | ||
|  | { | ||
|  |     /* no err */ | ||
|  |     IOT_DEV_TEST_REASON_OK              = 0x00, | ||
|  |     /* out of range */ | ||
|  |     IOT_DEV_TEST_REASON_OUT_RNG         = 0x01, | ||
|  |     /* double setting */ | ||
|  |     IOT_DEV_TEST_REASON_DUP_SET         = 0x02, | ||
|  |     /* not supporting */ | ||
|  |     IOT_DEV_TEST_REASON_NOT_SUPPORT     = 0x03, | ||
|  |     /* error mac */ | ||
|  |     IOT_DEV_TEST_REASON_MAC_INVALID     = 0x04, | ||
|  |     /* saving error */ | ||
|  |     IOT_DEV_TEST_REASON_SAVE_ERR        = 0x05, | ||
|  |     /* configuration invalid */ | ||
|  |     IOT_DEV_TEST_REASON_CFG_INVALID     = 0x06 | ||
|  | }; | ||
|  | 
 | ||
|  | /* supporting max band */ | ||
|  | #define IOT_DEV_TEST_MAX_BAND           0x04
 | ||
|  | 
 | ||
|  | /* data lenth in response frame's data field */ | ||
|  | #define IOT_DEV_TEST_DATA_FIELD_LEN     0x04
 | ||
|  | 
 | ||
|  | typedef struct _dev_test_ext_cfg { | ||
|  |     /* flag to mark if rf_option and rf_channel config is available */ | ||
|  |     uint8_t     rf_valid            :1, | ||
|  |     /* flag to mark if rf_tx_power config is available */ | ||
|  |                 rf_power_valid      :1, | ||
|  |     /* flag to mark if hplc_tx_power config is available */ | ||
|  |                 hplc_power_valid    :1, | ||
|  |     /* rf tx only for app */ | ||
|  |                 rf_tx_only          :1, | ||
|  |     /* reserved for future */ | ||
|  |                 rsvd1               :4; | ||
|  |     /* rf option, see IOT_PLC_RF_OPTION_XX */ | ||
|  |     uint8_t     rf_option; | ||
|  |     /* rf channel, see IOT_PLC_OPTION1_CHANNEL_ID_XX */ | ||
|  |     uint8_t     rf_channel; | ||
|  |     /* tx power of rf, unit is 1 dbm */ | ||
|  |     int8_t      rf_tx_power; | ||
|  |     /* tx power of hplc, unit is 1 dbuv */ | ||
|  |     uint8_t     hplc_tx_power; | ||
|  |     /* reserved for future */ | ||
|  |     uint8_t     rsvd2[5]; | ||
|  | } dev_test_ext_cfg_t; | ||
|  | 
 | ||
|  | typedef struct _dev_test_mode_cfg { | ||
|  |     /* band ID to be configured, see PLC_LIB_FREQ_BAND_X */ | ||
|  |     uint8_t     band_id; | ||
|  |     /* configuring effective duration, uint is sec */ | ||
|  |     uint8_t     dur; | ||
|  |     /* the target device ID group that needs to respond to this command.
 | ||
|  |      * see IOT_DEV_TEST_TARGET_ID_MSK_XXX. | ||
|  |      */ | ||
|  |     uint32_t    target_id_mask  :2, | ||
|  |     /* reserved for future */ | ||
|  |                 reserved        :29, | ||
|  |     /* flag to mark if ext configuration is enabled.
 | ||
|  |      * 1 means enable, 0 means disable | ||
|  |      */ | ||
|  |                 ext_cfg_en      :1; | ||
|  |     /* ext configuration */ | ||
|  |     dev_test_ext_cfg_t ext_cfg[0]; | ||
|  | } dev_test_mode_cfg_t; | ||
|  | 
 | ||
|  | #pragma pack(pop)   /* restore the pack status */
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif  //_IOT_PROTO_DEV_TEST_H
 | ||
|  | 
 |