#ifndef __INFO_H__ #define __INFO_H__ #include "PANSeries.h" #define CONFIG_SIMULATE_WRITE_INFO 0 #define CONFIG_UART_OUTPUT_INFO 0 #define INFO_VERSION_16_BITS 0x0004 #define INFO_TYPE_TX_PWR 0 #define INFO_TYPE_PHY_INIT 1 #define INFO_TYPE_POST_TX_CONFIG 2 #define INFO_TYPE_POST_RX_CONFIG 3 #define INFO_TYPE_PRE_TX_CONFIG_PRF 4 #define INFO_TYPE_PRE_RX_CONFIG_PRF 5 #define INFO_TYPE_PRE_TX_CONFIG_2M_PRF 6 #define INFO_TYPE_PRE_RX_CONFIG_2M_PRF 7 #define INFO_TYPE_PRE_TX_CONFIG_LR 8 #define INFO_TYPE_PRE_RX_CONFIG_LR 9 #define INFO_TYPE_PRE_TX_CONFIG_250K_PRF 10 #define INFO_TYPE_PRE_RX_CONFIG_250K_PRF 11 #define INFO_TYPE_PRE_EVNT_CONFIG 12 #define INFO_TYPE_POST_EVNT_CONFIG 13 #define INFO_TYPE_DCOC_LIMIT 14 #define INFO_TYPE_CONSTANT_TONE 15 #define INFO_TYPE_MAX 16 #define INFO_HEADER_LEN 4 #define TLV_HEAD_LEN 3 #define TLV_TYPE_LEN 1 #define TLV_LEN_LEN 2 #define INFO_TOTAL_LEN_MAX (3*1024 - 4) #define INFO_READ_BUFFER_LEN 512 #define INFO_ITER_READ_BUFFER_LEN 32 #define CRC_LEN 4 #define INFO_READ_OFFSET 0x400 #define INFO_READ_SIZE 0xC00 extern uint16_t info_value_size(void); extern void info_value_tlv_value_output(void); extern void send_raw_value(uint8_t* ptr, uint32_t len); extern uint16_t get_info_crc(void); extern void total_tlv_data_output(void); extern void send_uart_raw_value(uint8_t* ptr, uint32_t len); extern void info_value_tlv_value_uart_output(void); extern void total_tlv_uart_data_output(void); bool check_info_tlv_data(void); extern void start_overwrite_info(void); extern void start_read_info(void); extern void start_read_1k_info(void); extern uint16_t info_read_from_type(uint8_t type, void* data, uint16_t len, uint16_t offset); extern bool info_data_is_valid(void); extern bool check_info_is_empyt(void); extern uint16_t phy_value_init_from_code(void); extern uint16_t phy_value_init_from_info(void); struct tlv_item { uint16_t addr; uint16_t len; }; extern const uint8_t dcoc_init_limit_prf[]; extern struct tlv_item tlv_items[INFO_TYPE_MAX]; extern uint32_t* g_phy_pre_tx_1M_ptr; extern uint32_t* g_phy_pre_tx_2M_ptr; extern uint32_t* g_phy_pre_tx_LR_ptr; extern uint32_t* g_phy_pre_tx_250K_ptr; extern uint32_t* g_phy_pre_rx_1M_ptr; extern uint32_t* g_phy_pre_rx_2M_ptr; extern uint32_t* g_phy_pre_rx_LR_ptr; extern uint32_t* g_phy_pre_rx_250K_ptr; extern uint32_t* g_phy_post_tx_ptr; extern uint32_t* g_phy_post_rx_ptr; extern uint32_t* g_phy_pre_event_ptr; extern uint32_t* g_phy_post_event_ptr; extern uint32_t* g_phy_constant_tone_ptr; #endif