@cpzxrobot/sdk 1.2.12 → 1.2.13
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/device_gateway.ts +53 -3
- package/dist/device_gateway.js +26 -0
- package/package.json +1 -1
- package/readme.md +6 -6
package/device_gateway.ts
CHANGED
|
@@ -7,6 +7,15 @@ import type {
|
|
|
7
7
|
DeviceV2,
|
|
8
8
|
Factory,
|
|
9
9
|
} from ".";
|
|
10
|
+
|
|
11
|
+
interface DeviceFault {
|
|
12
|
+
category: string;
|
|
13
|
+
time: Date;
|
|
14
|
+
resolved: boolean;
|
|
15
|
+
repeated?: number;
|
|
16
|
+
value?: any;
|
|
17
|
+
message?: string;
|
|
18
|
+
}
|
|
10
19
|
import { FeedTowerGateway } from "./device_types/feedtower";
|
|
11
20
|
import { ElectricMeterGateway } from "./device_types/electricmeter";
|
|
12
21
|
import { NormalGateway } from "./device_types/normal_type";
|
|
@@ -55,7 +64,7 @@ export class DeviceGateway extends Object {
|
|
|
55
64
|
workshopId?: number;
|
|
56
65
|
factoryId?: number;
|
|
57
66
|
companyId?: number;
|
|
58
|
-
},params:any= undefined) => {
|
|
67
|
+
}, params: any = undefined) => {
|
|
59
68
|
let axios = await this.context.ready;
|
|
60
69
|
var url = `/api/v2/device/list`;
|
|
61
70
|
if (params) {
|
|
@@ -76,7 +85,7 @@ export class DeviceGateway extends Object {
|
|
|
76
85
|
});
|
|
77
86
|
},
|
|
78
87
|
|
|
79
|
-
preview: async (type:String, sn:any) => {
|
|
88
|
+
preview: async (type: String, sn: any) => {
|
|
80
89
|
let axios = await this.context.ready;
|
|
81
90
|
|
|
82
91
|
return axios.get(`/api/v2/device/iotValue/${type}/${sn}`).then((res) => {
|
|
@@ -215,11 +224,52 @@ export class DeviceGateway extends Object {
|
|
|
215
224
|
return this.normalFilter.getData(id, args);
|
|
216
225
|
}
|
|
217
226
|
|
|
218
|
-
async validate(serialNumbers: string[],type: string = "pywl") {
|
|
227
|
+
async validate(serialNumbers: string[], type: string = "pywl") {
|
|
219
228
|
let axios = await this.context.ready;
|
|
220
229
|
return axios.post(`/api/v2/device/validateSerialNumber`, {
|
|
221
230
|
serialNumbers,
|
|
222
231
|
type,
|
|
223
232
|
});
|
|
224
233
|
}
|
|
234
|
+
|
|
235
|
+
async faults(deviceId: number, startTime: Date, endTime: Date): Promise<DeviceFault[]> {
|
|
236
|
+
let axios = await this.context.ready;
|
|
237
|
+
const startTimeRfc3339 = startTime.toISOString();
|
|
238
|
+
const endTimeRfc3339 = endTime.toISOString();
|
|
239
|
+
|
|
240
|
+
const response = await axios.get(
|
|
241
|
+
`/api/v1/device/${deviceId}/faults?start=${startTimeRfc3339}&stop=${endTimeRfc3339}`
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
const json = response.data;
|
|
245
|
+
const faultsData = json.faults as string;
|
|
246
|
+
|
|
247
|
+
// 这里需要实现CSV到列表的转换逻辑
|
|
248
|
+
// 假设我们已经将CSV转换为对象数组
|
|
249
|
+
const data: Array<Record<string, any>> = []; // 实际应替换为CSV解析结果
|
|
250
|
+
|
|
251
|
+
return data.map(element => {
|
|
252
|
+
const at = element['_time'];
|
|
253
|
+
|
|
254
|
+
const parsedAt = new Date(at);
|
|
255
|
+
const category = element['category'];
|
|
256
|
+
|
|
257
|
+
return new (class implements DeviceFault {
|
|
258
|
+
constructor(
|
|
259
|
+
public category: string,
|
|
260
|
+
public time: Date,
|
|
261
|
+
public resolved: boolean,
|
|
262
|
+
public repeated?: number,
|
|
263
|
+
public value?: any,
|
|
264
|
+
public message?: string
|
|
265
|
+
) { }
|
|
266
|
+
})(category,
|
|
267
|
+
parsedAt,
|
|
268
|
+
false,
|
|
269
|
+
element['repeated'],
|
|
270
|
+
element['float_value'],
|
|
271
|
+
element['string_value']);
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
}
|
|
225
275
|
}
|
package/dist/device_gateway.js
CHANGED
|
@@ -154,5 +154,31 @@ class DeviceGateway extends Object {
|
|
|
154
154
|
type,
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
|
+
async faults(deviceId, startTime, endTime) {
|
|
158
|
+
let axios = await this.context.ready;
|
|
159
|
+
const startTimeRfc3339 = startTime.toISOString();
|
|
160
|
+
const endTimeRfc3339 = endTime.toISOString();
|
|
161
|
+
const response = await axios.get(`/api/v1/device/${deviceId}/faults?start=${startTimeRfc3339}&stop=${endTimeRfc3339}`);
|
|
162
|
+
const json = response.data;
|
|
163
|
+
const faultsData = json.faults;
|
|
164
|
+
// 这里需要实现CSV到列表的转换逻辑
|
|
165
|
+
// 假设我们已经将CSV转换为对象数组
|
|
166
|
+
const data = []; // 实际应替换为CSV解析结果
|
|
167
|
+
return data.map(element => {
|
|
168
|
+
const at = element['_time'];
|
|
169
|
+
const parsedAt = new Date(at);
|
|
170
|
+
const category = element['category'];
|
|
171
|
+
return new (class {
|
|
172
|
+
constructor(category, time, resolved, repeated, value, message) {
|
|
173
|
+
this.category = category;
|
|
174
|
+
this.time = time;
|
|
175
|
+
this.resolved = resolved;
|
|
176
|
+
this.repeated = repeated;
|
|
177
|
+
this.value = value;
|
|
178
|
+
this.message = message;
|
|
179
|
+
}
|
|
180
|
+
})(category, parsedAt, false, element['repeated'], element['float_value'], element['string_value']);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
157
183
|
}
|
|
158
184
|
exports.DeviceGateway = DeviceGateway;
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -326,7 +326,7 @@ heatlamp 属性提供了一组方法,用于管理猪场的热灯配置。它
|
|
|
326
326
|
|
|
327
327
|
1. **获取任务列表**
|
|
328
328
|
```typescript
|
|
329
|
-
cpzxrobot().task.list(unitId: number)
|
|
329
|
+
cpzxrobot().robot.task.list(unitId: number)
|
|
330
330
|
```
|
|
331
331
|
- 描述:获取指定单元的巡检任务列表
|
|
332
332
|
- 参数:`unitId` - 单元ID
|
|
@@ -335,7 +335,7 @@ heatlamp 属性提供了一组方法,用于管理猪场的热灯配置。它
|
|
|
335
335
|
|
|
336
336
|
2. **新增任务**
|
|
337
337
|
```typescript
|
|
338
|
-
cpzxrobot().task.add(data: any)
|
|
338
|
+
cpzxrobot().robot.task.add(data: any)
|
|
339
339
|
```
|
|
340
340
|
- 描述:添加新的巡检任务
|
|
341
341
|
- 参数:`data` - 包含任务信息的对象
|
|
@@ -344,7 +344,7 @@ heatlamp 属性提供了一组方法,用于管理猪场的热灯配置。它
|
|
|
344
344
|
|
|
345
345
|
3. **修改任务**
|
|
346
346
|
```typescript
|
|
347
|
-
cpzxrobot().task.update(data: any)
|
|
347
|
+
cpzxrobot().robot.task.update(data: any)
|
|
348
348
|
```
|
|
349
349
|
- 描述:更新现有的巡检任务
|
|
350
350
|
- 参数:`data` - 包含更新信息的对象
|
|
@@ -353,7 +353,7 @@ heatlamp 属性提供了一组方法,用于管理猪场的热灯配置。它
|
|
|
353
353
|
|
|
354
354
|
4. **删除任务**
|
|
355
355
|
```typescript
|
|
356
|
-
cpzxrobot().task.delete(id: number)
|
|
356
|
+
cpzxrobot().robot.task.delete(id: number)
|
|
357
357
|
```
|
|
358
358
|
- 描述:删除指定的巡检任务
|
|
359
359
|
- 参数:`id` - 任务ID
|
|
@@ -362,7 +362,7 @@ heatlamp 属性提供了一组方法,用于管理猪场的热灯配置。它
|
|
|
362
362
|
|
|
363
363
|
5. **下发任务**
|
|
364
364
|
```typescript
|
|
365
|
-
cpzxrobot().task.dispatch(taskId: number)
|
|
365
|
+
cpzxrobot().robot.task.dispatch(taskId: number)
|
|
366
366
|
```
|
|
367
367
|
- 描述:下发指定的巡检任务
|
|
368
368
|
- 参数:`taskId` - 任务ID
|
|
@@ -373,7 +373,7 @@ heatlamp 属性提供了一组方法,用于管理猪场的热灯配置。它
|
|
|
373
373
|
|
|
374
374
|
1. **获取巡检结果**
|
|
375
375
|
```typescript
|
|
376
|
-
cpzxrobot().record.list(taskId: number)
|
|
376
|
+
cpzxrobot().robot.record.list(taskId: number)
|
|
377
377
|
```
|
|
378
378
|
- 描述:获取指定巡检任务的结果列表
|
|
379
379
|
- 参数:`taskId` - 任务ID
|