blsdk v1.0.5
前言
本jssdk文档仅供博联ble蓝牙小程序使用,其他客户端暂不支持。
注意事项:
1,小程序基础库 2.10.3及以上;
2,以上目前均为debug版本,会有日志打印;
使用方式:
1,文件引用:(支持)
将此压缩包解压到小程序项目中,通过使用const blsdk = require('${文件目录}/blsdk') 即可,接口文档见《接口文档》篇;
下载地址: https://docs.ibroadlink.com/public/webs/h5/blsdk_202107121033(历史版本见最后) 2,npm包使用:(暂不支持,下个版本)
demo下载:(历史版本见最后)
https://docs.ibroadlink.com/public/webs/h5/bledemo_202107121033.zip
解压之后,请使用微信开发者工具打开 miniwechat/miniprogram 文件夹。
接口文档:(文末附调用例子)
1,初始化sdk实例
var _sdk = new blsdk({
nameSpace: '', // 命名空间
isIos: isIos, // 安卓还是iOS
callback (res) {} // 回调,可不传
bleStatusChange (res) {} // 监听蓝牙状态改变的方法,可不传
})
输入参数:
1, nameSpace
2, isIos
3, callback
4, bleStatusChange
回调结果:
1,成功: 忽略
2,失败: 提示错误信息(错误码请参考《错误码表》)
2,设备扫描
_sdk.startBleReceiveService((res) => { })
res(设备配网后收到的设备callback参数),结构为:
{
finds: [], // 发现的设备列表
addrs: {} // 配对成功之后的map
}
说明:
finds:[{
d // 设备主键did,必须 string t // 设备品类,必须 number
a // 设备短地址,必须 number
n // 设备名称,必须 string
}]
addrs: {
d : { // 以设备主键为key的map集合
a: 短地址 与设备发现finds中的一致
v: 版本号 string
id: 房间id // 房间集合见《房间集合说明》
},
xxx
}
3,停止设备扫描(与步骤2成对出现)
_sdk.stopBleReceiveService()
4,单个设备控制
_sdk.controlWithDevice(device, cmdJson)
说明:
1,device 设备信息:由【设备扫描】中配置成功的设备信息. json数据
2,cmdJson命令集合: json数据,详见《控制命令集合》
5,基于房间的控制
_sdk.groupControlWithType(type, roomId, cmdJson)
type: 设备品类,如果不确定,可以传0(不限制品类)
roomId: 房间id
cmdJson命令集合: json数据,详见《控制命令集合》
6, 随机多个设备控制 (目前最多五个)
_sdk.bathControlWithDeviceList(addrs, cmdJson);
addrs: 数组格式,设备的短地址数据
cmdJson命令集合: json数据,详见《控制命令集合》
7,修改设备房间
_sdk.modefyDevice(devInfo, roomId, callback);
devInfo: 设备信息
roomId: 房间id,与《房间集合说明》中一致即可
callback: 回调函数,如果成功则返回大于0,不成功则返回false,可不传;
8,更新控制密钥 (解析分享二维码时调用)
_sdk.updateBleCode(bleCode);
bleCode: 设备控制密钥, 4个长度的整形数组
9,重置控制密钥 (复位所有设备时调用)
_sdk.resetBleCode();
10, 取得sdk版本号
_sdk.getSDKVersion();
控制命令集合:
开关:
pwr: 开=1 ;关=0
brightness: (只控制亮、灭)
0 关
1-127 都是开的状态,只是亮度不同
亮度:
brightness: 从1-127变化, 0 为关
rgb调节:
r: xx
g: xx
b: xx
pwr: 1
brightness: 上一次调节的值(非0)
色温调节:
pwr: 1
brightness: 上一次调节的值(非0)
c: xx
w: xx (w: 255 - c)
模式调节:
详见《模式调节集合》,选中哪个模式发送对应的数据集合(只需要包含mode和mult数据)即可,例如:
全彩渐变是cmdJson为: {
mode:[ // 固定不可变
{"red":1,"green":0,"blue":0},
{"red":1,"green":1,"blue":0},
{"red":1,"green":0,"blue":1},
{"red":0,"green":1,"blue":0},
{"red":0,"green":1,"blue":1},
{"red":0,"green":0,"blue":1}
],
mult: 0.2 // 调节变化快慢,值从0-1
}
模式调节集合:
[
{
name: "全彩渐变",
key: "g_all",
mode: [
{"red":1,"green":0,"blue":0},
{"red":1,"green":1,"blue":0},
{"red":1,"green":0,"blue":1},
{"red":0,"green":1,"blue":0},
{"red":0,"green":1,"blue":1},
{"red":0,"green":0,"blue":1}
],
mult: 0.2
},
{
name: "红蓝渐变",
key: "g_r_b",
mode: [
{"red":1,"green":0,"blue":0},
{"red":0,"green":0,"blue":1}
],
mult: 0.2
},
{
name: "蓝绿渐变",
key: "g_b_g",
mode: [
{"red":0,"green":0,"blue":1},
{"red":0,"green":1,"blue":0}
],
mult: 0.2
},
{
name: "红绿渐变",
key: "g_r_g",
mode: [
{"red":1,"green":0,"blue":0},
{"red":0,"green":1,"blue":0}
],
mult: 0.2
},
{
name: "全彩跳变",
key: "j_all",
mode: [
{"red":1,"green":0,"blue":0},
{"red":1,"green":1,"blue":0},
{"red":1,"green":0,"blue":1},
{"red":0,"green":1,"blue":0},
{"red":0,"green":1,"blue":1},
{"red":0,"green":0,"blue":1}
],
isJump: true,
mult: 0.8
},
{
name: "红绿蓝跳变",
key: "j_r_g_b",
mode: [
{"red":1,"green":0,"blue":0},
{"red":0,"green":1,"blue":0},
{"red":0,"green":0,"blue":1}
],
isJump: true,
mult: 0.8
},
{
name: "橙绿跳变",
key: "j_y_g",
mode: [
{"red":1,"green":1,"blue":0},
{"red":0,"green":1,"blue":0}
],
isJump: true,
mult: 0.8
},
{
name: "红绿跳变",
key: "j_r_g",
mode: [
{"red":1,"green":0,"blue":0},
{"red":0,"green":1,"blue":0}
],
isJump: true,
mult: 0.8
},
{
name: "红色跳变",
key: "j_r",
mode: [
{"red":1,"green":0,"blue":0},
{"red":0,"green":0,"blue":0}
],
isJump: true,
mult: 0.8
},
{
name: "蓝色跳变",
key: "j_b",
mode: [
{"red":0,"green":0,"blue":1},
{"red":0,"green":0,"blue":0}
],
isJump: true,
mult: 0.8
},
{
name: "绿色跳变",
key: "j_g",
mode: [
{"red":0,"green":1,"blue":0},
{"red":0,"green":0,"blue":0}
],
isJump: true,
mult: 0.8
}, {
name: "RGB白跳变",
key: "j_white",
mode: [
{"red":1,"green":1,"blue":1},
{"red":0,"green":0,"blue":0}
],
isJump: true,
mult: 0.8
}
]
房间集合说明:
[
{
n: "全屋",
id: 0,
sort: 0
},
{
n: "客厅",
id: 1,
sort: 1
}, {
n: "主卧",
id: 2,
sort: 2
}, {
n: "次卧",
id: 3,
sort: 3
}, {
n: "餐厅",
id: 4,
sort: 4
}, {
n: "书房",
id: 5,
sort: 5
}, {
n: "客房",
id: 6,
sort: 6
}, {
n: "阳台",
id: 7,
sort: 7
}, {
n: "厨房",
id: 8,
sort: 8
}, {
n: "卫生间",
id: 9,
sort: 9
}, {
n: "玄关",
id: 10,
sort: 10
}, {
n: "庭院",
id: 11,
sort: 11
}
]
错误码表:
0 | ok | 正常 |
---|---|---|
-1 | already connet | 已经连上其他蓝牙设备 |
10000 | not initalready connet | 未初始化蓝牙适配器 已经连上其他蓝牙设备 |
10001 | not available | 当前蓝牙适配器不可用 |
10002 | no device | 没有找到指定设备 |
10003 | connection fail | 连接失败 |
10004 | no service | 没有找到指定服务 |
10005 | no characteristic | 没有找到指定特征值 |
10006 | no connection | 当前连接已断开 |
10007 | property not support | 当前特征值不支持此操作 |
10008 | system error | 其余所有系统上报的异常 |
10009 | system not support | Android 系统特有,系统版本低于 4.3 不支持 BLE |
10012 | operate time out | 连接超时 |
10013 | invalid_data | 连接 deviceId 为空或者是格式不正确 |