更新记录
1.0.0(2024-12-13) 下载此版本
1.0.0
平台兼容性
Uascent-MarsGateSDK
版本:1.0.0
插件介绍
MarsGateSDK是在uni-app中实现蓝牙协议的解析和封装,实现蓝牙设备的连接、数据传输、设备控制等功能。
接入指引
使用插件
引入插件
在需要使用插件的页面中,通过 requirePlugin
引入插件,得到插件对象
import MarsGateSDK from '@/uni_modules/Uascent-MarsGateSDK/js_sdk/index.js'
插件初始化
使用插件前必须调用初始化init
方法,传入插件的配置参数,该方法必须在插件初始化后调用,否则无法使用插件的其他接口。
const config = {
securityKey: 'xxxxxxxxxxxx',
clientID: 'xxxxxxxxxxxx',
}
MarsGateSDK.init(config)
参数
Object object
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
securityKey | String |
是 | 安全密钥 |
clientID | String |
是 | 客户端ID |
返回值
Promise
蓝牙设备搜索
搜索蓝牙设备,搜索到的设备会通过回调函数返回,搜索到设备后,调用 search
搜索。
参数
无
返回值
Promise.<Object>
获取扫描到的设备列表
在search
方法搜索到设备后成功后,调用 onSearchListChange
获取扫描到的设备列表,在回调函数中获取到设备列表,设备列表发生变化也会重新触发回调,每次会返回新搜索到的设备列表。
参数
Function 回调函数,回调函数的参数为设备列表。
{
code: 0,
data: [], // 设备列表
message: '成功'
}
设备列表中单个设备数据
Object data
参数名 | 类型 | 说明 |
---|---|---|
name | String |
设备名称 |
imageUrl | String |
设备图片链接 |
productId | String |
产品ID |
mac | String |
MAC地址 |
type | String |
设备类型 |
添加设备
在 onSearchListChange
获取到设备列表后,可选择设备列表中的设备调用 add
添加设备。
参数
Object data
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mac | String |
是 | MAC地址 |
productId | String |
是 | 产品ID |
返回值
Promise
成功
{
code: 0,
data: {
deviceId: 'xxxxxxxxxxxx', // 设备的唯一标识
},
message: '成功'
}
停止搜索
添加成功取消搜索,或者搜索页面返回,调用 stopSearch
停止搜索。
参数
无
返回值
Promise
连接设备
可以调用 connect
连接设备。
参数
Object object
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceInfo | Object |
是 | 设备信息 |
dpInfo | Object |
是 | 设备DP点信息 |
protocol | Array<String> |
是 | 全属性上报协议 |
onStateChange | Function |
否 | 状态回调 |
onReport | Function |
否 | 上报回调 |
设备信息deviceInfo
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mac | String |
是 | MAC地址 |
productId | String |
是 | 产品ID |
设备DP点信息dpInfo
Object 键值对
参数名 | 类型 | 说明 |
---|---|---|
key | String |
属性上报的key |
value | Number |
协议DP点 |
{
switch: 1, // 开关
level: 2, // 档位(数值)
timingPowerOff1: 3, // 定时关机(小时)
angleAutoLROnOff: 4, // 左右旋转/摇头/摆风
angleAutoUDOnOff: 5, // 上下旋转/摇头/摆风
anionOnOff: 10, // 负离子功能
mode: 12, // 风扇工作模式
}
设备DP点信息protocol
全属性上报的数据协议,从协议数据位的第一字节开始,对应属性key,按顺序组成数组
- 如果在中间有未使用字节,使用
void 0
undefined
null
表示该字节未使用 - 如果某个字节按位上报,使用数组表示,规则和字节相似,数字下标
0
表示bit 0
['switch', 'level', void 0, 'timingPowerOff1', ['angleAutoLROnOff', 'angleAutoUDOnOff'] ,'anionOnOff', 'mode']
设备DP点信息onStateChange
回调函数的参数为Object 。
Object 键值对
参数名 | 类型 | 说明 |
---|---|---|
state | Number |
0: 连接中 1:连接成功 2:连接失败 3.设备状态同步中 -1: 已断开 |
onStateChange: (res) => {
console.log('onStateChange', res)
}
设备上报数据onReport
回调函数的参数为Object 。
Object 键值对
参数名 | 类型 | 说明 |
---|---|---|
data | Object |
设备上报的属性值 |
onReport: (res) => {
console.log('onReport', res)
}
返回值
Promise
控制设备
连接成功可以调用 control
断开连接。
参数
Object object
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceInfo | Object |
是 | 参考添加设备add 设备信息 |
data | Object |
是 | 控制的属性对象,键值对 |
返回值
Promise
断开连接
连接成功可以调用 closeConnect
断开连接。
参数
Object object 参考添加设备add
设备信息
返回值
Promise
4、状态码
成功
{
code: 0,
data: {}, // 成功返回的数据,无数据是不存在该字段
message: '成功'
}
失败
{
errCode: 1001,
errMsg: '错误信息'
}
错误码 | 错误说明 |
---|---|
1001 | 参数错误 |
1002 | 失败 |
1003 | 手机权限问题 |
9999 | 系统错误 |
30003 | 设备无权限 |
其余的错误码请参考uni-app官方蓝牙相关接口错误码