119 lines
2.8 KiB
C
119 lines
2.8 KiB
C
|
/*************************************************
|
||
|
File name : hal_interface_ble.c
|
||
|
Module : hal ble library interface
|
||
|
Author :
|
||
|
Version :
|
||
|
Created on : 2020-10-20
|
||
|
Description :
|
||
|
Data structure and function definitions required by
|
||
|
the ble interface
|
||
|
|
||
|
Modify History:
|
||
|
1. Date: Author: Modification:
|
||
|
2020-10-20 amir.liang create
|
||
|
*************************************************/
|
||
|
#include "pal.h"
|
||
|
#include "hal_interface_ble.h"
|
||
|
#include "hal_interface.h"
|
||
|
#include "hal_product_config.h"
|
||
|
|
||
|
|
||
|
#ifndef HAL_CFG_BT_TYPE
|
||
|
#error HAL_CFG_BT_TYPE undefined !!! Go to "hal_gernerate_product_config_h.sh" settings
|
||
|
#endif
|
||
|
|
||
|
#if (HAL_CFG_BT_TYPE == HAL_CFG_BT_TYPE_BCM)
|
||
|
#include "ble_bcm_interface.h"
|
||
|
#endif
|
||
|
|
||
|
#if (HAL_CFG_BT_TYPE == HAL_CFG_BT_TYPE_NRF)
|
||
|
#include "nrf_ble_interface.h"
|
||
|
#endif
|
||
|
|
||
|
#if (HAL_CFG_BT_TYPE == HAL_CFG_BT_TYPE_BCM)
|
||
|
ST_HAL_BT_INTERFACE gHalBtInterface[] =
|
||
|
{
|
||
|
{
|
||
|
.pfnInit = bcm_bt_init,
|
||
|
.pfnDeinit = bcm_bt_deinit,
|
||
|
.pfnOpen = bcm_bt_open,
|
||
|
.pfnClose = bcm_bt_close,
|
||
|
.pfnAdv = bcm_bt_adv,
|
||
|
.pfnGetState = bcm_bt_get_state,
|
||
|
.pfnSendData = bcm_bt_send_data,
|
||
|
.pfnEnterSleepMode = bcm_bt_enter_sleep_mode,
|
||
|
.pfnRegisterCB = bcm_bt_register_callback,
|
||
|
.pfnFactoryTest = bcm_bt_factory_test,
|
||
|
}
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
#if (HAL_CFG_BT_TYPE == HAL_CFG_BT_TYPE_NRF)
|
||
|
ST_HAL_BT_INTERFACE_NRF gHalBtInterface[] =
|
||
|
{
|
||
|
{
|
||
|
.pfnBleCInit = User_BLE_Init,
|
||
|
.pfnBleCDeInit = User_BLE_DeInit,
|
||
|
.pfnBleCReset = User_BLE_Reset,
|
||
|
.pfnBleCScan = User_BLE_Scan,
|
||
|
.pfnBleCConn = User_BLE_Connect,
|
||
|
.pfnBleCDisconn = User_BLE_Disconnect,
|
||
|
.pfnBleCDataSend = User_BLE_SendData,
|
||
|
.pfnBleCDataRcv = User_BLE_RcvData,
|
||
|
.pfnBleCEnterBoot = User_BLE_Enter_Boot,
|
||
|
.pfnBleCOTAProcess = User_BLE_OTA,
|
||
|
.pfnBleCGetSWVer = User_BLE_GET_VER,
|
||
|
}
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
#if (HAL_CFG_BT_TYPE != HAL_CFG_BT_TYPE_NRF)
|
||
|
|
||
|
ST_HAL_BT_INTERFACE * HAL_Bt_GetInterface(int32_t channel)
|
||
|
{
|
||
|
#if (HAL_CFG_BT_TYPE == HAL_TYPE_NONE)
|
||
|
return NULL;
|
||
|
|
||
|
#else
|
||
|
HAL_ITF_INDEX idx = HAL_SELF;
|
||
|
|
||
|
if (channel == HAL_CHANNEL_SELF )
|
||
|
{
|
||
|
idx = HAL_SELF;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// 需要从NV获取通道号Channel对应的设备类型对应的hal
|
||
|
//idx = HAL_REMOTE_SUB1G;
|
||
|
return NULL;
|
||
|
}
|
||
|
return &gHalBtInterface[idx];
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
#else
|
||
|
|
||
|
ST_HAL_BT_INTERFACE_NRF * HAL_Bt_GetInterface(int32_t channel)
|
||
|
{
|
||
|
#if (HAL_CFG_BT_TYPE == HAL_TYPE_NONE)
|
||
|
return NULL;
|
||
|
|
||
|
#else
|
||
|
HAL_ITF_INDEX idx = HAL_SELF;
|
||
|
|
||
|
if (channel == HAL_CHANNEL_SELF )
|
||
|
{
|
||
|
idx = HAL_SELF;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// 需要从NV获取通道号Channel对应的设备类型对应的hal
|
||
|
//idx = HAL_REMOTE_SUB1G;
|
||
|
return NULL;
|
||
|
}
|
||
|
return &gHalBtInterface[idx];
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
#endif
|