modelOfMatterModel.ts
2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import {
  DataTypeEnum,
  ExtendDescOperationTypeEnum,
  OriginalDataTypeEnum,
} from '/@/enums/objectModelEnum';
import { FunctionTypeEnum } from '/@/enums/objectModelEnum';
export interface Specs {
  min: number;
  max: number;
  unit: string;
  unitName: string;
  dataType?: string;
  name?: string;
  value?: string | number;
  step: number;
  length: number;
  boolOpen: string;
  boolClose: string;
  valueRange?: {
    min: number;
    max: number;
  };
}
export interface DataType {
  type: DataTypeEnum;
  specs?: Partial<Specs> | StructJSON[];
  specsList?: Specs[];
}
export interface ExtensionDesc {
  writeOnly?: boolean;
  bitMask?: number;
  operationType: ExtendDescOperationTypeEnum;
  originalDataType: OriginalDataTypeEnum;
  registerAddress: string;
  scaling?: number;
  valueRange?: Record<'min' | 'max', number>;
  registerCount?: number;
}
export interface StructJSON {
  functionName: string;
  identifier: string;
  dataType?: DataType;
  remark?: string;
  serviceCommand?: string;
}
export interface FunctionJson {
  dataType?: DataType;
  inputData?: StructJSON[];
  outputData?: StructJSON[];
  serviceCommand?: string;
}
export interface ModelOfMatterParams {
  deviceProfileId?: string;
  functionJson: FunctionJson;
  functionName: string;
  functionType: FunctionTypeEnum;
  identifier: string;
  remark?: string;
  id?: string;
  categoryId?: string;
  callType?: string;
  eventType?: string;
  accessMode?: string;
  extensionDesc?: ExtensionDesc;
}
export interface GetModelTslParams {
  functionType?: FunctionTypeEnum;
  deviceProfileId: string;
  ifShowClass?: string | Boolean;
}
export interface ImportModelOfMatterType {
  data: Recordable;
  functionType: string;
  tkDeviceProfileId?: string;
  categoryId?: string;
}
export interface ModelOfMatterItemRecordType {
  id: string;
  creator: string;
  createTime: string;
  enabled: boolean;
  tenantId: string;
  functionType: string;
  functionName: string;
  identifier: string;
  extensionDesc: any;
  accessMode: string;
  functionJson: FunctionJson;
  status: number;
  deviceProfileId: string;
}
export interface BatchGetObjectModelItemType {
  id: string;
  name: string;
  transportType: string;
  deviceType: string;
  tsl: Tsl[];
}
export interface Tsl {
  functionName: string;
  identifier: string;
  functionType: string;
  accessMode?: string;
  specs?: {
    dataType: DataType;
  };
  extensionDesc?: ExtensionDesc;
  eventType?: string;
  outputData?: StructJSON[];
  callType?: string;
  inputData?: StructJSON[];
}