grenton-ts 1.0.0

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.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/analog-din/fv02_01/analog-in.ts +271 -0
  4. package/dist/clu/calendar/v1/calendar.ts +308 -0
  5. package/dist/clu/clu-zwave-2/fv515_03/clu-zwave-2.ts +1302 -0
  6. package/dist/clu/event-scheduler/v1/event-scheduler.ts +537 -0
  7. package/dist/clu/multi-fan-ac-thermostat/v1/multi-fan-ac-thermostat.ts +1163 -0
  8. package/dist/clu/pid-controller/v1/pid-controller.ts +536 -0
  9. package/dist/clu/presence-sensor/v1/presence-sensor.ts +313 -0
  10. package/dist/clu/presence-sensor/v2/presence-sensor.ts +470 -0
  11. package/dist/clu/push/v1/push.ts +261 -0
  12. package/dist/clu/scheduler/v1/scheduler.ts +304 -0
  13. package/dist/clu/statistics/v1/statistics.ts +413 -0
  14. package/dist/clu/statistics-pulse/v1/statistics-pulse.ts +218 -0
  15. package/dist/clu/sunrise-sunset-calendar/v1/sunrise-sunset-calendar.ts +389 -0
  16. package/dist/clu/sunrise-sunset-calendar/v2/sunrise-sunset-calendar.ts +659 -0
  17. package/dist/clu/sunrise-sunset-calendar/v3/sunrise-sunset-calendar.ts +659 -0
  18. package/dist/clu/thermostat/v1/thermostat.ts +768 -0
  19. package/dist/clu/thermostat/v2/thermostat.ts +861 -0
  20. package/dist/clu/timer/v1/timer.ts +369 -0
  21. package/dist/core/execution-builder.ts +55 -0
  22. package/dist/core/remote-gate.ts +17 -0
  23. package/dist/digital-in-din/fv02_01/din.ts +310 -0
  24. package/dist/examples/light_turned_on_by_calendar/Clu_OnInit.ts +26 -0
  25. package/dist/examples/light_turned_on_by_presence_sensor/Clu_OnInit.ts +35 -0
  26. package/dist/examples/light_turned_on_by_switch/Clu_OnInit.ts +16 -0
  27. package/dist/gate/cool-master/v1/cool-master.ts +782 -0
  28. package/dist/gate/cool-master-net/v1/cool-master-net.ts +334 -0
  29. package/dist/gate/denon-marantz-avr/v1/denon-marantz-avr.ts +724 -0
  30. package/dist/gate/heos/v1/heos.ts +1224 -0
  31. package/dist/gate/http/fv1000_03/clu-gate-http.ts +405 -0
  32. package/dist/gate/http/fv1000_03_hv1/clu-gate-http.ts +352 -0
  33. package/dist/gate/http/fv1100_03/clu-gate-http.ts +589 -0
  34. package/dist/gate/http/fv1110_03/clu-gate-http.ts +589 -0
  35. package/dist/gate/http/fv1300_03/clu-gate-http.ts +589 -0
  36. package/dist/gate/http/fv1400_03/clu-gate-http.ts +677 -0
  37. package/dist/gate/http-listener/v1/http-listener.ts +299 -0
  38. package/dist/gate/http-listener/v2/http-listener.ts +325 -0
  39. package/dist/gate/http-request/v1/http-request.ts +645 -0
  40. package/dist/gate/http-request/v2/http-request.ts +709 -0
  41. package/dist/gate/input/v1/input.ts +171 -0
  42. package/dist/gate/jablotron/v1/jablotron.ts +100 -0
  43. package/dist/gate/jablotron-device/v1/jablotron-device.ts +171 -0
  44. package/dist/gate/jablotron-output/v1/jablotron-output.ts +240 -0
  45. package/dist/gate/jablotron-section/v1/jablotron-section.ts +260 -0
  46. package/dist/gate/modbus/v1/modbus.ts +609 -0
  47. package/dist/gate/modbus/v2/modbus.ts +690 -0
  48. package/dist/gate/modbus-client/v1/modbus-client.ts +827 -0
  49. package/dist/gate/modbus-rtu/v1/modbus-rtu.ts +911 -0
  50. package/dist/gate/modbus-server/v1/modbus-server.ts +405 -0
  51. package/dist/gate/modbus-slave-config-rtu/v1/modbus-slave-config-rtu.ts +160 -0
  52. package/dist/gate/modbus-slave-rtu/v1/modbus-slave-rtu.ts +371 -0
  53. package/dist/gate/modbus-value/v1/modbus-value.ts +856 -0
  54. package/dist/gate/music-cast/v1/music-cast.ts +1298 -0
  55. package/dist/gate/output/v1/output.ts +240 -0
  56. package/dist/gate/satel/v1/satel.ts +359 -0
  57. package/dist/gate/satel-input/v1/satel-input.ts +171 -0
  58. package/dist/gate/satel-output/v1/satel-output.ts +240 -0
  59. package/dist/gate/satel-zone/v1/satel-zone.ts +235 -0
  60. package/dist/gate/sonos/v1/sonos.ts +934 -0
  61. package/dist/gate/timer/v2/timer.ts +253 -0
  62. package/dist/gate/zone/v1/zone.ts +235 -0
  63. package/dist/io-module-din-8/fv02_02/din.ts +354 -0
  64. package/dist/io-module-din-8/fv02_02/dout.ts +360 -0
  65. package/dist/one-wire/fv01_10/onew-sensor.ts +269 -0
  66. package/dist/one-wire/fv01_28/onew-sensor.ts +269 -0
  67. package/dist/one-wire/fv02_28/onew-sensor.ts +350 -0
  68. package/dist/one-wire/fv03_28/onew-sensor.ts +435 -0
  69. package/dist/relay-din-2/fv02_02/dout.ts +544 -0
  70. package/dist/relay-din-4/fv01_02/dout.ts +340 -0
  71. package/dist/relay-din-4/fv02_02/dout.ts +368 -0
  72. package/dist/roller-shutter-din-3/fv03_02/roller-shutter.ts +1078 -0
  73. package/dist/smart-panel-fm-4/fv03_03/panel-button.ts +550 -0
  74. package/dist/smart-panel-fm-4/fv03_03/panel-sens-light.ts +238 -0
  75. package/dist/smart-panel-fm-4/fv03_03/panel-sens-temp.ts +239 -0
  76. package/dist/smart-panel-fm-4/fv03_03/panel.ts +700 -0
  77. package/dist/smart-panel-fm-4/fv04_03/panel-button.ts +567 -0
  78. package/dist/smart-panel-fm-4/fv04_03/panel-page.ts +516 -0
  79. package/dist/smart-panel-fm-4/fv04_03/panel-sens-light.ts +238 -0
  80. package/dist/smart-panel-fm-4/fv04_03/panel-sens-temp.ts +239 -0
  81. package/dist/smart-panel-fm-4/fv04_03/panel.ts +1026 -0
  82. package/dist/smart-panel-fm-4/fv05_03/panel-button.ts +567 -0
  83. package/dist/smart-panel-fm-4/fv05_03/panel-page.ts +620 -0
  84. package/dist/smart-panel-fm-4/fv05_03/panel-sens-light.ts +238 -0
  85. package/dist/smart-panel-fm-4/fv05_03/panel-sens-temp.ts +266 -0
  86. package/dist/smart-panel-fm-4/fv05_03/panel.ts +1109 -0
  87. package/dist/smart-panel-fm-4/fv06_03/panel-button.ts +567 -0
  88. package/dist/smart-panel-fm-4/fv06_03/panel-page.ts +877 -0
  89. package/dist/smart-panel-fm-4/fv06_03/panel-sens-light.ts +238 -0
  90. package/dist/smart-panel-fm-4/fv06_03/panel-sens-temp.ts +297 -0
  91. package/dist/smart-panel-fm-4/fv06_03/panel.ts +1138 -0
  92. package/dist/smart-panel-fm-4/fv07_03/panel-button.ts +567 -0
  93. package/dist/smart-panel-fm-4/fv07_03/panel-page.ts +864 -0
  94. package/dist/smart-panel-fm-4/fv07_03/panel-sens-light.ts +238 -0
  95. package/dist/smart-panel-fm-4/fv07_03/panel-sens-temp.ts +297 -0
  96. package/dist/smart-panel-fm-4/fv07_03/panel.ts +1135 -0
  97. package/dist/touch-panel-fm-4/fv01_02/panel-button.ts +418 -0
  98. package/dist/touch-panel-fm-4/fv01_02/panel-sens-light.ts +238 -0
  99. package/dist/touch-panel-fm-4/fv01_02/panel-sens-temp.ts +257 -0
  100. package/dist/touch-panel-fm-4/fv01_02/panel.ts +75 -0
  101. package/dist/touch-panel-fm-4/fv01_02/power-supply-voltage.ts +322 -0
  102. package/dist/touch-panel-fm-8/fv01_02/panel-button.ts +418 -0
  103. package/dist/touch-panel-fm-8/fv01_02/panel-sens-light.ts +238 -0
  104. package/dist/touch-panel-fm-8/fv01_02/panel-sens-temp.ts +270 -0
  105. package/dist/touch-panel-fm-8/fv01_02/panel.ts +75 -0
  106. package/dist/touch-panel-fm-8/fv01_02/power-supply-voltage.ts +322 -0
  107. package/package.json +16 -0
@@ -0,0 +1,340 @@
1
+ import { rawExecutionBuilderFactory } from "../../core/execution-builder"
2
+ import { RemoteGate } from "../../core/remote-gate"
3
+
4
+ enum EventType {
5
+ OnValueChange = 0,
6
+ OnSwitchOn = 1,
7
+ OnSwitchOff = 2,
8
+ OnOverload = 3
9
+ }
10
+
11
+ enum PropertyType {
12
+ Value = 0,
13
+ StatisticState = 1,
14
+ Load = 2,
15
+ VoltageType = 3,
16
+ VoltageValue = 4,
17
+ Power = 5,
18
+ DistributedLogicGroup = 6,
19
+ Overload = 7
20
+ }
21
+
22
+ enum MethodType {
23
+ Switch = 0,
24
+ SwitchOn = 1,
25
+ SwitchOff = 2
26
+ }
27
+
28
+ enum StatisticStateType {
29
+ Off = 0,
30
+ Continuous = 1,
31
+ Real = 3
32
+ }
33
+
34
+ enum VoltageType {
35
+ AC = 0,
36
+ DC = 1,
37
+ Signal = 2
38
+ }
39
+
40
+ declare class DOutRaw {
41
+ add_event(event: EventType, callback: () => void): void;
42
+ get(property: PropertyType): any;
43
+ set(property: PropertyType, value: any): void;
44
+ execute(method: MethodType, ...args: any[]): any;
45
+ }
46
+
47
+ interface IDOut {
48
+ addOnValueChange: (callback: () => void) => void
49
+ addOnSwitchOn: (callback: () => void) => void
50
+ addOnSwitchOff: (callback: () => void) => void
51
+ addOnOverload: (callback: () => void) => void
52
+ switch: (miliseconds: number) => void
53
+ switchOn: (miliseconds: number) => void
54
+ switchOff: (miliseconds: number) => void
55
+ value: boolean
56
+ voltageType: VoltageType
57
+ voltageValue: number
58
+ readonly power: number
59
+ overload: number
60
+ distributedLogicGroup: number
61
+ statisticState: StatisticStateType
62
+ load: number
63
+ }
64
+
65
+ class DOut implements IDOut {
66
+ private onValueChangeCallbacks: Array<() => void> = [];
67
+ private onSwitchOnCallbacks: Array<() => void> = [];
68
+ private onSwitchOffCallbacks: Array<() => void> = [];
69
+ private onOverloadCallbacks: Array<() => void> = [];
70
+
71
+ constructor(private raw: DOutRaw) {
72
+ this.raw.add_event(EventType.OnValueChange, () => {
73
+ this.onValueChangeCallbacks.forEach(callback => {
74
+ callback();
75
+ });
76
+ });
77
+
78
+ this.raw.add_event(EventType.OnSwitchOn, () => {
79
+ this.onSwitchOnCallbacks.forEach(callback => {
80
+ callback();
81
+ });
82
+ });
83
+
84
+ this.raw.add_event(EventType.OnSwitchOff, () => {
85
+ this.onSwitchOffCallbacks.forEach(callback => {
86
+ callback();
87
+ });
88
+ });
89
+
90
+ this.raw.add_event(EventType.OnOverload, () => {
91
+ this.onOverloadCallbacks.forEach(callback => {
92
+ callback();
93
+ });
94
+ });
95
+ }
96
+
97
+ addOnValueChange(callback: () => void): void {
98
+ this.onValueChangeCallbacks.push(callback);
99
+ }
100
+ addOnSwitchOn(callback: () => void): void {
101
+ this.onSwitchOnCallbacks.push(callback);
102
+ }
103
+ addOnSwitchOff(callback: () => void): void {
104
+ this.onSwitchOffCallbacks.push(callback);
105
+ }
106
+ addOnOverload(callback: () => void): void {
107
+ this.onOverloadCallbacks.push(callback);
108
+ }
109
+ switch(miliseconds: number): void {
110
+ this.raw.execute(MethodType.Switch, miliseconds);
111
+ }
112
+ switchOn(miliseconds: number): void {
113
+ this.raw.execute(MethodType.SwitchOn, miliseconds);
114
+ }
115
+ switchOff(miliseconds: number): void {
116
+ this.raw.execute(MethodType.SwitchOff, miliseconds);
117
+ }
118
+ get value(): boolean {
119
+ return this.raw.get(PropertyType.Value) === 1;
120
+ }
121
+ set value(val: boolean) {
122
+ this.raw.set(PropertyType.Value, val ? 1 : 0);
123
+ }
124
+ get voltageType(): VoltageType {
125
+ return this.raw.get(PropertyType.VoltageType);
126
+ }
127
+ set voltageType(value: VoltageType) {
128
+ this.raw.set(PropertyType.VoltageType, value);
129
+ }
130
+ get voltageValue(): number {
131
+ return this.raw.get(PropertyType.VoltageValue);
132
+ }
133
+ set voltageValue(value: number) {
134
+ this.raw.set(PropertyType.VoltageValue, value);
135
+ }
136
+ get power(): number {
137
+ return this.raw.get(PropertyType.Power);
138
+ }
139
+ get overload(): number {
140
+ return this.raw.get(PropertyType.Overload);
141
+ }
142
+ set overload(value: number) {
143
+ this.raw.set(PropertyType.Overload, value);
144
+ }
145
+ get distributedLogicGroup(): number {
146
+ return this.raw.get(PropertyType.DistributedLogicGroup);
147
+ }
148
+ set distributedLogicGroup(value: number) {
149
+ this.raw.set(PropertyType.DistributedLogicGroup, value);
150
+ }
151
+ get statisticState(): StatisticStateType {
152
+ return this.raw.get(PropertyType.StatisticState);
153
+ }
154
+ set statisticState(value: StatisticStateType) {
155
+ this.raw.set(PropertyType.StatisticState, value);
156
+ }
157
+ get load(): number {
158
+ return this.raw.get(PropertyType.Load);
159
+ }
160
+ set load(value: number) {
161
+ this.raw.set(PropertyType.Load, value);
162
+ }
163
+ }
164
+
165
+ class DOutRemote implements IDOut {
166
+ constructor(private objectName: string, private gate: RemoteGate) {
167
+
168
+ }
169
+
170
+ addOnValueChange(_callback: () => void): void {
171
+ // Remote events are not supported
172
+ }
173
+ addOnSwitchOn(_callback: () => void): void {
174
+ // Remote events are not supported
175
+ }
176
+ addOnSwitchOff(_callback: () => void): void {
177
+ // Remote events are not supported
178
+ }
179
+ addOnOverload(_callback: () => void): void {
180
+ // Remote events are not supported
181
+ }
182
+
183
+ switch(miliseconds: number): void {
184
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
185
+ .execute()
186
+ .addParameter(MethodType.Switch)
187
+ .addParameter(miliseconds)
188
+ .build();
189
+ this.gate.runScript(cmd!);
190
+ }
191
+
192
+ switchOn(miliseconds: number): void {
193
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
194
+ .execute()
195
+ .addParameter(MethodType.SwitchOn)
196
+ .addParameter(miliseconds)
197
+ .build();
198
+ this.gate.runScript(cmd!);
199
+ }
200
+
201
+ switchOff(miliseconds: number): void {
202
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
203
+ .execute()
204
+ .addParameter(MethodType.SwitchOff)
205
+ .addParameter(miliseconds)
206
+ .build();
207
+ this.gate.runScript(cmd!);
208
+ }
209
+
210
+ get value(): boolean {
211
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
212
+ .get()
213
+ .addParameter(PropertyType.Value)
214
+ .build();
215
+ return this.gate.runScript(cmd!) === 1;
216
+ }
217
+
218
+ set value(val: boolean) {
219
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
220
+ .set()
221
+ .addParameter(PropertyType.Value)
222
+ .addParameter(val ? 1 : 0)
223
+ .build();
224
+ this.gate.runScript(cmd!);
225
+ }
226
+
227
+ get voltageType(): VoltageType {
228
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
229
+ .get()
230
+ .addParameter(PropertyType.VoltageType)
231
+ .build();
232
+ return this.gate.runScript(cmd!);
233
+ }
234
+
235
+ set voltageType(value: VoltageType) {
236
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
237
+ .set()
238
+ .addParameter(PropertyType.VoltageType)
239
+ .addParameter(value)
240
+ .build();
241
+ this.gate.runScript(cmd!);
242
+ }
243
+
244
+ get voltageValue(): number {
245
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
246
+ .get()
247
+ .addParameter(PropertyType.VoltageValue)
248
+ .build();
249
+ return this.gate.runScript(cmd!);
250
+ }
251
+
252
+ set voltageValue(value: number) {
253
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
254
+ .set()
255
+ .addParameter(PropertyType.VoltageValue)
256
+ .addParameter(value)
257
+ .build();
258
+ this.gate.runScript(cmd!);
259
+ }
260
+
261
+ get power(): number {
262
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
263
+ .get()
264
+ .addParameter(PropertyType.Power)
265
+ .build();
266
+ return this.gate.runScript(cmd!);
267
+ }
268
+
269
+ get overload(): number {
270
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
271
+ .get()
272
+ .addParameter(PropertyType.Overload)
273
+ .build();
274
+ return this.gate.runScript(cmd!);
275
+ }
276
+
277
+ set overload(value: number) {
278
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
279
+ .set()
280
+ .addParameter(PropertyType.Overload)
281
+ .addParameter(value)
282
+ .build();
283
+ this.gate.runScript(cmd!);
284
+ }
285
+
286
+ get distributedLogicGroup(): number {
287
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
288
+ .get()
289
+ .addParameter(PropertyType.DistributedLogicGroup)
290
+ .build();
291
+ return this.gate.runScript(cmd!);
292
+ }
293
+
294
+ set distributedLogicGroup(value: number) {
295
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
296
+ .set()
297
+ .addParameter(PropertyType.DistributedLogicGroup)
298
+ .addParameter(value)
299
+ .build();
300
+ this.gate.runScript(cmd!);
301
+ }
302
+
303
+ get statisticState(): StatisticStateType {
304
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
305
+ .get()
306
+ .addParameter(PropertyType.StatisticState)
307
+ .build();
308
+ return this.gate.runScript(cmd!);
309
+ }
310
+
311
+ set statisticState(value: StatisticStateType) {
312
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
313
+ .set()
314
+ .addParameter(PropertyType.StatisticState)
315
+ .addParameter(value)
316
+ .build();
317
+ this.gate.runScript(cmd!);
318
+ }
319
+
320
+ get load(): number {
321
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
322
+ .get()
323
+ .addParameter(PropertyType.Load)
324
+ .build();
325
+ return this.gate.runScript(cmd!);
326
+ }
327
+
328
+ set load(value: number) {
329
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
330
+ .set()
331
+ .addParameter(PropertyType.Load)
332
+ .addParameter(value)
333
+ .build();
334
+ this.gate.runScript(cmd!);
335
+ }
336
+ }
337
+
338
+ export {
339
+ DOut, DOutRaw, DOutRemote, StatisticStateType, VoltageType
340
+ }
@@ -0,0 +1,368 @@
1
+ import { rawExecutionBuilderFactory } from "../../core/execution-builder"
2
+ import { RemoteGate } from "../../core/remote-gate"
3
+
4
+ enum EventType {
5
+ OnValueChange = 0,
6
+ OnSwitchOn = 1,
7
+ OnSwitchOff = 2,
8
+ OnOverload = 3
9
+ }
10
+
11
+ enum PropertyType {
12
+ Value = 0,
13
+ StatisticState = 1,
14
+ Load = 2,
15
+ VoltageType = 3,
16
+ VoltageValue = 4,
17
+ Power = 5,
18
+ DistributedLogicGroup = 6,
19
+ Overload = 7
20
+ }
21
+
22
+ enum MethodType {
23
+ SetValue = 0,
24
+ Switch = 0,
25
+ SwitchOn = 1,
26
+ SwitchOff = 2,
27
+ SetOverload = 7
28
+ }
29
+
30
+ enum StatisticStateType {
31
+ Off = 0,
32
+ Continuous = 1,
33
+ Real = 3
34
+ }
35
+
36
+ enum VoltageType {
37
+ AC = 0,
38
+ DC = 1,
39
+ Signal = 2
40
+ }
41
+
42
+ declare class DOutRaw {
43
+ add_event(event: EventType, callback: () => void): void;
44
+ get(property: PropertyType): any;
45
+ set(property: PropertyType, value: any): void;
46
+ execute(method: MethodType, ...args: any[]): any;
47
+ }
48
+
49
+ interface IDOut {
50
+ addOnValueChange: (callback: () => void) => void
51
+ addOnSwitchOn: (callback: () => void) => void
52
+ addOnSwitchOff: (callback: () => void) => void
53
+ addOnOverload: (callback: () => void) => void
54
+ setValue: (value: number) => void
55
+ switch: (miliseconds: number) => void
56
+ switchOn: (miliseconds: number) => void
57
+ switchOff: (miliseconds: number) => void
58
+ setOverload: (overload: number) => void
59
+ value: boolean
60
+ voltageType: VoltageType
61
+ voltageValue: number
62
+ readonly power: number
63
+ overload: number
64
+ distributedLogicGroup: number
65
+ statisticState: StatisticStateType
66
+ load: number
67
+ }
68
+
69
+ class DOut implements IDOut {
70
+ private onValueChangeCallbacks: Array<() => void> = [];
71
+ private onSwitchOnCallbacks: Array<() => void> = [];
72
+ private onSwitchOffCallbacks: Array<() => void> = [];
73
+ private onOverloadCallbacks: Array<() => void> = [];
74
+
75
+ constructor(private raw: DOutRaw) {
76
+ this.raw.add_event(EventType.OnValueChange, () => {
77
+ this.onValueChangeCallbacks.forEach(callback => {
78
+ callback();
79
+ });
80
+ });
81
+
82
+ this.raw.add_event(EventType.OnSwitchOn, () => {
83
+ this.onSwitchOnCallbacks.forEach(callback => {
84
+ callback();
85
+ });
86
+ });
87
+
88
+ this.raw.add_event(EventType.OnSwitchOff, () => {
89
+ this.onSwitchOffCallbacks.forEach(callback => {
90
+ callback();
91
+ });
92
+ });
93
+
94
+ this.raw.add_event(EventType.OnOverload, () => {
95
+ this.onOverloadCallbacks.forEach(callback => {
96
+ callback();
97
+ });
98
+ });
99
+ }
100
+
101
+ addOnValueChange(callback: () => void): void {
102
+ this.onValueChangeCallbacks.push(callback);
103
+ }
104
+ addOnSwitchOn(callback: () => void): void {
105
+ this.onSwitchOnCallbacks.push(callback);
106
+ }
107
+ addOnSwitchOff(callback: () => void): void {
108
+ this.onSwitchOffCallbacks.push(callback);
109
+ }
110
+ addOnOverload(callback: () => void): void {
111
+ this.onOverloadCallbacks.push(callback);
112
+ }
113
+ setValue(value: number): void {
114
+ this.raw.set(PropertyType.Value, value);
115
+ }
116
+ switch(miliseconds: number): void {
117
+ this.raw.execute(MethodType.Switch, miliseconds);
118
+ }
119
+ switchOn(miliseconds: number): void {
120
+ this.raw.execute(MethodType.SwitchOn, miliseconds);
121
+ }
122
+ switchOff(miliseconds: number): void {
123
+ this.raw.execute(MethodType.SwitchOff, miliseconds);
124
+ }
125
+ setOverload(overload: number): void {
126
+ this.raw.set(PropertyType.Overload, overload);
127
+ }
128
+ get value(): boolean {
129
+ return this.raw.get(PropertyType.Value) === 1;
130
+ }
131
+ set value(val: boolean) {
132
+ this.raw.set(PropertyType.Value, val ? 1 : 0);
133
+ }
134
+ get voltageType(): VoltageType {
135
+ return this.raw.get(PropertyType.VoltageType);
136
+ }
137
+ set voltageType(value: VoltageType) {
138
+ this.raw.set(PropertyType.VoltageType, value);
139
+ }
140
+ get voltageValue(): number {
141
+ return this.raw.get(PropertyType.VoltageValue);
142
+ }
143
+ set voltageValue(value: number) {
144
+ this.raw.set(PropertyType.VoltageValue, value);
145
+ }
146
+ get power(): number {
147
+ return this.raw.get(PropertyType.Power);
148
+ }
149
+ get overload(): number {
150
+ return this.raw.get(PropertyType.Overload);
151
+ }
152
+ set overload(value: number) {
153
+ this.raw.set(PropertyType.Overload, value);
154
+ }
155
+ get distributedLogicGroup(): number {
156
+ return this.raw.get(PropertyType.DistributedLogicGroup);
157
+ }
158
+ set distributedLogicGroup(value: number) {
159
+ this.raw.set(PropertyType.DistributedLogicGroup, value);
160
+ }
161
+ get statisticState(): StatisticStateType {
162
+ return this.raw.get(PropertyType.StatisticState);
163
+ }
164
+ set statisticState(value: StatisticStateType) {
165
+ this.raw.set(PropertyType.StatisticState, value);
166
+ }
167
+ get load(): number {
168
+ return this.raw.get(PropertyType.Load);
169
+ }
170
+ set load(value: number) {
171
+ this.raw.set(PropertyType.Load, value);
172
+ }
173
+ }
174
+
175
+ class DOutRemote implements IDOut {
176
+ constructor(private objectName: string, private gate: RemoteGate) {
177
+
178
+ }
179
+
180
+ addOnValueChange(_callback: () => void): void {
181
+ // Remote events are not supported
182
+ }
183
+ addOnSwitchOn(_callback: () => void): void {
184
+ // Remote events are not supported
185
+ }
186
+ addOnSwitchOff(_callback: () => void): void {
187
+ // Remote events are not supported
188
+ }
189
+ addOnOverload(_callback: () => void): void {
190
+ // Remote events are not supported
191
+ }
192
+
193
+ setValue(value: number): void {
194
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
195
+ .set()
196
+ .addParameter(PropertyType.Value)
197
+ .addParameter(value)
198
+ .build();
199
+ this.gate.runScript(cmd!);
200
+ }
201
+
202
+ switch(miliseconds: number): void {
203
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
204
+ .execute()
205
+ .addParameter(MethodType.Switch)
206
+ .addParameter(miliseconds)
207
+ .build();
208
+ this.gate.runScript(cmd!);
209
+ }
210
+
211
+ switchOn(miliseconds: number): void {
212
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
213
+ .execute()
214
+ .addParameter(MethodType.SwitchOn)
215
+ .addParameter(miliseconds)
216
+ .build();
217
+ this.gate.runScript(cmd!);
218
+ }
219
+
220
+ switchOff(miliseconds: number): void {
221
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
222
+ .execute()
223
+ .addParameter(MethodType.SwitchOff)
224
+ .addParameter(miliseconds)
225
+ .build();
226
+ this.gate.runScript(cmd!);
227
+ }
228
+
229
+ setOverload(overload: number): void {
230
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
231
+ .set()
232
+ .addParameter(PropertyType.Overload)
233
+ .addParameter(overload)
234
+ .build();
235
+ this.gate.runScript(cmd!);
236
+ }
237
+
238
+ get value(): boolean {
239
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
240
+ .get()
241
+ .addParameter(PropertyType.Value)
242
+ .build();
243
+ return this.gate.runScript(cmd!) === 1;
244
+ }
245
+
246
+ set value(val: boolean) {
247
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
248
+ .set()
249
+ .addParameter(PropertyType.Value)
250
+ .addParameter(val ? 1 : 0)
251
+ .build();
252
+ this.gate.runScript(cmd!);
253
+ }
254
+
255
+ get voltageType(): VoltageType {
256
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
257
+ .get()
258
+ .addParameter(PropertyType.VoltageType)
259
+ .build();
260
+ return this.gate.runScript(cmd!);
261
+ }
262
+
263
+ set voltageType(value: VoltageType) {
264
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
265
+ .set()
266
+ .addParameter(PropertyType.VoltageType)
267
+ .addParameter(value)
268
+ .build();
269
+ this.gate.runScript(cmd!);
270
+ }
271
+
272
+ get voltageValue(): number {
273
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
274
+ .get()
275
+ .addParameter(PropertyType.VoltageValue)
276
+ .build();
277
+ return this.gate.runScript(cmd!);
278
+ }
279
+
280
+ set voltageValue(value: number) {
281
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
282
+ .set()
283
+ .addParameter(PropertyType.VoltageValue)
284
+ .addParameter(value)
285
+ .build();
286
+ this.gate.runScript(cmd!);
287
+ }
288
+
289
+ get power(): number {
290
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
291
+ .get()
292
+ .addParameter(PropertyType.Power)
293
+ .build();
294
+ return this.gate.runScript(cmd!);
295
+ }
296
+
297
+ get overload(): number {
298
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
299
+ .get()
300
+ .addParameter(PropertyType.Overload)
301
+ .build();
302
+ return this.gate.runScript(cmd!);
303
+ }
304
+
305
+ set overload(value: number) {
306
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
307
+ .set()
308
+ .addParameter(PropertyType.Overload)
309
+ .addParameter(value)
310
+ .build();
311
+ this.gate.runScript(cmd!);
312
+ }
313
+
314
+ get distributedLogicGroup(): number {
315
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
316
+ .get()
317
+ .addParameter(PropertyType.DistributedLogicGroup)
318
+ .build();
319
+ return this.gate.runScript(cmd!);
320
+ }
321
+
322
+ set distributedLogicGroup(value: number) {
323
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
324
+ .set()
325
+ .addParameter(PropertyType.DistributedLogicGroup)
326
+ .addParameter(value)
327
+ .build();
328
+ this.gate.runScript(cmd!);
329
+ }
330
+
331
+ get statisticState(): StatisticStateType {
332
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
333
+ .get()
334
+ .addParameter(PropertyType.StatisticState)
335
+ .build();
336
+ return this.gate.runScript(cmd!);
337
+ }
338
+
339
+ set statisticState(value: StatisticStateType) {
340
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
341
+ .set()
342
+ .addParameter(PropertyType.StatisticState)
343
+ .addParameter(value)
344
+ .build();
345
+ this.gate.runScript(cmd!);
346
+ }
347
+
348
+ get load(): number {
349
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
350
+ .get()
351
+ .addParameter(PropertyType.Load)
352
+ .build();
353
+ return this.gate.runScript(cmd!);
354
+ }
355
+
356
+ set load(value: number) {
357
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
358
+ .set()
359
+ .addParameter(PropertyType.Load)
360
+ .addParameter(value)
361
+ .build();
362
+ this.gate.runScript(cmd!);
363
+ }
364
+ }
365
+
366
+ export {
367
+ DOut, DOutRaw, DOutRemote, StatisticStateType, VoltageType
368
+ }