pan
头文件清单
- include/middleware/services/bts/common/bts_def.h
接口清单
接口名称 功能简述 pan_service_open 打开PAN服务,与对端蓝牙设备建立PAN连接 pan_service_close 关闭PAN服务,断开与对端蓝牙设备的PAN连接 pan_service_write_data 发送网络数据包 pan_service_net_state_get 获取PAN网络连接状态 pan_register_callbacks 注册上层应用回调函数 pan_deregister_callbacks 去注册上层应用回调函数
Functions
pan_service_open
头文件清单
功能说明
- 打开PAN服务,与指定对端蓝牙设备建立PAN网络连接
- 调用后发起PAN连接请求,连接结果通过回调函数通知上层应用
- 需在对端设备支持PAN Profile的前提下调用
前置条件
- 蓝牙协议栈已通过 enable_bt_stack() 初始化完成
- 入参 bd_addr 不为 NULL,且指向有效的蓝牙设备地址
入参
名称 参数类型 详细说明 约束取值范围 bd_addr const bd_addr_t * 对端蓝牙设备地址指针 非NULL,指向有效蓝牙地址
返回值
- 返回类型:int
返回值 文字含义 触发场景 ERRCODE_BT_SUCCESS(0x00) 执行成功 PAN连接请求成功发起 Other 其他错误码,参考errcode_bt_t 执行失败
pan_service_close
头文件清单
功能说明
- 关闭PAN服务,断开与指定对端蓝牙设备的PAN网络连接
- 调用后发起PAN断连请求,断连结果通过回调函数通知上层应用
- 需在PAN连接已建立的状态下调用
前置条件
- 蓝牙协议栈已通过 enable_bt_stack() 初始化完成
- 入参 bd_addr 不为 NULL,且指向已建立PAN连接的对端蓝牙设备地址
入参
名称 参数类型 详细说明 约束取值范围 bd_addr const bd_addr_t * 对端蓝牙设备地址指针 非NULL,指向已建立PAN连接的蓝牙地址
返回值
- 返回类型:int
返回值 文字含义 触发场景 ERRCODE_BT_SUCCESS(0x00) 执行成功 PAN断连请求成功发起 Other 其他错误码,参考errcode_bt_t 执行失败
pan_service_write_data
头文件清单
功能说明
- 通过PAN连接发送网络数据包
- 调用前需确保PAN连接已建立且网络状态为在线
- 数据包内容为以太网帧格式的IP数据包
前置条件
- 蓝牙协议栈已通过 enable_bt_stack() 初始化完成
- PAN服务已通过 pan_service_open() 打开且网络状态为 PAN_NET_STATE_ON
- 入参 ip_packet 不为 NULL,且指向的内存空间长度不小于 ip_length
入参
名称 参数类型 详细说明 约束取值范围 ip_packet const unsigned char * 网络数据包指针 非NULL,指向有效以太网帧数据 ip_length const unsigned short 网络数据包长度 大于0,不超过PAN最大传输单元
返回值
- 返回类型:int
返回值 文字含义 触发场景 ERRCODE_BT_SUCCESS(0x00) 执行成功 数据包发送成功 Other 其他错误码,参考errcode_bt_t 执行失败
pan_service_net_state_get
头文件清单
功能说明
- 获取PAN网络连接状态
- 返回值表示当前PAN网络是否在线
- 可用于在发送数据前判断网络是否可用
前置条件
- 蓝牙协议栈已通过 enable_bt_stack() 初始化完成
返回值
- 返回类型:unsigned char
返回值 文字含义 触发场景 PAN_NET_STATE_OFF(0) 离线 PAN网络未连接 PAN_NET_STATE_ON(1) 在线 PAN网络已连接
pan_register_callbacks
头文件清单
功能说明
- 注册上层应用回调函数,用于接收PAN网络状态变更通知和接收网络数据包
- 注册后,当PAN网络状态变化时通过 net_state_cb 回调通知上层应用
- 注册后,当接收到网络数据包时通过 rpt_data_cb 回调通知上层应用
前置条件
- 蓝牙协议栈已通过 enable_bt_stack() 初始化完成
- 入参 func 不为 NULL,且指向的回调结构体中各回调函数指针已赋值
入参
名称 参数类型 详细说明 约束取值范围 func pan_callbacks_t * 回调函数结构体指针 非NULL,包含有效的回调函数指针
返回值
- 返回类型:int
返回值 文字含义 触发场景 ERRCODE_BT_SUCCESS(0x00) 执行成功 回调注册成功 Other 其他错误码,参考errcode_bt_t 执行失败
pan_deregister_callbacks
头文件清单
功能说明
- 去注册上层应用回调函数,取消PAN网络状态变更通知和数据接收通知
- 调用后不再接收PAN网络状态变更和网络数据包的回调通知
- 需在已通过 pan_register_callbacks() 注册回调的前提下调用
前置条件
- 蓝牙协议栈已通过 enable_bt_stack() 初始化完成
- 已通过 pan_register_callbacks() 注册回调函数
返回值
- 返回类型:int
返回值 文字含义 触发场景 ERRCODE_BT_SUCCESS(0x00) 执行成功 回调去注册成功 Other 其他错误码,参考errcode_bt_t 执行失败
Enumerations
errcode_bt_t
typedef enum {
ERRCODE_BT_SUCCESS = 0x00,
ERRCODE_BT_FAIL = ERRCODE_BT_COMMON_BASE,
ERRCODE_BT_NOT_READY,
ERRCODE_BT_MALLOC_FAIL,
ERRCODE_BT_MEMCPY_FAIL,
ERRCODE_BT_BUSY,
ERRCODE_BT_DONE,
ERRCODE_BT_UNSUPPORTED,
ERRCODE_BT_PARAM_ERR,
ERRCODE_BT_STATE_ERR,
ERRCODE_BT_UNHANDLED,
ERRCODE_BT_AUTH_FAIL,
ERRCODE_BT_RMT_DEV_DOWN,
ERRCODE_BT_AUTH_REJECTED,
ERRCODE_BT_MAX = ERRCODE_BT_COMMON_END
} errcode_bt_t;
枚举成员 取值 描述 ERRCODE_BT_SUCCESS 0x00 执行成功 ERRCODE_BT_FAIL 0x80006000 执行失败 ERRCODE_BT_NOT_READY 0x80006001 状态未就绪 ERRCODE_BT_MALLOC_FAIL 0x80006002 内存不足 ERRCODE_BT_MEMCPY_FAIL 0x80006003 内存拷贝失败 ERRCODE_BT_BUSY 0x80006004 系统繁忙 ERRCODE_BT_DONE 0x80006005 执行完成 ERRCODE_BT_UNSUPPORTED 0x80006006 不支持 ERRCODE_BT_PARAM_ERR 0x80006007 无效参数 ERRCODE_BT_STATE_ERR 0x80006008 状态错误 ERRCODE_BT_UNHANDLED 0x80006009 未处理 ERRCODE_BT_AUTH_FAIL 0x8000600A 鉴权失败 ERRCODE_BT_RMT_DEV_DOWN 0x8000600B 远端设备关闭 ERRCODE_BT_AUTH_REJECTED 0x8000600C 鉴权被拒 ERRCODE_BT_MAX 0x800067FF 蓝牙错误码最大值
pan_net_state_t
枚举成员 取值 描述 PAN_NET_STATE_OFF 0 离线 PAN_NET_STATE_ON 1 在线
Structures
bd_addr_t
成员说明:
成员名称 数据类型 描述 addr uint8_t[6] 蓝牙设备地址,长度为6字节 type uint8_t 蓝牙地址类型,参考 bt_addr_type
pan_callbacks_t
typedef struct {
pan_net_state_callback net_state_cb;
pan_rpt_data_callback rpt_data_cb;
} pan_callbacks_t;
成员说明:
成员名称 数据类型 描述 net_state_cb pan_net_state_callback PAN网络状态变更回调函数指针 rpt_data_cb pan_rpt_data_callback 网络数据包接收通知回调函数指针
bt_addr_type
typedef enum {
BT_ADDRESS_TYPE_PUBLIC_DEVICE_ADDRESS = 0x00,
BT_ADDRESS_TYPE_RANDOM_DEVICE_ADDRESS = 0x01,
} bt_addr_type;
枚举成员 取值 描述 BT_ADDRESS_TYPE_PUBLIC_DEVICE_ADDRESS 0x00 蓝牙公有地址 BT_ADDRESS_TYPE_RANDOM_DEVICE_ADDRESS 0x01 蓝牙随机地址
Type definitions
pan_net_state_callback
使用说明:PAN网络状态变更回调函数类型,在 pan_callbacks_t 结构体的 net_state_cb 成员中使用
pan_rpt_data_callback
使用说明:网络数据包接收通知回调函数类型,在 pan_callbacks_t 结构体的 rpt_data_cb 成员中使用