---
name: "queryDps"
mode: "kit"
versionRequirements:
  - { name: "DeviceKit", version: "1.2.6" }
  - { name: "@ray-js/ray", version: "0.6.23" }
platform:
  - "iOS"
  - "Android"
async: true
title: "queryDps - 查询 dp 值通用方法"
---

## queryDps

> [VERSION] DeviceKit >= 1.2.6 | @ray-js/ray >= 0.6.23

> [PLATFORM] iOS, Android

> ⚡ **支持 Promise 调用** — 不传 success / fail / complete 回调时，该方法返回 Promise。

### 描述

查询 dps

### 参数

| 属性 | 类型 | 必填 | 默认值 | 最低版本 | 描述 |
| --- | --- | --- | --- | --- | --- |
| `deviceId` | `string` | 是 | - | `1.2.6` | 设备id |
| `dpIds` | `number[]` | 是 | - | `1.2.6` | dpids 数组 |
| `queryType` | `number` | 否 | - | `4.1.10` | 查询类型 0: null dp 查询（mqtt protocol 5 号协议、局域网 7 号协议、蓝牙 03 指令查询） 1: 常规查询（mqtt protocol 31 号协议、局域网 16 号协议、蓝牙 03 指令查询） 2: null dp 查询 + 常规查询 一起发 3: 单点蓝牙 null dp 查询 03 指令查询，其他设备走常规查询（对齐 RN 容器的 impl_getDpsWithDevId 方法），注意：TUNIDeviceKit 4.21.0 版本开始支持，底版本会走 null dp 查询 > 3: 是 null dp 查询 |
| `complete` | `() => void` | 否 | - | - | 接口调用结束的回调函数（调用成功、失败都会执行） |
| `success` | `(params: boolean) => void` | 否 | - | - | 接口调用成功的回调函数 |
| `fail` | `(params: Object) => void` ↓见下方 | 否 | - | - | 接口调用失败的回调函数 |

#### fail 回调参数

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `errorMsg` | `string` | 错误信息 |
| `errorCode` | `string \| number` | 错误码 |
| `innerError` | `Object` | 错误扩展 |

##### fail(params).innerError 的属性

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `errorCode` | `string \| number` | 错误扩展码 |
| `errorMsg` | `string` | 错误扩展信息 |


### 示例代码

#### 基础调用

```tsx
import { device } from '@ray-js/ray'

const { queryDps } = device;

queryDps({
  deviceId: 'device_001',
  dpIds: [],
  success: (result) => {
    console.log('queryDps success', result);
  },
  fail: (error) => {
    console.log('queryDps fail', error.errorMsg);
  },
});
```
