136 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| 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_PLC_LIB_H
 | |
| #define IOT_PLC_LIB_H
 | |
| 
 | |
| #include "os_types.h"
 | |
| #include "iot_config.h"
 | |
| #include "iot_plc_api.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /* pack for the structures in the whole file */
 | |
| #pragma pack(push)  // save the pack status
 | |
| #pragma pack(1)     // 1 byte align
 | |
| 
 | |
| /* common PLC message id definitions shared between CCO and STA device */
 | |
| #define IOT_PLC_MSG_HW_TSFM_PA_SEND         0XE0
 | |
| #define IOT_PLC_MSG_PM_SAVE_CFG_SET         0xE1
 | |
| 
 | |
| /** IOT_PLC_MSG_HW_TSFM_PA_SEND format */
 | |
| typedef struct _iot_plc_hw_tsfm_pa_send {
 | |
|     /* send count */
 | |
|     uint8_t     send_cnt;
 | |
|     /* length of the data */
 | |
|     uint8_t     len;
 | |
|     /* tx encode frequency tone num, each tone is 75MHz/(1 << 14) */
 | |
|     uint32_t    freq_tone_num;
 | |
|     /* data */
 | |
|     uint8_t     data[4];
 | |
| } iot_plc_hw_tsfm_pa_send_t;
 | |
| 
 | |
| /** IOT_PLC_MSG_PM_SAVE_CFG_SET format */
 | |
| typedef struct _iot_plc_set_pm_save_cfg {
 | |
|     /* power save function cfg */
 | |
|     uint32_t allow_sleep : 1,
 | |
|     /* reserved for future */
 | |
|              rsv         : 31;
 | |
| } iot_plc_set_pm_save_cfg_t;
 | |
| 
 | |
| #pragma pack(pop)    /* restore the pack status */
 | |
| 
 | |
| #if PLC_SUPPORT_CCO_ROLE
 | |
| 
 | |
| /* define short buffer size and count for plc lib message */
 | |
| #define PLC_LIB_MSG_SHORT_BUF_SIZE          128
 | |
| #if RUN_IN_PSRAM
 | |
| #define PLC_LIB_MSG_SHORT_BUF_CNT           128
 | |
| #else /* RUN_IN_PSRAM */
 | |
| #define PLC_LIB_MSG_SHORT_BUF_CNT           32
 | |
| #endif /* RUN_IN_PSRAM */
 | |
| 
 | |
| /* define long buffer size and count for plc lib message */
 | |
| #define PLC_LIB_MSG_LONG_BUF_SIZE           1024
 | |
| #define PLC_LIB_MSG_LONG_BUF_CNT            16
 | |
| 
 | |
| #else /* PLC_SUPPORT_CCO_ROLE */
 | |
| 
 | |
| /* define short buffer size and count for plc lib message */
 | |
| #define PLC_LIB_MSG_SHORT_BUF_SIZE          32
 | |
| #define PLC_LIB_MSG_SHORT_BUF_CNT           32
 | |
| 
 | |
| /* define long buffer size and count for plc lib message */
 | |
| #define PLC_LIB_MSG_LONG_BUF_SIZE           1024
 | |
| #define PLC_LIB_MSG_LONG_BUF_CNT            1
 | |
| 
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_lid_alloc_req() - request to allocate bandwidth for the
 | |
|  *                          specified lid. the result will be notified through
 | |
|  *                          iot_plc_recv_func_t callback.
 | |
|  * @param handle:           plc application handler
 | |
|  * @param lid:              the specified lid
 | |
|  */
 | |
| void iot_plc_lid_alloc_req(iot_plc_app_h handle, uint8_t lid);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_lid_rel_req() - request to release bandwidth for the
 | |
|  *                          specified lid.
 | |
|  * @param handle:           plc application handler
 | |
|  * @param lid:              the specified lid
 | |
|  */
 | |
| void iot_plc_lid_rel_req(iot_plc_app_h handle, uint8_t lid);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_hw_tsfm_pa_send() - send hw tsfm pa data
 | |
|  * @param data:             data
 | |
|  * @param len:              length of the data
 | |
|  * @param send_cnt:         send count
 | |
|  * @param freq_tone_num:    encode frequncy tone num. each tone num is
 | |
|  *                          75MHz/(1 << 14)
 | |
|  * @return                  error code. see iot_errno_api.h
 | |
|  */
 | |
| uint32_t iot_plc_hw_tsfm_pa_send(uint8_t *data, uint8_t len, uint8_t send_cnt,
 | |
|     uint32_t freq_tone_num);
 | |
| 
 | |
| /**
 | |
|  * @brief   iot_plc_lib_init() - init plc lib module
 | |
|  * @param   proto: device running mode, see PLC_PROTO_TYPE_XXX.
 | |
|  *
 | |
|  * @retval:   0  --  for success case
 | |
|  * @retval:  otherwise  --  error code
 | |
|  */
 | |
| uint32_t iot_plc_lib_init(uint8_t proto);
 | |
| 
 | |
| /*
 | |
|  * iot_ipc_lib_deinit() - deinit plc lib module
 | |
|  */
 | |
| void iot_plc_lib_deinit();
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_set_pm_save_cfg() - set pm save cfg
 | |
|  * @param allow_sleep:         allow sleep or not
 | |
|  */
 | |
| void iot_plc_set_pm_save_cfg(uint8_t allow_sleep);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* IOT_PLC_LIB_H */ |