更新记录
1.0.8(2025-05-12) 下载此版本
1.0.8
1.0.7(2025-04-09) 下载此版本
1.0.7
1.0.6(2025-04-07) 下载此版本
1.0.6
查看更多平台兼容性
Uascent-MarsGateSDK 插件文档
版本:1.0.8
目录
- Uascent-MarsGateSDK 插件文档
- 目录
- 插件介绍
- 接入指引
- 引入插件
- API 文档
- 初始化
- 设备搜索
- 设备添加
- 蓝牙设备相关
- WIFi设备相关
- connectSocket()
- disConnectSocket()
- getSocketStatus()
- subscribeDevice(list)
- unSubscribeDevice()
- onMessageChange(callback)
- offMessageChange(callback)
- onSocketStatusChange(callback)
- offSocketStatusChange(callback)
- sendControl(deviceInfo, properties)
- getWifiDeviceStatus(params)
- getProductModel(productId)
- resetDevice(params)
- 状态码
- 注意事项
插件介绍
MarsGateUniSDK 是一个用于在小程序中实现蓝牙和 WiFi 设备管理的插件。它提供了设备搜索、添加、连接、控制等完整功能。
接入指引
引入插件
import MarsGateSDK from '@/uni_modules/Uascent-MarsGateSDK/js_sdk/index.js'
API 文档
初始化
init(config)
初始化插件配置。
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
securityKey | String |
是 | 安全密钥 |
clientID | String |
是 | 客户端ID |
返回值
Promise
设备搜索
search(options)
开始搜索设备。
参数
无
返回值
Promise
onSearchListChange(callback)
监听搜索到的设备列表变化。
参数
Function 回调函数,返回设备列表数据:
{
code: 0,
data: [], // 设备列表
message: '成功'
}
设备列表项数据结构
参数名 | 类型 | 说明 |
---|---|---|
name | String |
设备名称 |
imageUrl | String |
设备图片链接 |
productId | String |
产品ID |
mac | String |
MAC地址 |
type | String |
设备类型 |
stopSearch()
停止搜索设备。
设备添加
add(info, wifiInfo, callback)
添加设备。
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
info | Object |
是 | 设备基本信息 |
wifiInfo | Object |
否 | WiFi设备配网信息, 仅WiFi设备需要 |
callback | Function |
否 | WiFi配网状态回调, 仅WiFi设备需要 |
info参数结构
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mac | String |
是 | MAC地址 |
productId | String |
是 | 产品ID |
wifiInfo参数结构 | 参数名 | 类型 | 必填 | 说明 |
---|---|---|---|---|
ssid | String |
是 | WiFi名称 | |
bssid | String |
否 | WiFi BSSID | |
password | String |
是 | WiFi密码 |
callback参数结构 | 参数名 | 类型 | 说明 |
---|---|---|---|
status | Number |
配网状态,1:寻找设备,2:注册到云 3:配网成功 4:配网失败 |
返回值 Promise 成功
{
code: 0,
data: {
deviceId: 'xxxxxxxxxxxx', // 设备的唯一标识
},
message: '成功'
}
蓝牙设备相关
connect(options)
连接蓝牙设备。
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceInfo | Object |
是 | 设备信息 |
dpInfo | Object |
是 | 设备DP点信息 |
protocol | Array |
是 | 协议数组 |
onReport | Function |
否 | 上报回调 |
onStateChange | 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.data)
}
control(deviceInfo, data)
控制蓝牙设备。
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceInfo | Object |
是 | 设备信息 |
data | Object |
是 | 控制的属性对象,键值对 |
deviceInfo参数结构
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mac | String |
是 | MAC地址 |
productId | String |
是 | 产品ID |
closeConnect(param)
关闭蓝牙连接。
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
bleId | String |
是 | 蓝牙设备ID |
mac | String |
是 | MAC地址 |
productId | String |
是 | 产品ID |
WIFi设备相关
connectSocket()
连接WebSocket。
返回值
Promise
disConnectSocket()
断开WebSocket连接。
返回值
Promise
getSocketStatus()
获取WebSocket连接状态。
返回值
Promise,返回数据结构:
{
code: 0,
data: {
status: 'connecting' // WebSocket连接状态CONNECTING: 'connecting: 连接中 'open': 已连接 'closing': 关闭中 'closed': 已关闭 'error': 连接错误
},
message: '成功'
}
subscribeDevice(list)
订阅设备消息。
参数
Array 设备列表,每项结构:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
productId | String |
是 | 产品ID |
deviceId | String |
是 | 设备ID |
unSubscribeDevice()
取消订阅设备消息。
参数
无
返回值 Promise
onMessageChange(callback)
监听设备消息变化。
callback参数
参数名 | 类型 | 说明 |
---|---|---|
xxx | Object |
设备ID |
{
'xxxxxxx': { // 设备ID
data: { // 设备属性键值对
},
online_state: 'online', // 设备在线状态 online/offline
dev_reset: true // 设备重置
}
}
offMessageChange(callback)
取消监听设备消息。
callback参数
onSocketStatusChange(callback)
监听WebSocket连接状态变化。
callback参数
{
status: 'connecting' // WebSocket连接状态CONNECTING: 'connecting: 连接中 'open': 已连接 'closing': 关闭中 'closed': 已关闭 'error': 连接错误
}
offSocketStatusChange(callback)
取消WebSocket监听连接状态。
sendControl(deviceInfo, properties)
发送控制指令到WiFi设备。
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceInfo | Object |
是 | 设备信息 |
properties | Object |
是 | 控制属性对象 |
deviceInfo参数结构
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | String |
是 | 设备ID |
productId | String |
是 | 产品ID |
返回值
Promise
示例
plugin.sendControl(deviceInfo, {switch: 1}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
getWifiDeviceStatus(params)
获取WiFi设备最新状态。
请求参数 | 参数名 | 类型 | 必填 | 说明 |
---|---|---|---|---|
device_ids | String |
是 | 设备 ID ,多个 ID 以半角逗号(,)分隔,最多支持 10 个设备。 |
返回值
Promise
返回参数
参数名 | 类型 | 说明 |
---|---|---|
data | Arrray |
设备列表 |
Array 设备列表
参数名 | 类型 | 说明 | |
---|---|---|---|
id | String |
设备ID | |
online_status | String |
在线状态: online, offline | |
status | Arrray |
设备状态列表 |
参数名 | 类型 | 说明 |
---|---|---|
name | String |
属性名称 |
value | String |
属性值 |
getProductModel(productId)
获取产品物模型信息。
参数 | 参数名 | 类型 | 必填 | 说明 |
---|---|---|---|---|
productId | String |
是 | 产品ID |
返回值
Promise
resetDevice(params)
重置WiFi设备。
请求参数params | 参数名 | 类型 | 必填 | 说明 |
---|---|---|---|---|
device_id | String |
是 | 设备ID | |
product_id | String |
是 | 产品ID | |
clean | Boolean |
是 | 是否清除设备数据 |
返回值
Promise
状态码
成功
{
code: 0,
data: {}, // 成功返回的数据,无数据是不存在该字段
message: '成功'
}
失败
{
errCode: 1001,
errMsg: '错误信息'
}
错误码 | 错误说明 |
---|---|
1001 | 参数错误 |
1002 | 失败 |
1003 | 手机权限问题 |
9999 | 系统错误 |
30003 | 设备无权限 |
其余的错误码请参考uni-app官方蓝牙相关接口错误码
注意事项
-
使用蓝牙功能时需要注意:
- Android 平台:android6.0+,需要打开蓝牙,打开位置开关,需要授权微信访问位置的权限,部分手机甚至要打开 GPS
- ios 平台:需要打开系统蓝牙,打开控制中心蓝牙,ios13+需要给微信蓝牙分享的权限
-
WiFi配网注意事项:
- 配网超时时间为60秒
- 需要确保设备处于配网模式
-
Socket注意事项:
- 订阅会自动取消上一次订阅,订阅时请订阅所有需要的设备