mini_program_gizwits_sdk 3.6.39-cozev5 → 3.6.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +167 -422
- package/dist/index.js +6 -4
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
```txt
|
|
13
13
|
https://api.gizwits.com
|
|
14
14
|
https://site.gizwits.com
|
|
15
|
-
https://agent.gizwitsapi.com
|
|
16
15
|
```
|
|
17
16
|
|
|
18
17
|
- socket 合法域名
|
|
@@ -73,6 +72,8 @@ export default class Index extends Component {
|
|
|
73
72
|
productSecret: 'productSecret',
|
|
74
73
|
},
|
|
75
74
|
],
|
|
75
|
+
uid: 'giz_uid', // 必填
|
|
76
|
+
token: 'giz_token', // 必填
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
79
|
|
|
@@ -85,456 +86,94 @@ export default class Index extends Component {
|
|
|
85
86
|
## 📋 日志
|
|
86
87
|
sdk.setLogLevel("debug")
|
|
87
88
|
|
|
88
|
-
##
|
|
89
|
+
## 📖 API
|
|
89
90
|
|
|
90
|
-
|
|
91
|
+
小程序相关 API。
|
|
91
92
|
|
|
92
|
-
###
|
|
93
|
-
```typescript
|
|
94
|
-
// 使用 唯一ID 进行匿名登录
|
|
95
|
-
// 适用于 已经有业务后台的场景
|
|
96
|
-
const result = await sdk.login(openID);
|
|
97
|
-
if (result.success) {
|
|
98
|
-
// 登录成功,可以获取到 token 和 uid
|
|
99
|
-
const { token, uid } = result.data;
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 微信登录
|
|
104
|
-
```typescript
|
|
105
|
-
// 使用微信登录 直接登录到 Gizwits
|
|
106
|
-
const result = await sdk.wxLogin();
|
|
107
|
-
if (result.success) {
|
|
108
|
-
// 登录成功,返回数据包含:
|
|
109
|
-
// - token: 访问令牌
|
|
110
|
-
// - uid: 用户ID
|
|
111
|
-
// - expire_at: 令牌过期时间
|
|
112
|
-
const { token, uid, expire_at } = result.data;
|
|
113
|
-
} else {
|
|
114
|
-
// 登录失败
|
|
115
|
-
console.error(result.message);
|
|
116
|
-
}
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### 登录结果说明
|
|
120
|
-
|
|
121
|
-
登录成功后会:
|
|
122
|
-
1. 自动保存 token 和 uid 到全局数据
|
|
123
|
-
2. 更新 WebSocket 连接的认证信息
|
|
124
|
-
3. 返回登录结果,包含:
|
|
125
|
-
- token: 访问令牌
|
|
126
|
-
- uid: 用户ID
|
|
127
|
-
- expire_at: 令牌过期时间(仅微信登录返回)
|
|
128
|
-
|
|
129
|
-
#### 注意事项
|
|
130
|
-
1. 登录是使用其他功能的前提,建议在初始化 SDK 后立即进行登录
|
|
131
|
-
2. 微信登录需要确保小程序已经获取了用户授权
|
|
132
|
-
3. 登录成功后,SDK 会自动处理 token 的存储和更新
|
|
133
|
-
|
|
134
|
-
#### 错误处理
|
|
135
|
-
```typescript
|
|
136
|
-
try {
|
|
137
|
-
const result = await sdk.wxLogin();
|
|
138
|
-
if (!result.success) {
|
|
139
|
-
// 处理登录失败
|
|
140
|
-
console.error('登录失败:', result.message);
|
|
141
|
-
}
|
|
142
|
-
} catch (error) {
|
|
143
|
-
// 处理异常
|
|
144
|
-
console.error('登录异常:', error);
|
|
145
|
-
}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
## ota
|
|
149
|
-
|
|
150
|
-
### 获取设备当前版本
|
|
151
|
-
|
|
152
|
-
获取设备的软硬件版本信息。
|
|
153
|
-
|
|
154
|
-
```typescript
|
|
155
|
-
const result = await sdk.getDeviceVersion(deviceId);
|
|
156
|
-
if (result.success) {
|
|
157
|
-
// 获取成功
|
|
158
|
-
const { soft_version, hard_version } = result.data;
|
|
159
|
-
console.log('软件版本:', soft_version);
|
|
160
|
-
console.log('硬件版本:', hard_version);
|
|
161
|
-
} else {
|
|
162
|
-
// 获取失败
|
|
163
|
-
console.error('获取版本失败:', result.err);
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
#### 参数说明
|
|
168
|
-
|
|
169
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
170
|
-
|------|------|------|------|
|
|
171
|
-
| deviceId | string | 是 | 设备 ID |
|
|
172
|
-
|
|
173
|
-
#### 返回值说明
|
|
174
|
-
|
|
175
|
-
| 字段 | 类型 | 说明 |
|
|
176
|
-
|------|------|------|
|
|
177
|
-
| soft_version | string | 软件版本号 |
|
|
178
|
-
| hard_version | string | 硬件版本号 |
|
|
179
|
-
|
|
180
|
-
#### 注意事项
|
|
181
|
-
|
|
182
|
-
1. 设备必须已经绑定
|
|
183
|
-
2. 设备必须在线
|
|
184
|
-
3. 版本号格式通常为 x.y.z 的形式
|
|
185
|
-
|
|
186
|
-
#### 错误处理
|
|
187
|
-
|
|
188
|
-
```typescript
|
|
189
|
-
try {
|
|
190
|
-
const result = await sdk.getDeviceVersion(deviceId);
|
|
191
|
-
|
|
192
|
-
if (!result.success) {
|
|
193
|
-
// 处理获取失败
|
|
194
|
-
console.error('获取版本失败:', result.err);
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// 获取成功,可以开始使用版本信息
|
|
199
|
-
const { soft_version, hard_version } = result.data;
|
|
200
|
-
|
|
201
|
-
} catch (error) {
|
|
202
|
-
// 处理异常
|
|
203
|
-
console.error('获取版本异常:', error);
|
|
204
|
-
}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### 检查更新
|
|
208
|
-
```typescript
|
|
209
|
-
const result = await sdk.checkAvailableUpdates(deviceInfo.id, deviceInfo.soft_version);
|
|
210
|
-
console.log('resultresultresult', result)
|
|
211
|
-
if (result.success && result.data) {
|
|
212
|
-
setUpdateInfo(result.data);
|
|
213
|
-
|
|
214
|
-
} else {
|
|
215
|
-
setUpdateInfo(null);
|
|
216
|
-
Taro.showToast({
|
|
217
|
-
title: '没有可用的更新',
|
|
218
|
-
icon: 'none'
|
|
219
|
-
})
|
|
220
|
-
}
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
### 开始更新
|
|
224
|
-
```typescript
|
|
225
|
-
const sdk = getGlobalData('gizSdk');
|
|
226
|
-
const result = await sdk.startUpdate(deviceInfo.id);
|
|
227
|
-
console.log('resultresultresult', result)
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### 查询进度
|
|
231
|
-
|
|
232
|
-
获取设备 OTA 更新的当前进度。
|
|
233
|
-
|
|
234
|
-
```typescript
|
|
235
|
-
const result = await sdk.getOtaStatus(deviceId);
|
|
236
|
-
if (result.success) {
|
|
237
|
-
if (result.data !== null) {
|
|
238
|
-
// 有进度信息,显示进度
|
|
239
|
-
console.log('OTA 更新进度:', result.data);
|
|
240
|
-
} else {
|
|
241
|
-
// 没有进度信息
|
|
242
|
-
console.log('暂无 OTA 更新进度');
|
|
243
|
-
}
|
|
244
|
-
} else {
|
|
245
|
-
// 获取进度失败
|
|
246
|
-
console.error('获取 OTA 进度失败:', result.err);
|
|
247
|
-
}
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
#### 参数说明
|
|
251
|
-
|
|
252
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
253
|
-
|------|------|------|------|
|
|
254
|
-
| deviceId | string | 是 | 设备 ID |
|
|
255
|
-
|
|
256
|
-
#### 返回值说明
|
|
257
|
-
|
|
258
|
-
| 字段 | 类型 | 说明 |
|
|
259
|
-
|------|------|------|
|
|
260
|
-
| data | number \| null | 更新进度百分比(0-100),如果为 null 表示暂无进度信息 |
|
|
261
|
-
|
|
262
|
-
#### 注意事项
|
|
263
|
-
|
|
264
|
-
1. 设备必须已经绑定
|
|
265
|
-
2. 设备必须在线
|
|
266
|
-
3. 只有在进行 OTA 更新时才会返回进度信息
|
|
267
|
-
4. 进度信息有 1 分钟的有效期,超过 1 分钟未更新则返回 null
|
|
268
|
-
|
|
269
|
-
#### 错误处理
|
|
270
|
-
|
|
271
|
-
```typescript
|
|
272
|
-
try {
|
|
273
|
-
const result = await sdk.getOtaStatus(deviceId);
|
|
274
|
-
|
|
275
|
-
if (!result.success) {
|
|
276
|
-
// 处理获取失败
|
|
277
|
-
console.error('获取 OTA 进度失败:', result.err);
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// 获取成功,处理进度信息
|
|
282
|
-
if (result.data !== null) {
|
|
283
|
-
// 有进度信息
|
|
284
|
-
console.log('OTA 更新进度:', result.data);
|
|
285
|
-
} else {
|
|
286
|
-
// 没有进度信息
|
|
287
|
-
console.log('暂无 OTA 更新进度');
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
} catch (error) {
|
|
291
|
-
// 处理异常
|
|
292
|
-
console.error('获取 OTA 进度异常:', error);
|
|
293
|
-
}
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
## 蓝牙相关
|
|
297
|
-
|
|
298
|
-
### 初始化蓝牙
|
|
93
|
+
### sdk.initBle()
|
|
299
94
|
|
|
300
95
|
初始化 sdk 蓝牙能力。使用其他`BLE API`前**必须**进行初始化。
|
|
301
96
|
|
|
302
|
-
|
|
303
|
-
sdk.initBle()
|
|
304
|
-
```
|
|
97
|
+
### sdk.scanBleDevice(delay?:number, services?: string[])
|
|
305
98
|
|
|
306
|
-
### 搜索蓝牙
|
|
307
99
|
搜索蓝牙设备。搜索到的蓝牙设备会被 [onScanListChange](#onScanListChange) 事件监听。
|
|
308
100
|
|
|
309
|
-
|
|
310
|
-
// 参数
|
|
311
|
-
// - delay: 超时时间。
|
|
312
|
-
// - services: 过滤services的条件,不传默认 ['ABF8', 'ABF0', 'F0AB', 'F8AB']
|
|
313
|
-
|
|
314
|
-
sdk.scanBleDevice(delay?:number, services?: string[])
|
|
315
|
-
```
|
|
101
|
+
#### 参数
|
|
316
102
|
|
|
317
|
-
|
|
103
|
+
- delay: 超时时间。
|
|
104
|
+
- services: 过滤services的条件,不传默认 ['ABF8', 'ABF0', 'F0AB', 'F8AB']
|
|
318
105
|
|
|
319
|
-
|
|
106
|
+
### sdk.startAutoScan(services?: string[])
|
|
320
107
|
|
|
321
108
|
间隔自动搜索蓝牙设备 [onScanListChange](#onScanListChange) 事件监听。
|
|
322
109
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
// - services: 过滤services的条件,不传默认 ['ABF8', 'ABF0', 'F0AB', 'F8AB']
|
|
326
|
-
sdk.startAutoScan(services?: string[])
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
## 设备管理
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
### 获取设备列表
|
|
333
|
-
|
|
334
|
-
刷新设备列表(同时也会在 GizDeviceListNotifications 事件里推送)
|
|
335
|
-
|
|
336
|
-
```typescript
|
|
337
|
-
const data = await sdk.getDevices()
|
|
338
|
-
console.log(data)
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
### 开始配网
|
|
342
|
-
|
|
343
|
-
配网是将设备连接到 WiFi 网络的过程。SDK 支持多种配网方式:SoftAP、BLE 和 NFC(仅安卓)。
|
|
344
|
-
|
|
345
|
-
```typescript
|
|
346
|
-
const result = await sdk.setDeviceOnboardingDeploy({
|
|
347
|
-
ssid: 'wifi_ssid', // WiFi 名称
|
|
348
|
-
password: 'wifi_password', // WiFi 密码
|
|
349
|
-
mode: 3, // 配网模式:0-SoftAP, 3-BLE, 5-NFC
|
|
350
|
-
timeout: 60, // 配网超时时间(秒)
|
|
351
|
-
productKey: 'product_key', // 产品 Key
|
|
352
|
-
isBind: true, // 是否自动绑定设备
|
|
353
|
-
softAPSSIDPrefix: 'XPG-GAgent-', // SoftAP 模式下的设备热点前缀,蓝牙配网模式下的蓝牙设备名称
|
|
354
|
-
eventCallBack: (event) => { // 配网过程事件回调
|
|
355
|
-
console.log('配网事件:', event);
|
|
356
|
-
}
|
|
357
|
-
});
|
|
358
|
-
|
|
359
|
-
if (result.success) {
|
|
360
|
-
// 配网成功,返回配网成功的设备列表
|
|
361
|
-
const devices = result.data;
|
|
362
|
-
console.log('配网成功:', devices);
|
|
363
|
-
} else {
|
|
364
|
-
// 配网失败
|
|
365
|
-
console.error('配网失败:', result.err);
|
|
366
|
-
}
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
#### 参数说明
|
|
370
|
-
|
|
371
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
372
|
-
|------|------|------|------|
|
|
373
|
-
| ssid | string | 是 | WiFi 网络名称 |
|
|
374
|
-
| password | string | 是 | WiFi 网络密码 |
|
|
375
|
-
| mode | number | 是 | 配网模式:0-SoftAP, 3-BLE, 5-NFC |
|
|
376
|
-
| timeout | number | 否 | 配网超时时间,单位秒,默认 60 |
|
|
377
|
-
| productKey | string | 否 | 产品 Key |
|
|
378
|
-
| isBind | boolean | 否 | 是否自动绑定设备,默认 true |
|
|
379
|
-
| softAPSSIDPrefix | string | 否 | SoftAP 模式下的设备热点前缀 |
|
|
380
|
-
| eventCallBack | function | 否 | 配网过程事件回调 |
|
|
381
|
-
|
|
382
|
-
#### 配网模式说明
|
|
383
|
-
|
|
384
|
-
1. **SoftAP 模式 (mode: 0)**
|
|
385
|
-
- 设备会创建一个 WiFi 热点
|
|
386
|
-
- 手机需要先连接到设备热点
|
|
387
|
-
- 适用于大多数 WiFi 设备
|
|
388
|
-
|
|
389
|
-
2. **BLE 模式 (mode: 3)**
|
|
390
|
-
- 通过蓝牙传输配网信息
|
|
391
|
-
- 设备需要支持蓝牙功能
|
|
392
|
-
- 适用于支持蓝牙的 WiFi 设备
|
|
393
|
-
|
|
394
|
-
3. **NFC 模式 (mode: 5)**
|
|
395
|
-
- 通过 NFC 传输配网信息
|
|
396
|
-
- 仅支持安卓设备
|
|
397
|
-
- 设备需要支持 NFC 功能
|
|
398
|
-
|
|
399
|
-
#### 注意事项
|
|
400
|
-
|
|
401
|
-
1. 配网前确保设备处于配网状态
|
|
402
|
-
2. 确保 WiFi 密码正确
|
|
403
|
-
3. 配网过程中不要切换网络或关闭蓝牙
|
|
404
|
-
4. 如果配网超时,可以调用 `stopDeviceOnboardingDeploy` 停止配网
|
|
405
|
-
5. 配网成功后,设备会自动连接到指定的 WiFi 网络
|
|
406
|
-
|
|
407
|
-
#### 错误处理
|
|
408
|
-
|
|
409
|
-
```typescript
|
|
410
|
-
try {
|
|
411
|
-
const result = await sdk.setDeviceOnboardingDeploy({
|
|
412
|
-
ssid: 'wifi_ssid',
|
|
413
|
-
password: 'wifi_password',
|
|
414
|
-
mode: 3
|
|
415
|
-
});
|
|
416
|
-
|
|
417
|
-
if (!result.success) {
|
|
418
|
-
// 处理配网失败
|
|
419
|
-
console.error('配网失败:', result.err);
|
|
420
|
-
return;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
// 配网成功,可以开始使用设备
|
|
424
|
-
const devices = result.data;
|
|
425
|
-
|
|
426
|
-
} catch (error) {
|
|
427
|
-
// 处理异常
|
|
428
|
-
console.error('配网异常:', error);
|
|
429
|
-
}
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
### 停止配网
|
|
433
|
-
|
|
434
|
-
取消当前正在进行的配网过程。
|
|
435
|
-
|
|
436
|
-
```typescript
|
|
437
|
-
sdk.stopDeviceOnboardingDeploy();
|
|
438
|
-
```
|
|
439
|
-
|
|
440
|
-
### 绑定设备
|
|
441
|
-
|
|
442
|
-
绑定设备到机智云平台,绑定成功后才能进行设备控制和数据交互。
|
|
110
|
+
#### 参数
|
|
111
|
+
- services: 过滤services的条件,不传默认 ['ABF8', 'ABF0', 'F0AB', 'F8AB']
|
|
443
112
|
|
|
444
|
-
|
|
445
|
-
const result = await sdk.bindRemoteDevice({
|
|
446
|
-
mac: 'device_mac', // 设备 MAC 地址
|
|
447
|
-
productKey: 'product_key', // 产品 Key
|
|
448
|
-
alias: 'device_name', // 可选,设备别名
|
|
449
|
-
beOwner: true // 可选,是否作为设备所有者
|
|
450
|
-
});
|
|
113
|
+
### sdk.deviceSafetyRegister(Object object)
|
|
451
114
|
|
|
452
|
-
|
|
453
|
-
// 绑定成功
|
|
454
|
-
const device = result.data;
|
|
455
|
-
console.log('设备绑定成功:', device);
|
|
456
|
-
} else {
|
|
457
|
-
// 绑定失败
|
|
458
|
-
console.error('设备绑定失败:', result.err);
|
|
459
|
-
}
|
|
460
|
-
```
|
|
115
|
+
安全注册目标设备,蓝牙设备绑定前,需要调用这个接口,否则无法发起设备绑定。返回值中可以拿到注册结果。
|
|
461
116
|
|
|
462
|
-
####
|
|
117
|
+
#### 参数
|
|
463
118
|
|
|
464
|
-
|
|
465
|
-
|------|------|------|------|
|
|
466
|
-
| mac | string | 是 | 设备的 MAC 地址 |
|
|
467
|
-
| productKey | string | 是 | 产品 Key,用于标识设备类型 |
|
|
468
|
-
| alias | string | 否 | 设备别名,用于自定义设备名称 |
|
|
469
|
-
| beOwner | boolean | 否 | 是否作为设备所有者,默认为 true |
|
|
119
|
+
- Object object
|
|
470
120
|
|
|
471
|
-
|
|
121
|
+
| 属性 | 类型 | 描述 |
|
|
122
|
+
| ---------- | ------ | ------------------ |
|
|
123
|
+
| mac | string | 待注册设备 mac |
|
|
124
|
+
| productKey | string | 待注册设备所属产品 |
|
|
472
125
|
|
|
473
|
-
|
|
474
|
-
2. 绑定成功后,设备会自动添加到设备列表中
|
|
475
|
-
3. 一个设备只能被一个用户绑定为所有者,但可以被多个用户共享
|
|
126
|
+
### sdk.bindRemoteDevice(Object object)
|
|
476
127
|
|
|
477
|
-
|
|
128
|
+
绑定远程设备,否则无法发起设备订阅。返回值中可以拿到绑定结果。
|
|
478
129
|
|
|
479
|
-
|
|
480
|
-
try {
|
|
481
|
-
const result = await sdk.bindRemoteDevice({
|
|
482
|
-
mac: 'device_mac',
|
|
483
|
-
productKey: 'product_key'
|
|
484
|
-
});
|
|
485
|
-
|
|
486
|
-
if (!result.success) {
|
|
487
|
-
// 处理绑定失败
|
|
488
|
-
console.error('绑定失败:', result.err);
|
|
489
|
-
return;
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
// 绑定成功,可以开始使用设备
|
|
493
|
-
const device = result.data;
|
|
494
|
-
|
|
495
|
-
} catch (error) {
|
|
496
|
-
// 处理异常
|
|
497
|
-
console.error('绑定异常:', error);
|
|
498
|
-
}
|
|
499
|
-
```
|
|
130
|
+
### sdk.unbindDevice({devices: [IDevice]})
|
|
500
131
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
```typescript
|
|
504
|
-
sdk.unbindDevice({devices: [{mac: string, productKey: string}]})
|
|
505
|
-
```
|
|
132
|
+
解绑设备
|
|
506
133
|
|
|
507
134
|
#### 参数
|
|
508
135
|
|
|
136
|
+
- Object object
|
|
137
|
+
|
|
509
138
|
| 属性 | 类型 | 描述 |
|
|
510
139
|
| ---------- | ------ | ------------------ |
|
|
511
140
|
| mac | string | 待绑定设备 mac |
|
|
512
141
|
| productKey | string | 待绑定设备所属产品 |
|
|
513
142
|
|
|
514
|
-
###
|
|
143
|
+
### sdk.subscribe(device:[IDevice](#IDevice),connectType:[TConnectType](#TConnectType))
|
|
515
144
|
|
|
516
|
-
|
|
145
|
+
订阅目标设备,订阅成功后可控制设备。返回值中可以拿到订阅结果。
|
|
517
146
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
147
|
+
### sdk.getDeviceStatus(device:[IDevice](#IDevice), attrNames?: string[])
|
|
148
|
+
|
|
149
|
+
查询目标设备当前状态,attrNames 不传则查询所有数据
|
|
521
150
|
|
|
522
|
-
###
|
|
151
|
+
### sdk.write(device:[IDevice](#IDevice),cmd:{[key]:value})
|
|
523
152
|
|
|
524
153
|
向目标设备发送指令。 其中`key`为数据点名称,value 为数据点的值。
|
|
525
154
|
|
|
155
|
+
### sdk.unSubscribe(device:[IDevice](#IDevice))
|
|
156
|
+
|
|
157
|
+
取消订阅目标设备。蓝牙设备会断开连接。返回值中可拿到取消订阅结果。
|
|
526
158
|
|
|
527
|
-
|
|
528
|
-
|
|
159
|
+
### sdk.getDevices()
|
|
160
|
+
刷新设备列表(同时也会在 GizDeviceListNotifications 事件里推送)
|
|
161
|
+
```ts
|
|
162
|
+
const data = await sdk.getDevices()
|
|
163
|
+
console.log(data)
|
|
529
164
|
```
|
|
530
165
|
|
|
531
|
-
|
|
166
|
+
### sdk.stopDeviceOnboardingDeploy
|
|
167
|
+
停止配网
|
|
532
168
|
|
|
533
|
-
###
|
|
169
|
+
### sdk.setDeviceOnboardingDeploy
|
|
170
|
+
开始配网
|
|
534
171
|
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
172
|
+
详细参数请查阅类型定义
|
|
173
|
+
|
|
174
|
+
### sdk.addEventListener(type,listener)
|
|
175
|
+
|
|
176
|
+
#### 概览
|
|
538
177
|
|
|
539
178
|
| 事件种类 type | 回调参数类型 | 回调参数描述 |
|
|
540
179
|
| --------------------------- | ------------------------------------- | -------------------- |
|
|
@@ -544,7 +183,7 @@ sdk.addEventListener(type,listener)
|
|
|
544
183
|
| onScanListChange | [IDevice[]](#IDevice) | 扫描设备列表变更通知 |
|
|
545
184
|
| onBleHandleError | [IError](#IError) | ble 错误通知 |
|
|
546
185
|
|
|
547
|
-
|
|
186
|
+
- <a id="GizDeviceListNotifications"> GizDeviceListNotifications </a>
|
|
548
187
|
|
|
549
188
|
```ts
|
|
550
189
|
this.gizSdk.addEventListener('GizDeviceListNotifications', (deviceList: IDevice[]) => {
|
|
@@ -552,7 +191,7 @@ this.gizSdk.addEventListener('GizDeviceListNotifications', (deviceList: IDevice[
|
|
|
552
191
|
});
|
|
553
192
|
```
|
|
554
193
|
|
|
555
|
-
|
|
194
|
+
- <a id="GizDeviceStatusNotifications"> GizDeviceStatusNotifications </a>
|
|
556
195
|
|
|
557
196
|
```ts
|
|
558
197
|
this.gizSdk.addEventListener('GizDeviceStatusNotifications', (e: IDeviceStatusNoti) => {
|
|
@@ -560,9 +199,7 @@ this.gizSdk.addEventListener('GizDeviceStatusNotifications', (e: IDeviceStatusNo
|
|
|
560
199
|
});
|
|
561
200
|
```
|
|
562
201
|
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
蓝牙扫描的设备回调
|
|
202
|
+
- <a id="onScanListChange">onScanListChange</a>
|
|
566
203
|
|
|
567
204
|
```ts
|
|
568
205
|
const initBle = () => {
|
|
@@ -583,7 +220,7 @@ initBle();
|
|
|
583
220
|
scanBle();
|
|
584
221
|
```
|
|
585
222
|
|
|
586
|
-
|
|
223
|
+
- <a id="GizDeviceAttrsNotifications">GizDeviceAttrsNotifications</a>
|
|
587
224
|
|
|
588
225
|
监听设备上报数据。
|
|
589
226
|
|
|
@@ -596,9 +233,9 @@ this.gizSdk.addEventListener(
|
|
|
596
233
|
);
|
|
597
234
|
```
|
|
598
235
|
|
|
599
|
-
|
|
236
|
+
#### 类型定义
|
|
600
237
|
|
|
601
|
-
|
|
238
|
+
- <a id="IDevice">IDevice</a>
|
|
602
239
|
|
|
603
240
|
```ts
|
|
604
241
|
interface IDevice {
|
|
@@ -616,14 +253,14 @@ interface IDevice {
|
|
|
616
253
|
}
|
|
617
254
|
```
|
|
618
255
|
|
|
619
|
-
|
|
256
|
+
- <a id="TConnectType">TConnectType</a>
|
|
620
257
|
|
|
621
258
|
```ts
|
|
622
259
|
type TConnectType = 'BLE' | 'BLE_BROADCAST' | 'LAN' | 'WAN' | 'NONE';
|
|
623
260
|
}
|
|
624
261
|
```
|
|
625
262
|
|
|
626
|
-
|
|
263
|
+
- <a id="IDeviceAttrsNoti">IDeviceAttrsNoti</a>
|
|
627
264
|
|
|
628
265
|
```ts
|
|
629
266
|
interface IDeviceAttrsNoti {
|
|
@@ -632,7 +269,7 @@ interface IDeviceAttrsNoti {
|
|
|
632
269
|
}
|
|
633
270
|
```
|
|
634
271
|
|
|
635
|
-
|
|
272
|
+
- <a id="IDeviceStatusNoti">IDeviceStatusNoti</a>
|
|
636
273
|
|
|
637
274
|
```ts
|
|
638
275
|
interface IDeviceStatusNoti {
|
|
@@ -641,7 +278,7 @@ interface IDeviceStatusNoti {
|
|
|
641
278
|
}
|
|
642
279
|
```
|
|
643
280
|
|
|
644
|
-
|
|
281
|
+
- <a id="TConnectType">TConnectType</a>
|
|
645
282
|
|
|
646
283
|
```ts
|
|
647
284
|
type TConnectType = 'BLE' | 'BLE_BROADCAST' | 'LAN' | 'WAN' | 'NONE';
|
|
@@ -655,3 +292,111 @@ interface IError {
|
|
|
655
292
|
errorMessage?: string; // 错误信息
|
|
656
293
|
}
|
|
657
294
|
```
|
|
295
|
+
|
|
296
|
+
### sdk.removeEventListener(type:K,func:TListenerType[K])
|
|
297
|
+
|
|
298
|
+
销毁事件监听。
|
|
299
|
+
|
|
300
|
+
# 配网相关
|
|
301
|
+
|
|
302
|
+
## 使用方法
|
|
303
|
+
|
|
304
|
+
```javascript
|
|
305
|
+
import GizwitsSdk, { errorCode } from 'mini_program_gizwits_sdk';
|
|
306
|
+
|
|
307
|
+
const configData = {
|
|
308
|
+
appID: "xxx",
|
|
309
|
+
appSecret: "xxx",
|
|
310
|
+
productInfo: [
|
|
311
|
+
{
|
|
312
|
+
productKey: "xxx",
|
|
313
|
+
productSecret: "xxx",
|
|
314
|
+
},
|
|
315
|
+
],
|
|
316
|
+
};
|
|
317
|
+
const sdk = new GizwitsSdk(configData);
|
|
318
|
+
|
|
319
|
+
try {
|
|
320
|
+
const data = await sdk.setDeviceOnboardingDeploy({
|
|
321
|
+
ssid: SSID,
|
|
322
|
+
password: password,
|
|
323
|
+
mode: 3, // 蓝牙配网
|
|
324
|
+
// mode:0 // softAp
|
|
325
|
+
timeout: 60,
|
|
326
|
+
softAPSSIDPrefix: 'XPG-GAgent-',
|
|
327
|
+
});
|
|
328
|
+
} catch (error) {
|
|
329
|
+
console.log(error);
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
其中`data`代表配网成功的设备。
|
|
334
|
+
|
|
335
|
+
如果失败的话会返回数据
|
|
336
|
+
|
|
337
|
+
```javascript
|
|
338
|
+
{
|
|
339
|
+
success: false,
|
|
340
|
+
err: {
|
|
341
|
+
errorCode: 'code',
|
|
342
|
+
errorMessage: 'message',
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
```ts
|
|
348
|
+
const errorCode: IErrorCode = {
|
|
349
|
+
GIZ_OPENAPI_DEVICE_NOT_BOUND: {
|
|
350
|
+
errorCode: 9017,
|
|
351
|
+
errorMessage: 'not bind',
|
|
352
|
+
},
|
|
353
|
+
GIZ_SDK_HTTP_REQUEST_FAILED: {
|
|
354
|
+
errorCode: 8099,
|
|
355
|
+
errorMessage: '网络请求失败',
|
|
356
|
+
},
|
|
357
|
+
GIZ_SDK_SDK_NOT_INITIALIZED: {
|
|
358
|
+
errorCode: 8300,
|
|
359
|
+
errorMessage: 'not init',
|
|
360
|
+
},
|
|
361
|
+
CONFIG_TIME_OUT: {
|
|
362
|
+
errorCode: 8023,
|
|
363
|
+
errorMessage: 'Config Timeout',
|
|
364
|
+
},
|
|
365
|
+
WECHAT_ERROR: {
|
|
366
|
+
errorCode: 10000,
|
|
367
|
+
errorMessage: 'wechat error',
|
|
368
|
+
},
|
|
369
|
+
GIZ_SDK_ONBOARDING_STOPPED: {
|
|
370
|
+
errorCode: 8318,
|
|
371
|
+
errorMessage: '配网中断',
|
|
372
|
+
},
|
|
373
|
+
GIZ_SDK_DEVICE_CONFIG_IS_RUNNING: {
|
|
374
|
+
errorCode: 8022,
|
|
375
|
+
errorMessage: '配置正在进行中',
|
|
376
|
+
},
|
|
377
|
+
GIZ_OPENAPI_TOKEN_INVALID: {
|
|
378
|
+
errorCode: 9004,
|
|
379
|
+
errorMessage: 'token 失效',
|
|
380
|
+
},
|
|
381
|
+
GIZ_SDK_BIND_DEVICE_FAILED: {
|
|
382
|
+
errorCode: 8039,
|
|
383
|
+
errorMessage: '设备绑定失败',
|
|
384
|
+
},
|
|
385
|
+
GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON: {
|
|
386
|
+
errorCode: 8281,
|
|
387
|
+
errorMessage: '蓝牙未启用',
|
|
388
|
+
},
|
|
389
|
+
GIZ_SDK_OTHERWISE: {
|
|
390
|
+
errorCode: 8100,
|
|
391
|
+
errorMessage: '',
|
|
392
|
+
},
|
|
393
|
+
GIZ_SDK_DEVICE_NOT_SUBSCRIBED: {
|
|
394
|
+
errorCode: 8029,
|
|
395
|
+
errorMessage: '设备还未订阅',
|
|
396
|
+
},
|
|
397
|
+
GIZ_SDK_PRODUCTKEY_NOT_IN_SPECIFY: {
|
|
398
|
+
errorCode: 8250,
|
|
399
|
+
errorMessage: '产品类型不在指定范围内',
|
|
400
|
+
},
|
|
401
|
+
};
|
|
402
|
+
```
|