@bitpoolos/edge-bacnet 1.0.6 → 1.1.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 (181) hide show
  1. package/bacnet_client.js +650 -233
  2. package/bacnet_device.js +65 -16
  3. package/bacnet_gateway.html +242 -99
  4. package/bacnet_gateway.js +211 -27
  5. package/bacnet_object.js +1 -1
  6. package/bacnet_read.html +211 -133
  7. package/bacnet_read.js +24 -24
  8. package/bacnet_server.js +321 -0
  9. package/bacnet_write.html +24 -15
  10. package/bacnet_write.js +0 -2
  11. package/common.js +95 -9
  12. package/edge-bacnet-datastore.cfg +0 -0
  13. package/package.json +6 -4
  14. package/resources/confirmationservice.min.js +1 -0
  15. package/resources/confirmdialog.min.js +1 -0
  16. package/resources/fonts/primeicons.woff2 +0 -0
  17. package/resources/node-bacnet/CHANGELOG.md +481 -0
  18. package/resources/{bacstack → node-bacnet}/LICENSE.md +3 -1
  19. package/resources/node-bacnet/README.md +91 -0
  20. package/resources/node-bacnet/docs/Client.html +4422 -0
  21. package/resources/node-bacnet/docs/bacnet-icon-quad.png +0 -0
  22. package/resources/node-bacnet/docs/bacnet-icon-quad128.png +0 -0
  23. package/resources/node-bacnet/docs/bacnet-icon-quad64.png +0 -0
  24. package/resources/node-bacnet/docs/bacnet-icon-small.xcf +0 -0
  25. package/resources/node-bacnet/docs/bacnet-icon.xcf +0 -0
  26. package/resources/node-bacnet/docs/bacnet.html +7032 -0
  27. package/resources/node-bacnet/docs/client.js.html +1759 -0
  28. package/resources/node-bacnet/docs/enum.js.html +2530 -0
  29. package/resources/node-bacnet/docs/global.html +2068 -0
  30. package/resources/node-bacnet/docs/images/mocha-logo.svg +65 -0
  31. package/resources/node-bacnet/docs/index.html +283 -0
  32. package/resources/node-bacnet/docs/scripts/collapse.js +11 -0
  33. package/resources/node-bacnet/docs/scripts/jquery-3.1.1.min.js +4 -0
  34. package/resources/node-bacnet/docs/scripts/linenumber.js +26 -0
  35. package/resources/node-bacnet/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  36. package/resources/node-bacnet/docs/scripts/prettify/lang-css.js +2 -0
  37. package/resources/node-bacnet/docs/scripts/prettify/prettify.js +28 -0
  38. package/resources/node-bacnet/docs/scripts/search.js +47 -0
  39. package/resources/node-bacnet/docs/services_i-am.js.html +157 -0
  40. package/resources/node-bacnet/docs/services_time-sync.js.html +118 -0
  41. package/resources/node-bacnet/docs/services_who-is.js.html +138 -0
  42. package/resources/node-bacnet/docs/styles/jsdoc.css +683 -0
  43. package/resources/node-bacnet/docs/styles/prettify.css +82 -0
  44. package/resources/node-bacnet/examples/discover-devices.js +66 -0
  45. package/resources/node-bacnet/examples/read-device.js +510 -0
  46. package/resources/node-bacnet/examples/subscribe-cov.js +75 -0
  47. package/resources/{bacstack → node-bacnet}/index.js +3 -0
  48. package/resources/{bacstack → node-bacnet}/lib/apdu.js +56 -39
  49. package/resources/{bacstack → node-bacnet}/lib/asn1.js +550 -532
  50. package/resources/node-bacnet/lib/bvlc.js +90 -0
  51. package/resources/node-bacnet/lib/client.js +1695 -0
  52. package/resources/node-bacnet/lib/enum.js +2463 -0
  53. package/resources/node-bacnet/lib/npdu.js +123 -0
  54. package/resources/{bacstack → node-bacnet}/lib/services/add-list-element.js +12 -6
  55. package/resources/{bacstack → node-bacnet}/lib/services/alarm-acknowledge.js +3 -3
  56. package/resources/{bacstack → node-bacnet}/lib/services/alarm-summary.js +5 -4
  57. package/resources/{bacstack → node-bacnet}/lib/services/atomic-read-file.js +49 -26
  58. package/resources/{bacstack → node-bacnet}/lib/services/atomic-write-file.js +40 -23
  59. package/resources/{bacstack → node-bacnet}/lib/services/cov-notify.js +33 -17
  60. package/resources/{bacstack → node-bacnet}/lib/services/create-object.js +23 -13
  61. package/resources/{bacstack → node-bacnet}/lib/services/delete-object.js +7 -2
  62. package/resources/{bacstack → node-bacnet}/lib/services/device-communication-control.js +8 -3
  63. package/resources/{bacstack → node-bacnet}/lib/services/error.js +7 -0
  64. package/resources/{bacstack → node-bacnet}/lib/services/event-information.js +10 -9
  65. package/resources/{bacstack → node-bacnet}/lib/services/event-notify-data.js +38 -16
  66. package/resources/{bacstack → node-bacnet}/lib/services/get-enrollment-summary.js +24 -11
  67. package/resources/{bacstack → node-bacnet}/lib/services/get-event-information.js +28 -13
  68. package/resources/node-bacnet/lib/services/i-am.js +90 -0
  69. package/resources/{bacstack/lib/services/i-have-broadcast.js → node-bacnet/lib/services/i-have.js} +3 -2
  70. package/resources/{bacstack → node-bacnet}/lib/services/index.js +7 -4
  71. package/resources/{bacstack → node-bacnet}/lib/services/life-safety-operation.js +3 -2
  72. package/resources/{bacstack → node-bacnet}/lib/services/private-transfer.js +3 -2
  73. package/resources/{bacstack → node-bacnet}/lib/services/read-property-multiple.js +11 -6
  74. package/resources/{bacstack → node-bacnet}/lib/services/read-property.js +42 -24
  75. package/resources/{bacstack → node-bacnet}/lib/services/read-range.js +37 -27
  76. package/resources/node-bacnet/lib/services/register-foreign-device.js +18 -0
  77. package/resources/{bacstack → node-bacnet}/lib/services/reinitialize-device.js +9 -4
  78. package/resources/{bacstack → node-bacnet}/lib/services/subscribe-cov.js +9 -4
  79. package/resources/{bacstack → node-bacnet}/lib/services/subscribe-property.js +18 -8
  80. package/resources/{bacstack → node-bacnet}/lib/services/time-sync.js +28 -5
  81. package/resources/{bacstack → node-bacnet}/lib/services/who-has.js +3 -3
  82. package/resources/{bacstack → node-bacnet}/lib/services/who-is.js +42 -9
  83. package/resources/{bacstack → node-bacnet}/lib/services/write-property-multiple.js +33 -16
  84. package/resources/{bacstack → node-bacnet}/lib/services/write-property.js +23 -13
  85. package/resources/node-bacnet/lib/transport.js +82 -0
  86. package/resources/node-bacnet/package.json +92 -0
  87. package/resources/primeicons.css +90 -2
  88. package/resources/bacstack/.codeclimate.yml +0 -15
  89. package/resources/bacstack/.dockerignore +0 -5
  90. package/resources/bacstack/.editorconfig +0 -13
  91. package/resources/bacstack/.eslintrc.yml +0 -13
  92. package/resources/bacstack/.github/ISSUE_TEMPLATE.md +0 -26
  93. package/resources/bacstack/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  94. package/resources/bacstack/.github/workflows/ci.yml +0 -39
  95. package/resources/bacstack/.jscsrc +0 -8
  96. package/resources/bacstack/.jshintrc +0 -50
  97. package/resources/bacstack/.travis.yml +0 -27
  98. package/resources/bacstack/CHANGELOG.md +0 -232
  99. package/resources/bacstack/CODE_OF_CONDUCT.md +0 -74
  100. package/resources/bacstack/CONTRIBUTING.md +0 -77
  101. package/resources/bacstack/Dockerfile +0 -15
  102. package/resources/bacstack/FAQ.md +0 -64
  103. package/resources/bacstack/README.md +0 -157
  104. package/resources/bacstack/docker-compose.yml +0 -9
  105. package/resources/bacstack/lib/adpu.js +0 -190
  106. package/resources/bacstack/lib/bvlc.js +0 -43
  107. package/resources/bacstack/lib/client.js +0 -1028
  108. package/resources/bacstack/lib/enum.js +0 -1314
  109. package/resources/bacstack/lib/npdu.js +0 -119
  110. package/resources/bacstack/lib/services/i-am-broadcast.js +0 -51
  111. package/resources/bacstack/lib/services.js +0 -1963
  112. package/resources/bacstack/lib/transport.js +0 -52
  113. package/resources/bacstack/package-lock.json +0 -7974
  114. package/resources/bacstack/package.json +0 -84
  115. package/resources/bacstack/test/compliance/who-is.spec.js +0 -37
  116. package/resources/bacstack/test/integration/acknowledge-alarm.spec.js +0 -14
  117. package/resources/bacstack/test/integration/add-list-element.spec.js +0 -16
  118. package/resources/bacstack/test/integration/confirmed-event-notification.spec.js +0 -30
  119. package/resources/bacstack/test/integration/confirmed-private-transfer.spec.js +0 -15
  120. package/resources/bacstack/test/integration/create-object.spec.js +0 -16
  121. package/resources/bacstack/test/integration/delete-object.spec.js +0 -14
  122. package/resources/bacstack/test/integration/device-communication-control.spec.js +0 -14
  123. package/resources/bacstack/test/integration/get-alarm-summary.spec.js +0 -14
  124. package/resources/bacstack/test/integration/get-enrollment-summary.spec.js +0 -15
  125. package/resources/bacstack/test/integration/get-event-information.spec.js +0 -14
  126. package/resources/bacstack/test/integration/read-file.spec.js +0 -14
  127. package/resources/bacstack/test/integration/read-property-multiple.spec.js +0 -110
  128. package/resources/bacstack/test/integration/read-property.spec.js +0 -14
  129. package/resources/bacstack/test/integration/read-range.spec.js +0 -14
  130. package/resources/bacstack/test/integration/reinitialize-sevice.spec.js +0 -14
  131. package/resources/bacstack/test/integration/remove-list-element.spec.js +0 -16
  132. package/resources/bacstack/test/integration/subscribe-cov.spec.js +0 -14
  133. package/resources/bacstack/test/integration/subscribe-property.spec.js +0 -14
  134. package/resources/bacstack/test/integration/time-sync-utc.spec.js +0 -10
  135. package/resources/bacstack/test/integration/time-sync.spec.js +0 -10
  136. package/resources/bacstack/test/integration/unconfirmed-event-notification.spec.js +0 -28
  137. package/resources/bacstack/test/integration/unconfirmed-private-transfer.spec.js +0 -11
  138. package/resources/bacstack/test/integration/utils.js +0 -30
  139. package/resources/bacstack/test/integration/who-is.spec.js +0 -17
  140. package/resources/bacstack/test/integration/write-file.spec.js +0 -14
  141. package/resources/bacstack/test/integration/write-property-multiple.spec.js +0 -19
  142. package/resources/bacstack/test/integration/write-property.spec.js +0 -14
  143. package/resources/bacstack/test/unit/apdu.spec.js +0 -162
  144. package/resources/bacstack/test/unit/asn1.spec.js +0 -39
  145. package/resources/bacstack/test/unit/bacnet-apdu.spec.js +0 -161
  146. package/resources/bacstack/test/unit/bacnet-asn1.spec.js +0 -32
  147. package/resources/bacstack/test/unit/bacnet-bvlc.spec.js +0 -57
  148. package/resources/bacstack/test/unit/bacnet-npdu.spec.js +0 -118
  149. package/resources/bacstack/test/unit/bacnet-services.spec.js +0 -2052
  150. package/resources/bacstack/test/unit/bvlc.spec.js +0 -58
  151. package/resources/bacstack/test/unit/npdu.spec.js +0 -119
  152. package/resources/bacstack/test/unit/service-add-list-element.spec.js +0 -24
  153. package/resources/bacstack/test/unit/service-alarm-acknowledge.spec.js +0 -71
  154. package/resources/bacstack/test/unit/service-alarm-summary.spec.js +0 -22
  155. package/resources/bacstack/test/unit/service-atomic-read-file.spec.js +0 -54
  156. package/resources/bacstack/test/unit/service-atomic-write-file.spec.js +0 -56
  157. package/resources/bacstack/test/unit/service-cov-notify.spec.js +0 -98
  158. package/resources/bacstack/test/unit/service-create-object.spec.js +0 -90
  159. package/resources/bacstack/test/unit/service-delete-object.spec.js +0 -17
  160. package/resources/bacstack/test/unit/service-device-communication-control.spec.js +0 -29
  161. package/resources/bacstack/test/unit/service-error.spec.js +0 -17
  162. package/resources/bacstack/test/unit/service-event-information.spec.js +0 -48
  163. package/resources/bacstack/test/unit/service-event-notify-data.spec.js +0 -310
  164. package/resources/bacstack/test/unit/service-get-enrollment-summary.spec.js +0 -45
  165. package/resources/bacstack/test/unit/service-get-event-information.spec.js +0 -62
  166. package/resources/bacstack/test/unit/service-i-am.spec.js +0 -19
  167. package/resources/bacstack/test/unit/service-i-have-broadcast.spec.js +0 -18
  168. package/resources/bacstack/test/unit/service-life-safety-operation.spec.js +0 -19
  169. package/resources/bacstack/test/unit/service-private-transfer.spec.js +0 -18
  170. package/resources/bacstack/test/unit/service-read-property-multiple.spec.js +0 -131
  171. package/resources/bacstack/test/unit/service-read-property.spec.js +0 -541
  172. package/resources/bacstack/test/unit/service-read-range.spec.js +0 -97
  173. package/resources/bacstack/test/unit/service-reinitialize-device.spec.js +0 -27
  174. package/resources/bacstack/test/unit/service-subscribe-cov.spec.js +0 -32
  175. package/resources/bacstack/test/unit/service-subscribe-property.spec.js +0 -50
  176. package/resources/bacstack/test/unit/service-time-sync.spec.js +0 -18
  177. package/resources/bacstack/test/unit/service-who-has.spec.js +0 -33
  178. package/resources/bacstack/test/unit/service-who-is.spec.js +0 -17
  179. package/resources/bacstack/test/unit/service-write-property-multiple.spec.js +0 -143
  180. package/resources/bacstack/test/unit/service-write-property.spec.js +0 -198
  181. package/resources/bacstack/test/unit/utils.js +0 -6
@@ -1,541 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
- const baEnum = require('../../lib/enum');
6
-
7
- describe('bacstack - Services layer ReadProperty unit', () => {
8
- it('should successfully encode and decode', () => {
9
- const buffer = utils.getBuffer();
10
- baServices.readProperty.encode(buffer, 4, 630, 85, 0xFFFFFFFF);
11
- const result = baServices.readProperty.decode(buffer.buffer, 0, buffer.offset);
12
- delete result.len;
13
- expect(result).toEqual({
14
- objectId: {type: 4, instance: 630},
15
- property: {id: 85, index: 0xFFFFFFFF}
16
- });
17
- });
18
-
19
- it('should successfully encode and decode with object-tye > 512', () => {
20
- const buffer = utils.getBuffer();
21
- baServices.readProperty.encode(buffer, 630, 5, 12, 0xFFFFFFFF);
22
- const result = baServices.readProperty.decode(buffer.buffer, 0, buffer.offset);
23
- delete result.len;
24
- expect(result).toEqual({
25
- objectId: {type: 630, instance: 5},
26
- property: {id: 12, index: 0xFFFFFFFF}
27
- });
28
- });
29
-
30
- it('should successfully encode and decode with array index', () => {
31
- const buffer = utils.getBuffer();
32
- baServices.readProperty.encode(buffer, 4, 630, 85, 2);
33
- const result = baServices.readProperty.decode(buffer.buffer, 0, buffer.offset);
34
- delete result.len;
35
- expect(result).toEqual({
36
- objectId: {type: 4, instance: 630},
37
- property: {id: 85, index: 2}
38
- });
39
- });
40
- });
41
-
42
- describe('ReadPropertyAcknowledge', () => {
43
- it('should successfully encode and decode a boolean value', () => {
44
- const buffer = utils.getBuffer();
45
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
46
- {type: 1, value: true},
47
- {type: 1, value: false}
48
- ]);
49
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
50
- delete result.len;
51
- expect(result).toEqual({
52
- objectId: {
53
- type: 8,
54
- instance: 40000
55
- },
56
- property: {
57
- index: 0xFFFFFFFF,
58
- id: 81
59
- },
60
- values: [
61
- {type: 1, value: true},
62
- {type: 1, value: false}
63
- ]
64
- });
65
- });
66
-
67
- it('should successfully encode and decode a boolean value with array index', () => {
68
- const buffer = utils.getBuffer();
69
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 2, [
70
- {type: 1, value: true}
71
- ]);
72
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
73
- delete result.len;
74
- expect(result).toEqual({
75
- objectId: {
76
- type: 8,
77
- instance: 40000
78
- },
79
- property: {
80
- index: 2,
81
- id: 81
82
- },
83
- values: [
84
- {type: 1, value: true}
85
- ]
86
- });
87
- });
88
-
89
- it('should successfully encode and decode an unsigned value', () => {
90
- const buffer = utils.getBuffer();
91
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
92
- {type: 2, value: 1},
93
- {type: 2, value: 1000},
94
- {type: 2, value: 1000000},
95
- {type: 2, value: 1000000000}
96
- ]);
97
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
98
- delete result.len;
99
- expect(result).toEqual({
100
- objectId: {
101
- type: 8,
102
- instance: 40000
103
- },
104
- property: {
105
- index: 0xFFFFFFFF,
106
- id: 81
107
- },
108
- values: [
109
- {type: 2, value: 1},
110
- {type: 2, value: 1000},
111
- {type: 2, value: 1000000},
112
- {type: 2, value: 1000000000}
113
- ]
114
- });
115
- });
116
-
117
- it('should successfully encode and decode a signed value', () => {
118
- const buffer = utils.getBuffer();
119
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
120
- {type: 3, value: -1},
121
- {type: 3, value: -1000},
122
- {type: 3, value: -1000000},
123
- {type: 3, value: -1000000000}
124
- ]);
125
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
126
- delete result.len;
127
- expect(result).toEqual({
128
- objectId: {
129
- type: 8,
130
- instance: 40000
131
- },
132
- property: {
133
- index: 0xFFFFFFFF,
134
- id: 81
135
- },
136
- values: [
137
- {type: 3, value: -1},
138
- {type: 3, value: -1000},
139
- {type: 3, value: -1000000},
140
- {type: 3, value: -1000000000}
141
- ]
142
- });
143
- });
144
-
145
- it('should successfully encode and decode an real value', () => {
146
- const buffer = utils.getBuffer();
147
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
148
- {type: 4, value: 0},
149
- {type: 4, value: 0.1}
150
- ]);
151
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
152
- delete result.len;
153
- expect(Math.floor(0.1 * 10000)).toEqual(Math.floor(result.values[1].value * 10000));
154
- result.values[1].value = 0;
155
- expect(result).toEqual({
156
- objectId: {
157
- type: 8,
158
- instance: 40000
159
- },
160
- property: {
161
- index: 0xFFFFFFFF,
162
- id: 81
163
- },
164
- values: [
165
- {type: 4, value: 0},
166
- {type: 4, value: 0}
167
- ]
168
- });
169
- });
170
-
171
- it('should successfully encode and decode a double value', () => {
172
- const buffer = utils.getBuffer();
173
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
174
- {type: 5, value: 0},
175
- {type: 5, value: 100.121212}
176
- ]);
177
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
178
- delete result.len;
179
- expect(result).toEqual({
180
- objectId: {
181
- type: 8,
182
- instance: 40000
183
- },
184
- property: {
185
- index: 0xFFFFFFFF,
186
- id: 81
187
- },
188
- values: [
189
- {type: 5, value: 0},
190
- {type: 5, value: 100.121212}
191
- ]
192
- });
193
- });
194
-
195
- it('should successfully encode and decode an octet-string value', () => {
196
- const buffer = utils.getBuffer();
197
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
198
- {type: 6, value: []},
199
- {type: 6, value: [1, 2, 100, 200]}
200
- ]);
201
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
202
- delete result.len;
203
- expect(result).toEqual({
204
- objectId: {
205
- type: 8,
206
- instance: 40000
207
- },
208
- property: {
209
- index: 0xFFFFFFFF,
210
- id: 81
211
- },
212
- values: [
213
- {type: 6, value: []},
214
- {type: 6, value: [1, 2, 100, 200]}
215
- ]
216
- });
217
- });
218
-
219
- it('should successfully encode and decode a character-string value', () => {
220
- const buffer = utils.getBuffer();
221
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
222
- {type: 7, value: ''},
223
- {type: 7, value: 'Test1234$äöü'}
224
- ]);
225
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
226
- delete result.len;
227
- expect(result).toEqual({
228
- objectId: {
229
- type: 8,
230
- instance: 40000
231
- },
232
- property: {
233
- index: 0xFFFFFFFF,
234
- id: 81
235
- },
236
- values: [
237
- {type: 7, value: '', encoding: 0},
238
- {type: 7, value: 'Test1234$äöü', encoding: 0}
239
- ]
240
- });
241
- });
242
-
243
- it('should successfully encode and decode a character-string value with ISO-8859-1 encoding', () => {
244
- const buffer = utils.getBuffer();
245
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
246
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.ISO_8859_1},
247
- {type: 7, value: 'Test1234$äöü', encoding: baEnum.CharacterStringEncoding.ISO_8859_1}
248
- ]);
249
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
250
- delete result.len;
251
- expect(result).toEqual({
252
- objectId: {
253
- type: 8,
254
- instance: 40000
255
- },
256
- property: {
257
- index: 0xFFFFFFFF,
258
- id: 81
259
- },
260
- values: [
261
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.ISO_8859_1},
262
- {type: 7, value: 'Test1234$äöü', encoding: baEnum.CharacterStringEncoding.ISO_8859_1}
263
- ]
264
- });
265
- });
266
-
267
- it('should successfully encode and decode a character-string value with UCS2 encoding', () => {
268
- const buffer = utils.getBuffer();
269
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
270
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.UCS_2},
271
- {type: 7, value: 'Test1234$äöü', encoding: baEnum.CharacterStringEncoding.UCS_2}
272
- ]);
273
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
274
- delete result.len;
275
- expect(result).toEqual({
276
- objectId: {
277
- type: 8,
278
- instance: 40000
279
- },
280
- property: {
281
- index: 0xFFFFFFFF,
282
- id: 81
283
- },
284
- values: [
285
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.UCS_2},
286
- {type: 7, value: 'Test1234$äöü', encoding: baEnum.CharacterStringEncoding.UCS_2}
287
- ]
288
- });
289
- });
290
-
291
- it('should successfully encode and decode a character-string value with Codepage850 encoding', () => {
292
- const buffer = utils.getBuffer();
293
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
294
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.MICROSOFT_DBCS},
295
- {type: 7, value: 'Test1234$äöü', encoding: baEnum.CharacterStringEncoding.MICROSOFT_DBCS}
296
- ]);
297
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
298
- delete result.len;
299
- expect(result).toEqual({
300
- objectId: {
301
- type: 8,
302
- instance: 40000
303
- },
304
- property: {
305
- index: 0xFFFFFFFF,
306
- id: 81
307
- },
308
- values: [
309
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.MICROSOFT_DBCS},
310
- {type: 7, value: 'Test1234$äöü', encoding: baEnum.CharacterStringEncoding.MICROSOFT_DBCS}
311
- ]
312
- });
313
- });
314
-
315
- it('should successfully encode and decode a character-string value with JISX-0208 encoding', () => {
316
- const buffer = utils.getBuffer();
317
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
318
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.JIS_X_0208},
319
- {type: 7, value: 'できます', encoding: baEnum.CharacterStringEncoding.JIS_X_0208}
320
- ]);
321
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
322
- delete result.len;
323
- expect(result).toEqual({
324
- objectId: {
325
- type: 8,
326
- instance: 40000
327
- },
328
- property: {
329
- index: 0xFFFFFFFF,
330
- id: 81
331
- },
332
- values: [
333
- {type: 7, value: '', encoding: baEnum.CharacterStringEncoding.JIS_X_0208},
334
- {type: 7, value: 'できます', encoding: baEnum.CharacterStringEncoding.JIS_X_0208}
335
- ]
336
- });
337
- });
338
-
339
- it('should successfully encode and decode a bit-string value', () => {
340
- const buffer = utils.getBuffer();
341
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
342
- {type: 8, value: {bitsUsed: 0, value: []}},
343
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}}
344
- ]);
345
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
346
- delete result.len;
347
- expect(result).toEqual({
348
- objectId: {
349
- type: 8,
350
- instance: 40000
351
- },
352
- property: {
353
- index: 0xFFFFFFFF,
354
- id: 81
355
- },
356
- values: [
357
- {type: 8, value: {bitsUsed: 0, value: []}},
358
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}}
359
- ]
360
- });
361
- });
362
-
363
- it('should successfully encode and decode a enumeration value', () => {
364
- const buffer = utils.getBuffer();
365
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
366
- {type: 9, value: 0},
367
- {type: 9, value: 4}
368
- ]);
369
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
370
- delete result.len;
371
- expect(result).toEqual({
372
- objectId: {
373
- type: 8,
374
- instance: 40000
375
- },
376
- property: {
377
- index: 0xFFFFFFFF,
378
- id: 81
379
- },
380
- values: [
381
- {type: 9, value: 0},
382
- {type: 9, value: 4}
383
- ]
384
- });
385
- });
386
-
387
- it('should successfully encode and decode a date value', () => {
388
- const buffer = utils.getBuffer();
389
- const date = new Date(1, 1, 1);
390
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
391
- {type: 10, value: date}
392
- ]);
393
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
394
- delete result.len;
395
- expect(result).toEqual({
396
- objectId: {
397
- type: 8,
398
- instance: 40000
399
- },
400
- property: {
401
- index: 0xFFFFFFFF,
402
- id: 81
403
- },
404
- values: [
405
- {type: 10, value: date}
406
- ]
407
- });
408
- });
409
-
410
- it('should successfully encode and decode a time value', () => {
411
- const buffer = utils.getBuffer();
412
- const time = new Date(1, 1, 1);
413
- time.setMilliseconds(990);
414
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
415
- {type: 11, value: time}
416
- ]);
417
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
418
- delete result.len;
419
- expect(result).toEqual({
420
- objectId: {
421
- type: 8,
422
- instance: 40000
423
- },
424
- property: {
425
- index: 0xFFFFFFFF,
426
- id: 81
427
- },
428
- values: [
429
- {type: 11, value: time}
430
- ]
431
- });
432
- });
433
-
434
- it('should successfully encode and decode a object-identifier value', () => {
435
- const buffer = utils.getBuffer();
436
- baServices.readProperty.encodeAcknowledge(buffer, {type: 8, instance: 40000}, 81, 0xFFFFFFFF, [
437
- {type: 12, value: {type: 3, instance: 0}},
438
- {type: 12, value: {type: 3, instance: 50000}}
439
- ]);
440
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
441
- delete result.len;
442
- expect(result).toEqual({
443
- objectId: {
444
- type: 8,
445
- instance: 40000
446
- },
447
- property: {
448
- index: 0xFFFFFFFF,
449
- id: 81
450
- },
451
- values: [
452
- {type: 12, value: {type: 3, instance: 0}},
453
- {type: 12, value: {type: 3, instance: 50000}}
454
- ]
455
- });
456
- });
457
-
458
- it('should successfully encode and decode a cov-subscription value', () => {
459
- const buffer = utils.getBuffer();
460
- baServices.readProperty.encodeAcknowledge(buffer, {type: 222, instance: 3}, 152, 0xFFFFFFFF, [
461
- {type: 111, value: {
462
- recipient: {network: 12, address: [0, 1]},
463
- subscriptionProcessId: 3,
464
- monitoredObjectId: {type: 2, instance: 1},
465
- monitoredProperty: {id: 85, index: 0},
466
- issueConfirmedNotifications: false,
467
- timeRemaining: 5,
468
- covIncrement: 1
469
- }},
470
- {type: 111, value: {
471
- recipient: {network: 0xFFFF, address: []},
472
- subscriptionProcessId: 3,
473
- monitoredObjectId: {type: 2, instance: 1},
474
- monitoredProperty: {id: 85, index: 5},
475
- issueConfirmedNotifications: true,
476
- timeRemaining: 5
477
- }}
478
- ]);
479
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
480
- delete result.len;
481
- expect(result).toEqual({
482
- objectId: {
483
- type: 222,
484
- instance: 3
485
- },
486
- property: {
487
- index: 0xFFFFFFFF,
488
- id: 152
489
- },
490
- values: [
491
- {type: 111, value: {
492
- recipient: {net: 12, adr: [0, 1]},
493
- subscriptionProcessId: 3,
494
- monitoredObjectId: {type: 2, instance: 1},
495
- monitoredProperty: {id: 85, index: 0},
496
- issueConfirmedNotifications: false,
497
- timeRemaining: 5,
498
- covIncrement: 1
499
- }},
500
- {type: 111, value: {
501
- recipient: {net: 0xFFFF, adr: []},
502
- subscriptionProcessId: 3,
503
- monitoredObjectId: {type: 2, instance: 1},
504
- monitoredProperty: {id: 85, index: 5},
505
- issueConfirmedNotifications: true,
506
- timeRemaining: 5
507
- }}
508
- ]
509
- });
510
- });
511
-
512
- it('should successfully encode and decode a read-access-specification value', () => {
513
- const buffer = utils.getBuffer();
514
- baServices.readProperty.encodeAcknowledge(buffer, {type: 223, instance: 90000}, 53, 0xFFFFFFFF, [
515
- {type: 115, value: {objectId: {type: 3, instance: 0}, properties: []}},
516
- {type: 115, value: {objectId: {type: 3, instance: 50000}, properties: [
517
- {id: 85},
518
- {id: 1, index: 2}
519
- ]}}
520
- ]);
521
- const result = baServices.readProperty.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
522
- delete result.len;
523
- expect(result).toEqual({
524
- objectId: {
525
- type: 223,
526
- instance: 90000
527
- },
528
- property: {
529
- index: 0xFFFFFFFF,
530
- id: 53
531
- },
532
- values: [
533
- {type: 115, value: {objectId: {type: 3, instance: 0}, properties: []}},
534
- {type: 115, value: {objectId: {type: 3, instance: 50000}, properties: [
535
- {id: 85, index: 0xFFFFFFFF},
536
- {id: 1, index: 2}
537
- ]}}
538
- ]
539
- });
540
- });
541
- });
@@ -1,97 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
- const baEnum = require('../../lib/enum');
6
-
7
- describe('bacstack - Services layer ReadRange unit', () => {
8
- it('should successfully encode and decode by position', () => {
9
- const buffer = utils.getBuffer();
10
- baServices.readRange.encode(buffer, {type: 61, instance: 35}, 85, 0xFFFFFFFF, baEnum.ReadRangeType.BY_POSITION, 10, null, 0);
11
- const result = baServices.readRange.decode(buffer.buffer, 0, buffer.offset);
12
- delete result.len;
13
- expect(result).toEqual({
14
- count: 0,
15
- objectId: {type: 61, instance: 35},
16
- position: 10,
17
- property: {
18
- index: 0xFFFFFFFF,
19
- id: 85
20
- },
21
- requestType: baEnum.ReadRangeType.BY_POSITION,
22
- time: undefined
23
- });
24
- });
25
-
26
- it('should successfully encode and decode by position with array index', () => {
27
- const buffer = utils.getBuffer();
28
- baServices.readRange.encode(buffer, {type: 61, instance: 35}, 12, 2, baEnum.ReadRangeType.BY_SEQUENCE_NUMBER, 10, null, 0);
29
- const result = baServices.readRange.decode(buffer.buffer, 0, buffer.offset);
30
- delete result.len;
31
- expect(result).toEqual({
32
- count: 0,
33
- objectId: {type: 61, instance: 35},
34
- position: 10,
35
- property: {
36
- index: 2,
37
- id: 12
38
- },
39
- requestType: baEnum.ReadRangeType.BY_SEQUENCE_NUMBER,
40
- time: undefined
41
- });
42
- });
43
-
44
- it('should successfully encode and decode by sequence', () => {
45
- const buffer = utils.getBuffer();
46
- baServices.readRange.encode(buffer, {type: 61, instance: 35}, 85, 0xFFFFFFFF, baEnum.ReadRangeType.BY_SEQUENCE_NUMBER, 11, null, 1111);
47
- const result = baServices.readRange.decode(buffer.buffer, 0, buffer.offset);
48
- delete result.len;
49
- expect(result).toEqual({
50
- count: 1111,
51
- objectId: {type: 61, instance: 35},
52
- position: 11,
53
- property: {
54
- index: 0xFFFFFFFF,
55
- id: 85
56
- },
57
- requestType: baEnum.ReadRangeType.BY_SEQUENCE_NUMBER,
58
- time: undefined
59
- });
60
- });
61
-
62
- it('should successfully encode and decode by time', () => {
63
- const buffer = utils.getBuffer();
64
- const date = new Date(1, 1, 1);
65
- date.setMilliseconds(990);
66
- baServices.readRange.encode(buffer, {type: 61, instance: 35}, 85, 0xFFFFFFFF, baEnum.ReadRangeType.BY_TIME_REFERENCE_TIME_COUNT, null, date, -1111);
67
- const result = baServices.readRange.decode(buffer.buffer, 0, buffer.offset);
68
- delete result.len;
69
- expect(result).toEqual({
70
- count: -1111,
71
- objectId: {type: 61, instance: 35},
72
- position: undefined,
73
- property: {
74
- index: 0xFFFFFFFF,
75
- id: 85
76
- },
77
- requestType: baEnum.ReadRangeType.BY_TIME_REFERENCE_TIME_COUNT,
78
- time: date
79
- });
80
- });
81
- });
82
-
83
- describe('ReadRangeAcknowledge', () => {
84
- it('should successfully encode and decode', () => {
85
- const buffer = utils.getBuffer();
86
- baServices.readRange.encodeAcknowledge(buffer, {type: 12, instance: 500}, 5048, 0xFFFFFFFF, {bitsUsed: 24, value: [1, 2, 3]}, 12, Buffer.from([1, 2, 3]), 2, 2);
87
- const result = baServices.readRange.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
88
- delete result.len;
89
- expect(result).toEqual({
90
- objectId: {type: 12, instance: 500},
91
- itemCount: 12,
92
- property: {id: 5048, index: 0xFFFFFFFF},
93
- resultFlag: {bitsUsed: 24, value: [1, 2, 3]},
94
- rangeBuffer: Buffer.from([1, 2, 3])
95
- });
96
- });
97
- });
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer ReinitializeDevice unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.reinitializeDevice.encode(buffer, 5);
10
- const result = baServices.reinitializeDevice.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- state: 5
14
- });
15
- });
16
-
17
- it('should successfully encode and decode with password', () => {
18
- const buffer = utils.getBuffer();
19
- baServices.reinitializeDevice.encode(buffer, 5, 'Test1234$');
20
- const result = baServices.reinitializeDevice.decode(buffer.buffer, 0, buffer.offset);
21
- delete result.len;
22
- expect(result).toEqual({
23
- state: 5,
24
- password: 'Test1234$'
25
- });
26
- });
27
- });
@@ -1,32 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer SubscribeCOV unit', () => {
7
- it('should successfully encode and decode a cancelation request', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.subscribeCov.encode(buffer, 10, {type: 3, instance: 1}, true);
10
- const result = baServices.subscribeCov.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- cancellationRequest: true,
14
- monitoredObjectId: {type: 3, instance: 1},
15
- subscriberProcessId: 10
16
- });
17
- });
18
-
19
- it('should successfully encode and decode subscription request', () => {
20
- const buffer = utils.getBuffer();
21
- baServices.subscribeCov.encode(buffer, 11, {type: 3, instance: 2}, false, true, 5000);
22
- const result = baServices.subscribeCov.decode(buffer.buffer, 0, buffer.offset);
23
- delete result.len;
24
- expect(result).toEqual({
25
- cancellationRequest: false,
26
- issueConfirmedNotifications: true,
27
- lifetime: 5000,
28
- monitoredObjectId: {type: 3, instance: 2},
29
- subscriberProcessId: 11
30
- });
31
- });
32
- });