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 */
 |