@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 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
  }
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cpzxrobot/sdk",
3
- "version": "1.2.12",
3
+ "version": "1.2.13",
4
4
  "description": "提供给上海正芯数智APP第三方H5应用使用的SDK",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
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