btcore

作者:汪远 更新时间:2021年1月11日

BLE 蓝牙功能


BLE 蓝牙主从模式

打开蓝牙

  • 语法 btcore.open(mode)

  • 参数

参数

释义

取值范围

mode

区分主从模式

主模式:mode=1 从模式:mode=0

  • 返回 成功:0 失败:-1

关闭蓝牙

  • 语法 btcore.close()

  • 参数 无

  • 返回 成功:0 失败:-1 ### 查询蓝牙状态

  • 语法 btcore.state()

  • 参数 无

  • 返回 0:蓝牙状态开启 -1:蓝牙状态关闭

蓝牙主动断开连接

  • 语法 btcore.disconnect(handle)

  • 参数

参数

释义

handle

连接句柄

  • 返回 成功:0 失败:-1

蓝牙连接

  • 语法 btcore.connect(addr,addr_type)

  • 参数

参数

释义

addr_type

地址类型

addr

蓝牙地址

  • 返回 成功:0 失败:-1

设置蓝牙名称

  • 语法 btcore.setname(name)

  • 参数

参数

释义

取值范围

name

蓝牙名称

最大26字节

  • 返回 成功:0 失败:-1

设置蓝牙广播包数据

  • 语法 btcore.setadvdata(data)

  • 参数

参数

释义

取值范围

data

广播包数据

最大31字节

  • 返回 成功:0 失败:-1

设置蓝牙响应包数据

  • 语法 btcore.setscanrspdata(data)

  • 参数

参数

释义

取值范围

data

响应包数据

最大31字节

  • 返回 成功:0 失败:-1

设置蓝牙beacon数据

  • 语法 btcore.setbeacondata(uuid,major,minor)

  • 参数

参数

释义

取值范围

uuid

字符串

128位

major

编号

0~65535

minor

标号

0~65535

UUID :这是将你所有的beacon与其他人的beacon设备区别开的id!例如,目前在商店里某个区域分布着多个beacon形成一条“链带”,用于为顾客提供特定的服务,那么归属于同一条“链带”的beacon将分配到相同的proximity UUID。为这条“链带”设计的专用应用程序将会在后台使用这个UUID扫描到这条“链带”中的beacon设备。

major 编号:用于将相关的beacon标识为一组。例如,一个商店中的所有beacon将会分配到相同的major编号。通过这种方式,应用程序就能够知道顾客位于哪一家商店。

minor 标号:用于标识特定的beacon设备。例如一个商店中的每一个beacon设备都拥有唯一的minor编号,这样你才能够知道顾客位于商店中的哪个位置。 - 返回 成功:0 失败:-1

蓝牙广播开关

  • 语法 btcore.advertising(enable)

  • 参数

参数

释义

取值范围

enable

广播开关

1 打开广播 0 关闭广播

  • 返回 成功:0 失败:-1

蓝牙扫描开关

  • 语法 btcore.scan(enable)

  • 参数

参数

释义

取值范围

enable

扫描开关

1 打开扫描 0 关闭扫描

  • 返回 成功:0 失败:-1

蓝牙添加服务

  • 语法 btcore.addservice(uuid_s)

  • 参数

参数

释义

取值范围

uuid_s

服务uuid

16bit uuid int型 128bit uuid 字符串

  • 返回 成功:0 失败:-1

蓝牙添加特征

  • 语法 btcore.addcharacteristic(uuid_c,type,permission)

  • 参数

参数

释义

取值范围

uuid_c

特征uuid

16bit uuid int型 128bit uuid 字符串

type

特征属性

permission

特征权限

特征属性配置:

#define ATT_CHARA_PROP_BROADCAST    0x01
#define ATT_CHARA_PROP_READ         0x02
#define ATT_CHARA_PROP_WWP          0x04   // WWP short for "write without response"
#define ATT_CHARA_PROP_WRITE        0x08
#define ATT_CHARA_PROP_NOTIFY     0x10
#define ATT_CHARA_PROP_INDICATE 0x20
#define ATT_CHARA_PROP_ASW     0x40   // ASW short for "Authenticated signed write"
#define ATT_CHARA_PROP_EX_PROP  0x80

特征权限配置:

#define ATT_PM_READABLE                    0x0001
#define ATT_PM_WRITEABLE                   0x0002
#define ATT_PM_R_AUTHENT_REQUIRED          0x0004
#define ATT_PM_R_AUTHORIZE_REQUIRED        0x0008
#define ATT_PM_R_ENCRYPTION_REQUIRED       0x0010
#define ATT_PM_R_AUTHENT_MITM_REQUERED     0x0020
#define ATT_PM_W_AUTHENT_REQUIRED          0x0040
#define ATT_PM_W_AUTHORIZE_REQUIRED        0x0080
#define ATT_PM_W_ENCRYPTION_REQUIRED       0x0100
#define ATT_PM_W_AUTHENT_MITM_REQUERED     0x0200
#define ATT_PM_BR_ACCESS_ONLY              0x0400
  • 返回 成功:0 失败:-1

蓝牙添加描述

  • 语法 btcore.adddescriptor(uuid_d,value)

  • 参数

参数

释义

取值范围

uuid_d

描述uuid

16bit uuid int型

value

描述属性

int型/字符串

  • 返回 成功:0 失败:-1

蓝牙发现服务

  • 语法 btcore.findservice(handle)

  • 参数

参数

释义

handle

连接句柄

  • 返回 成功:0 失败:-1

蓝牙发现服务内包含的特征

  • 语法 btcore.findcharacteristic(uuid_s,handle)

  • 参数

参数

释义

取值范围

uuid_s

服务uuid

16bit uuid int型 128bit uuid 字符串

handle

连接句柄

  • 返回 成功:0 失败:-1

蓝牙打开通知

  • 语法 btcore.opennotification(uuid_c,handle)

  • 参数

参数

释义

取值范围

uuid_c

特征uuid

16bit uuid int型 128bit uuid 字符串

handle

连接句柄

  • 返回 成功:0 失败:-1

蓝牙关闭通知

  • 语法 btcore.closenotification(uuid_c,handle)

  • 参数

参数

释义

取值范围

uuid_c

特征uuid

16bit uuid int型 128bit uuid 字符串

handle

连接句柄

  • 返回 成功:0 失败:-1

写蓝牙

  • 语法 btcore.send(data,uuid_c,handle)

  • 参数

参数

释义

取值范围

data

写入数据内容

最大244字节

uuid_c

特征uuid

16bit uuid int型 128bit uuid 字符串

handle

连接句柄

  • 返回 成功:0 失败:-1

读蓝牙

  • 语法 btcore.recv(len)

  • 参数

参数

释义

取值范围

len

想要读到的数据长度

最大244

  • 返回

参数

释义

取值范围

recvuuid

数据来源uuid

recvdata

实际读到的数据内容

最大244字节

recvlen

实际读到的数据长度

最大244

读蓝牙MAC地址

  • 语法 btcore.getaddr()

  • 参数

  • 返回

    本机蓝牙MAC地址