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,354 @@
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
+ OnShortPress = 3,
9
+ OnLongPress = 4,
10
+ OnHold = 5,
11
+ OnClick = 6
12
+ }
13
+
14
+ enum PropertyType {
15
+ Value = 0,
16
+ Inertion = 1,
17
+ HoldDelay = 2,
18
+ HoldInterval = 3,
19
+ StatisticState = 4,
20
+ Load = 5,
21
+ DistributedLogicGroup = 6
22
+ }
23
+
24
+ enum MethodType {
25
+ SetInertion = 1,
26
+ SetHoldDelay = 2,
27
+ SetHoldInterval = 3
28
+ }
29
+
30
+ enum StatisticStateType {
31
+ Off = 0,
32
+ Continuous = 1,
33
+ Pulse = 2
34
+ }
35
+
36
+ declare class DInRaw {
37
+ add_event(event: EventType, callback: () => void): void;
38
+ get(property: PropertyType): any;
39
+ set(property: PropertyType, value: any): void;
40
+ execute(method: MethodType, ...args: any[]): any;
41
+ }
42
+
43
+ interface IDIn {
44
+ addOnValueChange: (callback: () => void) => void
45
+ addOnSwitchOn: (callback: () => void) => void
46
+ addOnSwitchOff: (callback: () => void) => void
47
+ addOnShortPress: (callback: () => void) => void
48
+ addOnLongPress: (callback: () => void) => void
49
+ addOnHold: (callback: () => void) => void
50
+ addOnClick: (callback: () => void) => void
51
+ setInertion: (inertion: number) => void
52
+ setHoldDelay: (holdDelay: number) => void
53
+ setHoldInterval: (holdInterval: number) => void
54
+ readonly value: boolean
55
+ inertion: number
56
+ holdDelay: number
57
+ holdInterval: number
58
+ statisticState: StatisticStateType
59
+ load: number
60
+ distributedLogicGroup: number
61
+ }
62
+
63
+ class DIn implements IDIn {
64
+ private onValueChangeCallbacks: Array<() => void> = [];
65
+ private onSwitchOnCallbacks: Array<() => void> = [];
66
+ private onSwitchOffCallbacks: Array<() => void> = [];
67
+ private onShortPressCallbacks: Array<() => void> = [];
68
+ private onLongPressCallbacks: Array<() => void> = [];
69
+ private onHoldCallbacks: Array<() => void> = [];
70
+ private onClickCallbacks: Array<() => void> = [];
71
+
72
+ constructor(private raw: DInRaw) {
73
+ this.raw.add_event(EventType.OnValueChange, () => {
74
+ this.onValueChangeCallbacks.forEach(callback => {
75
+ callback();
76
+ });
77
+ });
78
+
79
+ this.raw.add_event(EventType.OnSwitchOn, () => {
80
+ this.onSwitchOnCallbacks.forEach(callback => {
81
+ callback();
82
+ });
83
+ });
84
+
85
+ this.raw.add_event(EventType.OnSwitchOff, () => {
86
+ this.onSwitchOffCallbacks.forEach(callback => {
87
+ callback();
88
+ });
89
+ });
90
+
91
+ this.raw.add_event(EventType.OnShortPress, () => {
92
+ this.onShortPressCallbacks.forEach(callback => {
93
+ callback();
94
+ });
95
+ });
96
+
97
+ this.raw.add_event(EventType.OnLongPress, () => {
98
+ this.onLongPressCallbacks.forEach(callback => {
99
+ callback();
100
+ });
101
+ });
102
+
103
+ this.raw.add_event(EventType.OnHold, () => {
104
+ this.onHoldCallbacks.forEach(callback => {
105
+ callback();
106
+ });
107
+ });
108
+
109
+ this.raw.add_event(EventType.OnClick, () => {
110
+ this.onClickCallbacks.forEach(callback => {
111
+ callback();
112
+ });
113
+ });
114
+ }
115
+
116
+ addOnValueChange(callback: () => void): void {
117
+ this.onValueChangeCallbacks.push(callback);
118
+ }
119
+ addOnSwitchOn(callback: () => void): void {
120
+ this.onSwitchOnCallbacks.push(callback);
121
+ }
122
+ addOnSwitchOff(callback: () => void): void {
123
+ this.onSwitchOffCallbacks.push(callback);
124
+ }
125
+ addOnShortPress(callback: () => void): void {
126
+ this.onShortPressCallbacks.push(callback);
127
+ }
128
+ addOnLongPress(callback: () => void): void {
129
+ this.onLongPressCallbacks.push(callback);
130
+ }
131
+ addOnHold(callback: () => void): void {
132
+ this.onHoldCallbacks.push(callback);
133
+ }
134
+ addOnClick(callback: () => void): void {
135
+ this.onClickCallbacks.push(callback);
136
+ }
137
+ setInertion(inertion: number): void {
138
+ this.raw.set(PropertyType.Inertion, inertion);
139
+ }
140
+ setHoldDelay(holdDelay: number): void {
141
+ this.raw.set(PropertyType.HoldDelay, holdDelay);
142
+ }
143
+ setHoldInterval(holdInterval: number): void {
144
+ this.raw.set(PropertyType.HoldInterval, holdInterval);
145
+ }
146
+ get value(): boolean {
147
+ return this.raw.get(PropertyType.Value) === 1;
148
+ }
149
+ get inertion(): number {
150
+ return this.raw.get(PropertyType.Inertion);
151
+ }
152
+ set inertion(value: number) {
153
+ this.raw.set(PropertyType.Inertion, value);
154
+ }
155
+ get holdDelay(): number {
156
+ return this.raw.get(PropertyType.HoldDelay);
157
+ }
158
+ set holdDelay(value: number) {
159
+ this.raw.set(PropertyType.HoldDelay, value);
160
+ }
161
+ get holdInterval(): number {
162
+ return this.raw.get(PropertyType.HoldInterval);
163
+ }
164
+ set holdInterval(value: number) {
165
+ this.raw.set(PropertyType.HoldInterval, value);
166
+ }
167
+ get statisticState(): StatisticStateType {
168
+ return this.raw.get(PropertyType.StatisticState);
169
+ }
170
+ set statisticState(value: StatisticStateType) {
171
+ this.raw.set(PropertyType.StatisticState, value);
172
+ }
173
+ get load(): number {
174
+ return this.raw.get(PropertyType.Load);
175
+ }
176
+ set load(value: number) {
177
+ this.raw.set(PropertyType.Load, value);
178
+ }
179
+ get distributedLogicGroup(): number {
180
+ return this.raw.get(PropertyType.DistributedLogicGroup);
181
+ }
182
+ set distributedLogicGroup(value: number) {
183
+ this.raw.set(PropertyType.DistributedLogicGroup, value);
184
+ }
185
+ }
186
+
187
+ class DInRemote implements IDIn {
188
+ constructor(private objectName: string, private gate: RemoteGate) {
189
+
190
+ }
191
+
192
+ addOnValueChange(_callback: () => void): void {
193
+ // Remote events are not supported
194
+ }
195
+ addOnSwitchOn(_callback: () => void): void {
196
+ // Remote events are not supported
197
+ }
198
+ addOnSwitchOff(_callback: () => void): void {
199
+ // Remote events are not supported
200
+ }
201
+ addOnShortPress(_callback: () => void): void {
202
+ // Remote events are not supported
203
+ }
204
+ addOnLongPress(_callback: () => void): void {
205
+ // Remote events are not supported
206
+ }
207
+ addOnHold(_callback: () => void): void {
208
+ // Remote events are not supported
209
+ }
210
+ addOnClick(_callback: () => void): void {
211
+ // Remote events are not supported
212
+ }
213
+
214
+ setInertion(inertion: number): void {
215
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
216
+ .set()
217
+ .addParameter(PropertyType.Inertion)
218
+ .addParameter(inertion)
219
+ .build();
220
+ this.gate.runScript(cmd!);
221
+ }
222
+
223
+ setHoldDelay(holdDelay: number): void {
224
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
225
+ .set()
226
+ .addParameter(PropertyType.HoldDelay)
227
+ .addParameter(holdDelay)
228
+ .build();
229
+ this.gate.runScript(cmd!);
230
+ }
231
+
232
+ setHoldInterval(holdInterval: number): void {
233
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
234
+ .set()
235
+ .addParameter(PropertyType.HoldInterval)
236
+ .addParameter(holdInterval)
237
+ .build();
238
+ this.gate.runScript(cmd!);
239
+ }
240
+
241
+ get value(): boolean {
242
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
243
+ .get()
244
+ .addParameter(PropertyType.Value)
245
+ .build();
246
+ return this.gate.runScript(cmd!) === 1;
247
+ }
248
+
249
+ get inertion(): number {
250
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
251
+ .get()
252
+ .addParameter(PropertyType.Inertion)
253
+ .build();
254
+ return this.gate.runScript(cmd!);
255
+ }
256
+
257
+ set inertion(value: number) {
258
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
259
+ .set()
260
+ .addParameter(PropertyType.Inertion)
261
+ .addParameter(value)
262
+ .build();
263
+ this.gate.runScript(cmd!);
264
+ }
265
+
266
+ get holdDelay(): number {
267
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
268
+ .get()
269
+ .addParameter(PropertyType.HoldDelay)
270
+ .build();
271
+ return this.gate.runScript(cmd!);
272
+ }
273
+
274
+ set holdDelay(value: number) {
275
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
276
+ .set()
277
+ .addParameter(PropertyType.HoldDelay)
278
+ .addParameter(value)
279
+ .build();
280
+ this.gate.runScript(cmd!);
281
+ }
282
+
283
+ get holdInterval(): number {
284
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
285
+ .get()
286
+ .addParameter(PropertyType.HoldInterval)
287
+ .build();
288
+ return this.gate.runScript(cmd!);
289
+ }
290
+
291
+ set holdInterval(value: number) {
292
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
293
+ .set()
294
+ .addParameter(PropertyType.HoldInterval)
295
+ .addParameter(value)
296
+ .build();
297
+ this.gate.runScript(cmd!);
298
+ }
299
+
300
+ get statisticState(): StatisticStateType {
301
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
302
+ .get()
303
+ .addParameter(PropertyType.StatisticState)
304
+ .build();
305
+ return this.gate.runScript(cmd!);
306
+ }
307
+
308
+ set statisticState(value: StatisticStateType) {
309
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
310
+ .set()
311
+ .addParameter(PropertyType.StatisticState)
312
+ .addParameter(value)
313
+ .build();
314
+ this.gate.runScript(cmd!);
315
+ }
316
+
317
+ get load(): number {
318
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
319
+ .get()
320
+ .addParameter(PropertyType.Load)
321
+ .build();
322
+ return this.gate.runScript(cmd!);
323
+ }
324
+
325
+ set load(value: number) {
326
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
327
+ .set()
328
+ .addParameter(PropertyType.Load)
329
+ .addParameter(value)
330
+ .build();
331
+ this.gate.runScript(cmd!);
332
+ }
333
+
334
+ get distributedLogicGroup(): number {
335
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
336
+ .get()
337
+ .addParameter(PropertyType.DistributedLogicGroup)
338
+ .build();
339
+ return this.gate.runScript(cmd!);
340
+ }
341
+
342
+ set distributedLogicGroup(value: number) {
343
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
344
+ .set()
345
+ .addParameter(PropertyType.DistributedLogicGroup)
346
+ .addParameter(value)
347
+ .build();
348
+ this.gate.runScript(cmd!);
349
+ }
350
+ }
351
+
352
+ export {
353
+ DIn, DInRaw, DInRemote, StatisticStateType
354
+ }
@@ -0,0 +1,360 @@
1
+ // Created from: packages/grenton-api/interfaces/module_2_0_IO_MODULE_DIN_8_fv02_02.xml, object name="DOUT"
2
+
3
+ import { rawExecutionBuilderFactory } from "../../core/execution-builder"
4
+ import { RemoteGate } from "../../core/remote-gate"
5
+
6
+ enum EventType {
7
+ OnValueChange = 0,
8
+ OnSwitchOn = 1,
9
+ OnSwitchOff = 2
10
+ }
11
+
12
+ enum PropertyType {
13
+ Value = 0,
14
+ StatisticState = 1,
15
+ Load = 2,
16
+ DistributedLogicGroup = 6
17
+ }
18
+
19
+ enum MethodType {
20
+ SetValue = 0,
21
+ Switch = 0,
22
+ SwitchOn = 1,
23
+ SwitchOff = 2
24
+ }
25
+
26
+ enum StatisticStateType {
27
+ Off = 0,
28
+ Continuous = 1
29
+ }
30
+
31
+ declare class DOutRaw {
32
+ add_event(event: EventType, callback: () => void): void;
33
+ get(property: PropertyType): any;
34
+ set(property: PropertyType, value: any): void;
35
+ execute(method: MethodType, ...args: any[]): any;
36
+ }
37
+
38
+ interface IDOut {
39
+ /**
40
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania o wartość cechy Sensitivity
41
+ * @param callback
42
+ */
43
+ addOnValueChange: (callback: () => void) => void
44
+ /**
45
+ * Zdarzenie wywoływane w momencie ustawienia stanu wysokiego na wejściu
46
+ * @param callback
47
+ */
48
+ addOnSwitchOn: (callback: () => void) => void
49
+ /**
50
+ * Zdarzenie wywoływane w momencie ustawienia stanu niskiego na wejściu
51
+ * @param callback
52
+ */
53
+ addOnSwitchOff: (callback: () => void) => void
54
+ /**
55
+ * Ustawia stan wyjścia jako 1 lub 0
56
+ * @param {number} value
57
+ */
58
+ setValue: (value: number) => void
59
+ /**
60
+ * Zmienia stan wyjścia na przeciwny. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała
61
+ * @param {number} miliseconds
62
+ */
63
+ switch: (miliseconds: number) => void
64
+ /**
65
+ * Załącza wyjście. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała
66
+ * @param {number} miliseconds
67
+ */
68
+ switchOn: (miliseconds: number) => void
69
+ /**
70
+ * Wyłącza wyjście. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała
71
+ * @param {number} miliseconds
72
+ */
73
+ switchOff: (miliseconds: number) => void
74
+ /** Wartość napięcia zasilania */
75
+ value: boolean
76
+ /** Grupa Distributed Logic - grupa broadcastowa dla rozproszonej logiki */
77
+ distributedLogicGroup: number
78
+ /** Włącza raportowanie pomiaru do modułu statystyk: Off - wyłączony, Continuous - pomiar obciążenia w całym okresie pracy urządzenia, Pulse - pomiar zliczany w momencie pojawienia się stanu wysokiego na wejściu */
79
+ statisticState: StatisticStateType
80
+ /** Mnożnik mierzonej wartości. Dla StatisticState: Continuous - wartość zużycia w jednostce czasu, Pulse - wartość zużycia dla jednego impulsu (np. 1l, 1m^3, 1kW) */
81
+ load: number
82
+ }
83
+
84
+ class DOut implements IDOut {
85
+ private onValueChangeCallbacks: Array<() => void> = [];
86
+ private onSwitchOnCallbacks: Array<() => void> = [];
87
+ private onSwitchOffCallbacks: Array<() => void> = [];
88
+
89
+ constructor(private raw: DOutRaw) {
90
+ this.raw.add_event(EventType.OnValueChange, () => {
91
+ this.onValueChangeCallbacks.forEach(callback => {
92
+ callback();
93
+ });
94
+ });
95
+
96
+ this.raw.add_event(EventType.OnSwitchOn, () => {
97
+ this.onSwitchOnCallbacks.forEach(callback => {
98
+ callback();
99
+ });
100
+ });
101
+
102
+ this.raw.add_event(EventType.OnSwitchOff, () => {
103
+ this.onSwitchOffCallbacks.forEach(callback => {
104
+ callback();
105
+ });
106
+ });
107
+ }
108
+
109
+ /**
110
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania o wartość cechy Sensitivity
111
+ * @param callback
112
+ */
113
+ addOnValueChange(callback: () => void): void {
114
+ this.onValueChangeCallbacks.push(callback);
115
+ }
116
+ /**
117
+ * Zdarzenie wywoływane w momencie ustawienia stanu wysokiego na wejściu
118
+ * @param callback
119
+ */
120
+ addOnSwitchOn(callback: () => void): void {
121
+ this.onSwitchOnCallbacks.push(callback);
122
+ }
123
+ /**
124
+ * Zdarzenie wywoływane w momencie ustawienia stanu niskiego na wejściu
125
+ * @param callback
126
+ */
127
+ addOnSwitchOff(callback: () => void): void {
128
+ this.onSwitchOffCallbacks.push(callback);
129
+ }
130
+ /**
131
+ * Ustawia stan wyjścia jako 1 lub 0
132
+ * @param {number} value
133
+ */
134
+ setValue(value: number): void {
135
+ this.raw.set(PropertyType.Value, value);
136
+ }
137
+ /** Zmienia stan wyjścia na przeciwny. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała */
138
+ switch(miliseconds: number): void {
139
+ this.raw.execute(MethodType.Switch, miliseconds);
140
+ }
141
+ /**
142
+ * Załącza wyjście. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała
143
+ * @param {number} miliseconds
144
+ */
145
+ switchOn(miliseconds: number): void {
146
+ this.raw.execute(MethodType.SwitchOn, miliseconds);
147
+ }
148
+ /**
149
+ * Wyłącza wyjście. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała
150
+ * @param {number} miliseconds
151
+ */
152
+ switchOff(miliseconds: number): void {
153
+ this.raw.execute(MethodType.SwitchOff, miliseconds);
154
+ }
155
+ /**
156
+ * Wartość napięcia zasilania
157
+ * @returns {boolean}
158
+ */
159
+ get value(): boolean {
160
+ return this.raw.get(PropertyType.Value) === 1;
161
+ }
162
+ set value(val: boolean) {
163
+ this.raw.set(PropertyType.Value, val ? 1 : 0);
164
+ }
165
+ /**
166
+ * Grupa Distributed Logic - grupa broadcastowa dla rozproszonej logiki
167
+ * @returns {number}
168
+ */
169
+ get distributedLogicGroup(): number {
170
+ return this.raw.get(PropertyType.DistributedLogicGroup);
171
+ }
172
+ set distributedLogicGroup(value: number) {
173
+ this.raw.set(PropertyType.DistributedLogicGroup, value);
174
+ }
175
+ /**
176
+ * Włącza raportowanie pomiaru do modułu statystyk: Off - wyłączony, Continuous - pomiar obciążenia w całym okresie pracy urządzenia, Pulse - pomiar zliczany w momencie pojawienia się stanu wysokiego na wejściu
177
+ * @returns {StatisticStateType}
178
+ */
179
+ get statisticState(): StatisticStateType {
180
+ return this.raw.get(PropertyType.StatisticState);
181
+ }
182
+ set statisticState(value: StatisticStateType) {
183
+ this.raw.set(PropertyType.StatisticState, value);
184
+ }
185
+ /**
186
+ * Mnożnik mierzonej wartości. Dla StatisticState: Continuous - wartość zużycia w jednostce czasu, Pulse - wartość zużycia dla jednego impulsu (np. 1l, 1m^3, 1kW)
187
+ * @returns {number}
188
+ */
189
+ get load(): number {
190
+ return this.raw.get(PropertyType.Load);
191
+ }
192
+ set load(value: number) {
193
+ this.raw.set(PropertyType.Load, value);
194
+ }
195
+ }
196
+
197
+ class DOutRemote implements IDOut {
198
+ constructor(private objectName: string, private gate: RemoteGate) {
199
+
200
+ }
201
+
202
+ /**
203
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania o wartość cechy Sensitivity
204
+ * @param callback
205
+ */
206
+ addOnValueChange(_callback: () => void): void {
207
+ // Remote events are not supported
208
+ }
209
+ /**
210
+ * Zdarzenie wywoływane w momencie ustawienia stanu wysokiego na wejściu
211
+ * @param callback
212
+ */
213
+ addOnSwitchOn(_callback: () => void): void {
214
+ // Remote events are not supported
215
+ }
216
+ /**
217
+ * Zdarzenie wywoływane w momencie ustawienia stanu niskiego na wejściu
218
+ * @param callback
219
+ */
220
+ addOnSwitchOff(_callback: () => void): void {
221
+ // Remote events are not supported
222
+ }
223
+
224
+ /**
225
+ * Ustawia stan wyjścia jako 1 lub 0
226
+ * @param {number} value
227
+ */
228
+ setValue(value: number): void {
229
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
230
+ .set()
231
+ .addParameter(PropertyType.Value)
232
+ .addParameter(value)
233
+ .build();
234
+ this.gate.runScript(cmd!);
235
+ }
236
+
237
+ /** Zmienia stan wyjścia na przeciwny. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała */
238
+ switch(miliseconds: number): void {
239
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
240
+ .execute()
241
+ .addParameter(MethodType.Switch)
242
+ .addParameter(miliseconds)
243
+ .build();
244
+ this.gate.runScript(cmd!);
245
+ }
246
+
247
+ /**
248
+ * Załącza wyjście. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała
249
+ * @param {number} miliseconds
250
+ */
251
+ switchOn(miliseconds: number): void {
252
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
253
+ .execute()
254
+ .addParameter(MethodType.SwitchOn)
255
+ .addParameter(miliseconds)
256
+ .build();
257
+ this.gate.runScript(cmd!);
258
+ }
259
+
260
+ /**
261
+ * Wyłącza wyjście. Parametr Time określa na jak długo następuje zmiana stanu, dla 0 jest ona stała
262
+ * @param {number} miliseconds
263
+ */
264
+ switchOff(miliseconds: number): void {
265
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
266
+ .execute()
267
+ .addParameter(MethodType.SwitchOff)
268
+ .addParameter(miliseconds)
269
+ .build();
270
+ this.gate.runScript(cmd!);
271
+ }
272
+
273
+ /**
274
+ * Wartość napięcia zasilania
275
+ * @returns {boolean}
276
+ */
277
+ get value(): boolean {
278
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
279
+ .get()
280
+ .addParameter(PropertyType.Value)
281
+ .build();
282
+ return this.gate.runScript(cmd!) === 1;
283
+ }
284
+
285
+ set value(val: boolean) {
286
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
287
+ .set()
288
+ .addParameter(PropertyType.Value)
289
+ .addParameter(val ? 1 : 0)
290
+ .build();
291
+ this.gate.runScript(cmd!);
292
+ }
293
+
294
+ /**
295
+ * Grupa Distributed Logic - grupa broadcastowa dla rozproszonej logiki
296
+ * @returns {number}
297
+ */
298
+ get distributedLogicGroup(): number {
299
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
300
+ .get()
301
+ .addParameter(PropertyType.DistributedLogicGroup)
302
+ .build();
303
+ return this.gate.runScript(cmd!);
304
+ }
305
+
306
+ set distributedLogicGroup(value: number) {
307
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
308
+ .set()
309
+ .addParameter(PropertyType.DistributedLogicGroup)
310
+ .addParameter(value)
311
+ .build();
312
+ this.gate.runScript(cmd!);
313
+ }
314
+
315
+ /**
316
+ * Włącza raportowanie pomiaru do modułu statystyk: Off - wyłączony, Continuous - pomiar obciążenia w całym okresie pracy urządzenia, Pulse - pomiar zliczany w momencie pojawienia się stanu wysokiego na wejściu
317
+ * @returns {StatisticStateType}
318
+ */
319
+ get statisticState(): StatisticStateType {
320
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
321
+ .get()
322
+ .addParameter(PropertyType.StatisticState)
323
+ .build();
324
+ return this.gate.runScript(cmd!);
325
+ }
326
+
327
+ set statisticState(value: StatisticStateType) {
328
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
329
+ .set()
330
+ .addParameter(PropertyType.StatisticState)
331
+ .addParameter(value)
332
+ .build();
333
+ this.gate.runScript(cmd!);
334
+ }
335
+
336
+ /**
337
+ * Mnożnik mierzonej wartości. Dla StatisticState: Continuous - wartość zużycia w jednostce czasu, Pulse - wartość zużycia dla jednego impulsu (np. 1l, 1m^3, 1kW)
338
+ * @returns {number}
339
+ */
340
+ get load(): number {
341
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
342
+ .get()
343
+ .addParameter(PropertyType.Load)
344
+ .build();
345
+ return this.gate.runScript(cmd!);
346
+ }
347
+
348
+ set load(value: number) {
349
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
350
+ .set()
351
+ .addParameter(PropertyType.Load)
352
+ .addParameter(value)
353
+ .build();
354
+ this.gate.runScript(cmd!);
355
+ }
356
+ }
357
+
358
+ export {
359
+ DOut, DOutRaw, DOutRemote, StatisticStateType
360
+ }