更新记录

2.2.4(2026-04-10) 下载此版本

2.2.4

2.2.3(2026-04-01) 下载此版本

2.2.3

2.2.2(2026-03-18) 下载此版本

2.2.2

查看更多

平台兼容性

uni-app(4.73)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(4.73)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

Uascent-MarsGateSDK 插件文档

版本:2.2.4

目录

插件介绍

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

接入指引

引入插件

import MarsGateSDK from '@/uni_modules/Uascent-MarsGateSDK/js_sdk/index.js'

API 文档

初始化

init(config)

初始化插件配置。

参数

参数名 类型 必填 说明
clientId String 客户端ID
accessToken String 访问令牌,通过服务器对接获取参考文档
env String 环境,可选值:'china'(中国), 'europe'(欧洲), 'overseas'(其他海外区域)默认'china'
isRepeatOnBluetoothDeviceFound Boolean 是否重复监听搜索到的设备, 默认false
isRepeatStopBluetoothDevicesDiscovery Boolean 是否重复关闭搜索, 默认false
isRepeatOperateBluetoothAdapter Boolean 过程中是否重新关闭打开蓝牙模块, 默认true

返回值

Promise

设备搜索

search(options)

开始搜索设备。

参数

返回值

Promise

onSearchListChange(callback)

监听搜索到的设备列表变化。

参数

Function 回调函数,返回设备列表数据:

{
  code: 0,
  data: [], // 设备列表
  message: '成功'
}

设备列表项数据结构

参数名 类型 说明
name String 设备名称
bleName String 蓝牙设备名称
imageUrl String 设备图片链接
productId String 产品ID
mac String MAC地址
type String 设备类型
isAddNetwork Boolean 当前状态是否是添加网络
isSupportWiFiList Boolean 是否支持通过设备获取2.4G WiFi列表
isSupport4G Boolean 是否支持4G网络
productBrand String 产品品牌
productModel String 产品型号

stopSearch()

停止搜索设备。

设备添加

add(info, wifiInfo, callback,logCallback)

添加设备。

参数

参数名 类型 必填 说明
info Object 设备基本信息
wifiInfo Object WiFi设备配网信息, 仅WiFi设备需要
callback Function WiFi配网状态回调, 仅WiFi设备需要
type String 设备类型, 可选值:'ble','wifi',默认为'ble'

info参数结构

参数名 类型 必填 说明
mac String MAC地址
productId String 产品ID

wifiInfo参数结构

参数名 类型 必填 说明
is4GActive Boolean 使用4G网络激活时必传,默认false
ssid String WiFi名称,非4G网络激活时必传
bssid String WiFi BSSID
password String WiFi密码,非4G网络激活时必传
timeout Number 蓝牙搜索连接超时时间,单位秒,默认120秒

callback参数结构

参数名 类型 说明
status Number 配网状态,1:寻找设备,2:注册到云 3:成功 4:失败
data Object 设备返回数据

logCallback参数结构

参数名 类型 说明
trackId String 唯一标识符,用于区分日志
title String 日志标题
data Object 日志数据
code Number 状态码
desc String 日志描述
header Object 日志头信息包含APP版本、环境、系统等信息

返回值 Promise 成功

  {
    code: 0,
    data: {
      deviceId: 'xxxxxxxxxxxx', // 设备的唯一标识
      bindState: 1, // WiFi设备绑定状态 0: 添加中  1: 成功 2:失败
      deviceName: 'xxxxxxxxxxxx', // WiFi设备名称
      productId: 'xxxxxxxxxxxx', // WiFi产品ID
      productName: 'xxxxxxxxxxxx', // WiFi产品名称
      productBrand: 'xxxxxxxxxxxx', // WiFi产品品牌
      productModel: 'xxxxxxxxxxxx', // WiFi产品型号
      productUrl: 'xxxxxxxxxxxx', // WiFi产品图标
      isAddNetwork: true, // 是否支持添加网络
      isSupportWiFiList: true, // 是否支持通过设备获取2.4G WiFi列表
      isSupport4G: true, // 是否支持通过4G网络
    },
    message: '成功'
  }

data数据结构

参数名 类型 说明
deviceId String 设备的唯一标识
bindState Number WiFi设备绑定状态 0: 添加中 1: 成功 2:失败
deviceName String WiFi设备名称
productId String WiFi产品ID
productName String WiFi产品名称
productBrand String WiFi产品品牌
productModel String WiFi产品型号
productUrl String WiFi产品图标

WiFi设备添加网络

addNetwork(info, wifiInfo, callback, logCallback)

添加设备网络。

参数

参数名 类型 必填 说明
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密码
timeout Number 蓝牙搜索连接超时时间,单位秒,默认120秒

callback参数结构

参数名 类型 说明
status Number 配网状态,1:寻找设备,2:连接云服务 3:成功 4:失败
data Object 设备返回数据

logCallback参数结构

参数名 类型 说明
trackId String 唯一标识符,用于区分日志
title String 日志标题
data Object 日志数据
code Number 状态码
desc String 日志描述
header Object 日志头信息包含APP版本、环境、系统等信息

返回值

Promise

蓝牙相关

connect(options)

连接设备蓝牙。

参数

参数名 类型 必填 说明
deviceInfo Object 设备信息
dpInfo Object 设备DP点信息,蓝牙设备必传
protocol Array 协议数组,蓝牙设备必传
onReport Function 上报回调
onStateChange Function 状态变化回调

设备信息deviceInfo

参数名 类型 必填 说明
mac String MAC地址
productId String 产品ID
type String 设备类型, 可选值:'ble','wifi',默认为'ble'

蓝牙设备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']

设备蓝牙状态变化回调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
type String 设备类型, 可选值:'ble','wifi',默认为'ble'

searchWifi(deviceInfo)

通过蓝牙通知WiFi设备搜索附近WiFi,支持该方法的WiFi设备会在connect方法中onReport回调中返回WiFi列表,列表是分批上报,收到数据根据自身需求进行处理,WiFi列表为wifiList,每个WiFi项格式为:

参数名 类型 说明
ssid String WiFi名称
bssid String WiFi BSSID
rssi Number 信号强度
{
  wifiList: [
    {
      ssid: 'WiFi名称',
      bssid: 'WiFi BSSID',
      rssi: -60
    },
    {
      ssid: 'WiFi名称',
      bssid: 'WiFi BSSID',
      rssi: -80
    }
  ]
}

参数

参数名 类型 必填 说明
deviceInfo Object 设备信息

deviceInfo参数结构

参数名 类型 必填 说明
mac String MAC地址
productId String 产品ID

stopSearchWifi(deviceInfo)

通过蓝牙通知WiFi设备停止搜索WiFi。

参数

参数名 类型 必填 说明
deviceInfo 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)
})

sendQuery(deviceInfo, properties)

发送查询指令到WiFi设备。

参数

参数名 类型 必填 说明
deviceInfo Object 设备信息
properties Array 属性数组

deviceInfo参数结构

参数名 类型 必填 说明
deviceId String 设备ID
productId String 产品ID

返回值

Promise

示例


plugin.sendQuery(deviceInfo).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 属性值

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 文件名称
currentVersion String 当前版本

upgrade(params)

升级设备。

请求参数params

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

返回值

Promise

设备通用

getProductModel(productId)

获取产品物模型信息。

参数

参数名 类型 必填 说明
productId String 产品ID

返回值

Promise

返回参数

参数名 类型 说明
data Object 设备物模型信息

data 说明

参数名 类型 说明
properties Object 属性定义
functions Object 功能定义
events Object 事件定义
expands Object 自定义功能

properties 说明

参数名 类型 说明
valueType Object 属性类型信息
name String 属性名称
id String 属性code
expands Object 扩展信息

valueType 说明

参数名 类型 说明
type String 数据类型
expands Object 扩展信息
elements Array 枚举信息
max Number 最大值
min Number 最小值
unit String 单位

Expands 说明

参数名 类型 说明
readOnly Boolean 是否只读
required Boolean 是否需要

getDeviceId(prams)

通过MAC地址和产品ID获取设备ID。

参数

参数名 类型 必填 说明
mac String MAC地址如 mac为 73:EA:EA:48:03:38,传参时去掉分隔符并转小写,传参为 73eaea480338
productId String 产品ID

返回值

Promise

成功

  {
    code: 0,
    data: {
      deviceId: 'xxxxxxxxxxxx', // 设备的唯一标识
      productId: 'xxxxxxxxxxxx', // 产品ID
      mac: 'xxxxxxxxxxxx', // MAC地址
    },
    message: '成功'
  }

状态码

成功

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

失败

  {
    errCode: 1001,
    errMsg: '错误信息'
  }
错误码 错误说明
1001 参数错误
1002 失败
1003 手机权限问题
2001 未搜索到该设备
2002 目前不支持改类型设备
2003 WiFi设备配网超时
2004 添加网络超时
2005 目前不支持非wifi设备添加网络
2011 未找不到WiFi,路由连接失败
2012 连接服务器失败或者断开服务器连接
2013 WiFi密码错误,路由器连接失败
2014 设备当前状态不支持添加网络
2015 设备当前状态为添加网络状态,不支持添加设备
2017 数据中心参数错误,请检查数据中心参数
2018 请使用4G网络激活设备
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 不能修改
30022 客户端ip被限制
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配网注意事项:
    • 需要确保设备处于配网模式
    • 配网过程中,部分设备会在回调中上报错误信息,但设备还会继续尝试配网,直到成功或超时,可根据业务需求处理
  3. Socket注意事项:
    • 订阅会自动取消上一次订阅,订阅时请订阅所有需要的设备
    • 订阅后才能收到设备消息
  4. 升级注意事项:
    • 升级中和升级完成的设备不要重复调用升级接口
    • 升级中设需要处理设备离线的情况,离线时升级会失败'
  5. 通过设备获取周围WiFi列表
    • 在设备支持的情况下,需要先连接设备蓝牙(调用connect),才能获取周围WiFi列表(调用searchWifi)
    • 获取WiFi列表后,添加设备时,不需要断开蓝牙,直接调用添加设备(add)或者添加网络(addNetwork)即可

隐私、权限声明

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

蓝牙、位置

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

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

许可协议

MIT协议

暂无用户评论。