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