244 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			244 lines
		
	
	
		
			22 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.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								***************************************************************************/
							 | 
						||
| 
								 | 
							
								#include "iot_config.h"
							 | 
						||
| 
								 | 
							
								#include "plc_rf_scan_tbl.h"
							 | 
						||
| 
								 | 
							
								#include "plc_beacon.h"
							 | 
						||
| 
								 | 
							
								#include "phy_rf_chn.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if (HPLC_RF_SUPPORT)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* rf scan table recommended by State Grid protocol, 40 channels in total */
							 | 
						||
| 
								 | 
							
								const mac_rf_scan_op_chn_t rf_scan_tbl_nsg[RF_SCAN_TBL_NSG_CNT] = {
							 | 
						||
| 
								 | 
							
								    /* option                                channel_id        dwell time ms */
							 | 
						||
| 
								 | 
							
								    {PHY_RF_BAND_NSG_OPTION_DFT, PHY_RF_BAND_NSG_CH_DFT, MAC_RF_SCAN_FIRST_DWELL_TIME,  MAC_RF_SCAN_FIRST_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  8,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  24,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  32,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  36,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  40,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  44,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  48,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  56,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  64,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  41,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  61,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  81,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  91,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  97,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  101,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  107,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  121,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  141,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  161,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  4,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  20,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  28,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  38,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  42,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  46,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  50,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  52,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  54,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  69,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  30,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  50,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  70,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  86,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  112,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  117,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  128,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  135,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  147,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION3_200K,                  180,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* supplement of State Grid rf scan table, 59 channels in total */
							 | 
						||
| 
								 | 
							
								const mac_rf_scan_op_chn_t rf_scan_tbl_nsg_ext[RF_SCAN_TBL_NSG_EXT_CNT] = {
							 | 
						||
| 
								 | 
							
								    /* option                              channel_id          dwell time ms */
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  1,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  2,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  3,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  5,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  6,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  7,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  9,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  10,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  11,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  12,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  13,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  14,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  15,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  17,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  18,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  19,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  21,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  22,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  23,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  25,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  26,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  27,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  29,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  30,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  31,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  33,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  34,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  35,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  37,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  39,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  41,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  43,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  45,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  47,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  49,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  51,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  53,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  55,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  57,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  58,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  59,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  60,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  61,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  62,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  63,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  65,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  66,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  67,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  68,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  70,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  71,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  72,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  73,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  74,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  75,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  76,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  77,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  78,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  79,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* overseas recommended rf scan table, 16 channels in total */
							 | 
						||
| 
								 | 
							
								const mac_rf_scan_op_chn_t rf_scan_tbl_overseas[RF_SCAN_TBL_OVERSEAS_CNT] = {
							 | 
						||
| 
								 | 
							
								    /* option                                channel_id        dwell time ms */
							 | 
						||
| 
								 | 
							
								    {PHY_RF_BAND_OVERSEAS_OPTION_DFT, PHY_RF_BAND_OVERSEAS_CH_DFT, MAC_RF_SCAN_FIRST_DWELL_TIME,  MAC_RF_SCAN_FIRST_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  3,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  7,                  MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  11,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  15,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  19,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  27,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  31,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  35,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  39,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  43,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  55,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  59,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  63,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  67,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  75,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* overseas extended rf scan table, 60 channels in total */
							 | 
						||
| 
								 | 
							
								const mac_rf_scan_op_chn_t rf_scan_tbl_overseas_ext[RF_SCAN_TBL_OVERSEAS_EXT_CNT] = {
							 | 
						||
| 
								 | 
							
								    /* option                                channel_id        dwell time ms */
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  1,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  2,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  4,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  5,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  6,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  8,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  9,                 MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  10,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  12,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  13,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  14,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  16,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  17,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  18,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  20,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  21,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  22,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  23,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  24,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  25,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  26,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  28,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  29,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  30,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  32,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  33,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  34,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  36,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  37,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  38,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  40,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  41,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  42,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  44,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  45,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  46,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  47,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  48,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  49,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  50,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  52,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  53,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  54,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  56,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  57,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  58,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  60,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  61,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  62,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  64,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  65,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  66,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  68,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  69,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  70,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  71,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  72,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  73,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  74,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								    {PHY_RF_OPTION2_500K,                  76,                MAC_RF_SCAN_MIN_TIME,  MAC_RF_SCAN_DWELL_TIME},
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uint8_t plc_get_rf_recommend_tbl(const mac_rf_scan_op_chn_t **rf_tbl)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    uint8_t rf_cnt;
							 | 
						||
| 
								 | 
							
								    if (phy_rf_get_band_sel() == PHY_RF_BAND_OVERSEAS) {
							 | 
						||
| 
								 | 
							
								        rf_cnt = RF_SCAN_TBL_OVERSEAS_CNT;
							 | 
						||
| 
								 | 
							
								        *rf_tbl = rf_scan_tbl_overseas;
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								        rf_cnt = RF_SCAN_TBL_NSG_CNT;
							 | 
						||
| 
								 | 
							
								        *rf_tbl = rf_scan_tbl_nsg;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return rf_cnt;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uint8_t plc_get_rf_ext_tbl(const mac_rf_scan_op_chn_t **rf_tbl)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    uint8_t rf_cnt;
							 | 
						||
| 
								 | 
							
								    if (phy_rf_get_band_sel() == PHY_RF_BAND_OVERSEAS) {
							 | 
						||
| 
								 | 
							
								        rf_cnt = RF_SCAN_TBL_OVERSEAS_EXT_CNT;
							 | 
						||
| 
								 | 
							
								        *rf_tbl = rf_scan_tbl_overseas_ext;
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								        rf_cnt = RF_SCAN_TBL_NSG_EXT_CNT;
							 | 
						||
| 
								 | 
							
								        *rf_tbl = rf_scan_tbl_nsg_ext;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return rf_cnt;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* HPLC_RF_SUPPORT */
							 |