更新记录

1.0.9(2025-07-03) 下载此版本

1.0.9

1.0.8(2025-05-12) 下载此版本

1.0.8

1.0.7(2025-04-09) 下载此版本

1.0.7

查看更多

平台兼容性

Uascent-MarsGateSDK 插件文档

版本:1.0.9

目录

插件介绍

MarsGateUniSDK 是一个用于在小程序中实现蓝牙和 WiFi 设备管理的插件。它提供了设备搜索、添加、连接、控制、OTA等完整功能。

接入指引

引入插件

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, // 设备重置
    upgrade: {
      result: 'fail', // 升级结果 success/fail
      error: '文件过大', // 升级错误信息
      progress: 56 // 升级进度 
    }
  }
}

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

getUpgradeInfo(params)

查询设备升级信息。

请求参数params

参数名 类型 必填 说明
device_id String 设备ID
product_id String 产品ID

返回值

Promise

返回参数

参数名 类型 说明
data Arrray 升级信息列表

Array 设备列表

参数名 类型 说明
id String 主键id
version String 版本
state String 升级状态 waitingOther : 等待其他设备升级noUpgrade : 不需要升级 waiting : 等待升级 processing :升级中 failed : 升级失败 success : 升级成功 canceled : 已取消
type Integer 固件类型:0: WI-FI模组, 1: 电控MCU
product_id String 产品ID
product_name String 产品名称
name String 固件名称
url String 固件文件地址
sign String 固件文件签名
sign_method String 固件文件签名方式,如:MD5,SHA256
size long 固件文件大小
create_time long 时间戳
properties Object 其他配置信息
description String 说明
file_name String 文件名称

upgrade(params)

升级设备。

请求参数params

参数名 类型 必填 说明
device_id String 设备ID
id String 查询设备固件是否可以升级返回值id

返回值

Promise

状态码

成功

  {
    code: 0,
    data: {}, // 成功返回的数据,无数据是不存在该字段
    message: '成功'
  }

失败

  {
    errCode: 1001,
    errMsg: '错误信息'
  }
错误码 错误说明
1001 参数错误
1002 失败
1003 手机权限问题
9999 系统错误
30001 clientId不存在
30002 签名错误
30003 没有权限
30004 批量查询设备信息,最大20个
30005 Access-token 失效,重新调用init方法
30006 该地址拒绝请求
30007 请求过于频繁
30008 参数无效
30009 参数为空
30010 参数范围无效
30011 请求时间戳过期
30012 secret无效
30013 数据不存在
30014 授权code 无效
30015 系统繁忙
30016 数据操作失败
30017 数据已经存在
30018 验证码错误
30019 不能修改
40001 设备不在线
40002 设备不存在
40003 设备网不存在
40004 设备id不能为空
40005 网关id不能为空
40006 用户不存在
40007 app_code不存在
40008 用户名和密码错误
40009 房间不存在
40010 家庭不存在
40011 家庭成员不存在
40012 ip查询城市失败
40013 没有配置模板
40014 短信或者邮件配置错误
40015 无对应的升级任务
40016 等待其他设备升级
40017 设备未启用
40018 设备已离线

其余的错误码请参考uni-app官方蓝牙相关接口错误码

注意事项

  1. 使用蓝牙功能时需要注意:

    • Android 平台:android6.0+,需要打开蓝牙,打开位置开关,需要授权微信访问位置的权限,部分手机甚至要打开 GPS
    • ios 平台:需要打开系统蓝牙,打开控制中心蓝牙,ios13+需要给微信蓝牙分享的权限
  2. WiFi配网注意事项:

    • 配网超时时间为60秒
    • 需要确保设备处于配网模式
  3. Socket注意事项:

    • 订阅会自动取消上一次订阅,订阅时请订阅所有需要的设备
    • 订阅后才能收到设备消息
  4. 升级注意事项:

    • 升级中和升级完成的设备不要重复调用升级接口
    • 升级中设需要处理设备离线的情况,离线时升级会失败

隐私、权限声明

1. 本插件需要申请的系统权限列表:

蓝牙、位置

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问