更新记录

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

目录

插件介绍

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官方蓝牙相关接口错误码

注意事项

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

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

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

    • 订阅会自动取消上一次订阅,订阅时请订阅所有需要的设备

隐私、权限声明

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

蓝牙、位置

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

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

许可协议

MIT协议

暂无用户评论。

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