btcore¶
作者:汪远 更新时间:2021年1月11日
BLE 蓝牙功能
BLE 蓝牙主从模式
关闭蓝牙¶
语法
btcore.close()
参数 无
返回 成功:0 失败:-1 ### 查询蓝牙状态
语法
btcore.state()
参数 无
返回 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.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.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地址