mcu_hi3321_watch/include/middleware/services/bts/br/bts_pan.h
2025-05-26 20:15:20 +08:00

214 lines
6.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) @CompanyNameMagicTag 2022. All rights reserved.
* Description: BT PAN module.
*/
/**
* @defgroup bluetooth_bts_pan PAN API
* @ingroup bluetooth
* @{
*/
#ifndef BTS_PAN_H
#define BTS_PAN_H
#include "bts_def.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @if Eng
* @brief Enum of pan net state.
* @else
* @brief Pan 网络状态
* @endif
*/
typedef enum {
PAN_NET_STATE_OFF, /*!< @if Eng Offline. @else 离线 @endif */
PAN_NET_STATE_ON, /*!< @if Eng Online. @else 在线 @endif */
} pan_net_state_t;
/**
* @if Eng
* @brief Open the pan service.
* @par Description:
* Open the pan service.
* @param [in] bd_addr A poniter of the peer bluetooth device addresss. See @ref bd_addr_t
* @retval #ERRCODE_BT_SUCCESS Success.
* @retval Other Failure. For details, see @ref errcode_bt_t
* @else
* @brief 打开pan服务
* @par 说明:
* 打开pan服务
* @param [in] bd_addr 对端蓝牙设备的地址信息。参考 @ref bd_addr_t
* @retval #ERRCODE_BT_SUCCESS 成功.
* @retval Other 失败. 参考 @ref errcode_bt_t
* @endif
* @par Dependency:
* @li pan_service.h
*/
int pan_service_open(const bd_addr_t *bd_addr);
/**
* @if Eng
* @brief Close the pan service.
* @par Description:
* Close the pan service.
* @param [in] bd_addr A poniter of the peer bluetooth device addresss. See @ref bd_addr_t
* @retval #ERRCODE_BT_SUCCESS Success.
* @retval Other Failure. For details, see @ref errcode_bt_t
* @else
* @brief 关闭PAN服务
* @par 说明:
* 关闭PAN服务
* @param [in] bd_addr 对端蓝牙设备的地址信息。参考 @ref bd_addr_t
* @retval #ERRCODE_BT_SUCCESS 成功.
* @retval Other 失败. 参考 @ref errcode_bt_t
* @endif
* @par Dependency:
* @li pan_service.h
*/
int pan_service_close(const bd_addr_t *bd_addr);
/**
* @if Eng
* @brief Send the ethernet.
* @par Description:
* Send the ethernet.
* @param [in] ip_packet A poniter of the ethernet data.
* @param [in] ip_length The length of the ethernet data.
* @retval #ERRCODE_BT_SUCCESS Success.
* @retval Other Failure. For details, see @ref errcode_bt_t
* @else
* @brief 发送网络数据包
* @par 说明:
* 发送网络数据包
* @param [in] ip_packet 网络数据包指针
* @param [in] ip_length 网络数据包长度
* @retval #ERRCODE_BT_SUCCESS 成功.
* @retval Other 失败. 参考 @ref errcode_bt_t
* @endif
* @par Dependency:
* @li pan_service.h
*/
int pan_service_write_data(const unsigned char *ip_packet, const unsigned short ip_length);
/**
* @if Eng
* @brief Get the net state.
* @par Description:
* Get the net state.
* @retval #PAN_NET_STATE_OFF offline
* @retval #PAN_NET_STATE_ON online
* @else
* @brief 获取网络连接状态
* @par 说明:
* 获取网络连接状态
* @retval #PAN_NET_STATE_OFF 离线
* @retval #PAN_NET_STATE_ON 在线
* @endif
* @par Dependency:
* @li pan_service.h
*/
unsigned char pan_service_net_state_get(void);
/**
* @if Eng
* @brief The call back of net state change.
* @par Description:
* The call back of net state change.
* @param [in] net_state See @ref pan_net_state_t
* @retval No return value. See @ref void
* @else
* @brief pan 网络连接状态通知
* @par 说明:
* 注册该回调函数之后pan服务网络连接状态反馈上层应用。
* @param [in] net_state 参考 @ref pan_net_state_t
* @retval 无返回值。参考 @ref void
* @endif
* @par Dependency:
* @li pan_service.h
*/
typedef void (*pan_net_state_callback)(unsigned char net_state);
/**
* @if Eng
* @brief The call back of ethernet.
* @par Description:The call back of ethernet.
* @param [in] packet a pointer to net data.
* @param [in] packet_length the length of net data.
* @retval No return value. See @ref void
* @else
* @brief 读取网络数据包通知
* @par 说明:注册该回调函数之后,读取网络数据包结果反馈上层应用。
* @param [in] packet 指针,指向网络数据包所在内存地址.
* @param [in] packet_length 网络数据包长度.
* @retval 无返回值。参考 @ref void
* @endif
* @par Dependency:
* @li pan_service.h
*/
typedef void (*pan_rpt_data_callback)(unsigned char *packet, unsigned short packet_length);
/**
* @if Eng
* @brief Struct of pan callback function.
* @else
* @brief pan回调接口定义。
* @endif
*/
typedef struct {
pan_net_state_callback net_state_cb;
pan_rpt_data_callback rpt_data_cb;
} pan_callbacks_t;
/**
* @if Eng
* @brief Use this funtion to register callback function of framework.
* @par Description:
* Use this funtion to register callback function of framework.
* @param [in] func A poniter of the callback function. See @ref pan_callbacks_t
* @retval #ERRCODE_BT_SUCCESS Success.
* @retval Other Failure. For details, see @ref errcode_bt_t
* @else
* @brief 注册上层应用的回调。
* @par 说明:
* 注册上层应用的回调。
* @param [in] func 回调函数指针。参考 @ref pan_callbacks_t
* @retval #ERRCODE_BT_SUCCESS 成功。
* @retval Other 失败,参考 @ref errcode_bt_t
* @endif
* @par Dependency:
* @li pan_service.h
*/
int pan_register_callbacks(pan_callbacks_t *func);
/**
* @if Eng
* @brief Use this funtion to deregister callback function of framework.
* @par Description:
* Use this funtion to deregister callback function of framework.
* @param [in] func A poniter of the callback function. See @ref pan_callbacks_t
* @retval #ERRCODE_BT_SUCCESS Success.
* @retval Other Failure. For details, see @ref errcode_bt_t
* @else
* @brief 去注册上层应用的回调。
* @par 说明:
* 去注册上层应用的回调。
* @param [in] func 回调函数指针。参考 @ref pan_callbacks_t
* @retval #ERRCODE_BT_SUCCESS 成功。
* @retval Other 失败,参考 @ref errcode_bt_t
* @endif
* @par Dependency:
* @li bts_a2dp_source.h
*/
int pan_deregister_callbacks(void);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* end of bts_pan.h */