77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.0 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_errno_api.h"
 | |
| #include "iot_app_pib_cco_api.h"
 | |
| 
 | |
| #if PLC_SUPPORT_CCO_ROLE
 | |
| 
 | |
| extern app_pib_rw_t *iot_get_rw_pib_info(void);
 | |
| 
 | |
| uint8_t iot_app_get_work_band_in_pib(void)
 | |
| {
 | |
|     uint8_t band = 0;
 | |
|     app_pib_rw_t *pib_rw = iot_get_rw_pib_info();
 | |
| 
 | |
|     if (pib_rw == NULL) {
 | |
|         return band;
 | |
|     }
 | |
| 
 | |
|     if (pib_rw->band_valid) {
 | |
|         return pib_rw->work_band + 1;
 | |
|     }
 | |
| 
 | |
|     return band;
 | |
| }
 | |
| 
 | |
| uint8_t iot_app_save_work_band_to_pib(uint8_t work_band)
 | |
| {
 | |
|     uint16_t ticket;
 | |
|     uint8_t ref;
 | |
|     app_pib_rw_t *pib_rw = iot_get_rw_pib_info();
 | |
| 
 | |
|     if (pib_rw == NULL) {
 | |
|         return ERR_FAIL;
 | |
|     }
 | |
|     /* check band */
 | |
|     if (work_band > PLC_LIB_FREQ_BAND_MAX) {
 | |
|         return ERR_NOSUPP;
 | |
|     }
 | |
| 
 | |
|     iot_pib_acquire_app_commit_ref(&ref);
 | |
|     pib_rw->band_valid = 1;
 | |
|     pib_rw->work_band = work_band;
 | |
|     iot_pib_release_app_commit_ref(&ref);
 | |
|     iot_pib_app_commit(&ticket);
 | |
| 
 | |
|     return ERR_OK;
 | |
| }
 | |
| 
 | |
| #else /* PLC_SUPPORT_CCO_ROLE */
 | |
| 
 | |
| uint8_t iot_app_get_work_band_in_pib(void)
 | |
| {
 | |
|      /* sta not support */
 | |
|     return 0;
 | |
| }
 | |
| 
 | |
| uint8_t iot_app_save_work_band_to_pib(uint8_t work_band)
 | |
| {
 | |
|     (void)work_band;
 | |
|     return ERR_FAIL;
 | |
| }
 | |
| 
 | |
| #endif /* PLC_SUPPORT_CCO_ROLE */
 |