@bitpoolos/edge-bacnet 1.0.5 → 1.0.9

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 (179) hide show
  1. package/bacnet_client.js +587 -154
  2. package/bacnet_device.js +34 -11
  3. package/bacnet_gateway.html +189 -92
  4. package/bacnet_gateway.js +152 -21
  5. package/bacnet_object.js +1 -1
  6. package/bacnet_read.html +115 -113
  7. package/bacnet_read.js +24 -24
  8. package/bacnet_write.html +19 -15
  9. package/bacnet_write.js +0 -2
  10. package/common.js +63 -8
  11. package/package.json +5 -1
  12. package/resources/confirmationservice.min.js +1 -0
  13. package/resources/confirmdialog.min.js +1 -0
  14. package/resources/fonts/primeicons.woff2 +0 -0
  15. package/resources/node-bacnet/CHANGELOG.md +481 -0
  16. package/resources/{bacstack → node-bacnet}/LICENSE.md +3 -1
  17. package/resources/node-bacnet/README.md +91 -0
  18. package/resources/node-bacnet/docs/Client.html +4422 -0
  19. package/resources/node-bacnet/docs/bacnet-icon-quad.png +0 -0
  20. package/resources/node-bacnet/docs/bacnet-icon-quad128.png +0 -0
  21. package/resources/node-bacnet/docs/bacnet-icon-quad64.png +0 -0
  22. package/resources/node-bacnet/docs/bacnet-icon-small.xcf +0 -0
  23. package/resources/node-bacnet/docs/bacnet-icon.xcf +0 -0
  24. package/resources/node-bacnet/docs/bacnet.html +7032 -0
  25. package/resources/node-bacnet/docs/client.js.html +1759 -0
  26. package/resources/node-bacnet/docs/enum.js.html +2530 -0
  27. package/resources/node-bacnet/docs/global.html +2068 -0
  28. package/resources/node-bacnet/docs/images/mocha-logo.svg +65 -0
  29. package/resources/node-bacnet/docs/index.html +283 -0
  30. package/resources/node-bacnet/docs/scripts/collapse.js +11 -0
  31. package/resources/node-bacnet/docs/scripts/jquery-3.1.1.min.js +4 -0
  32. package/resources/node-bacnet/docs/scripts/linenumber.js +26 -0
  33. package/resources/node-bacnet/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  34. package/resources/node-bacnet/docs/scripts/prettify/lang-css.js +2 -0
  35. package/resources/node-bacnet/docs/scripts/prettify/prettify.js +28 -0
  36. package/resources/node-bacnet/docs/scripts/search.js +47 -0
  37. package/resources/node-bacnet/docs/services_i-am.js.html +157 -0
  38. package/resources/node-bacnet/docs/services_time-sync.js.html +118 -0
  39. package/resources/node-bacnet/docs/services_who-is.js.html +138 -0
  40. package/resources/node-bacnet/docs/styles/jsdoc.css +683 -0
  41. package/resources/node-bacnet/docs/styles/prettify.css +82 -0
  42. package/resources/node-bacnet/examples/discover-devices.js +66 -0
  43. package/resources/node-bacnet/examples/read-device.js +510 -0
  44. package/resources/node-bacnet/examples/subscribe-cov.js +75 -0
  45. package/resources/{bacstack → node-bacnet}/index.js +3 -0
  46. package/resources/{bacstack → node-bacnet}/lib/apdu.js +56 -39
  47. package/resources/{bacstack → node-bacnet}/lib/asn1.js +550 -532
  48. package/resources/node-bacnet/lib/bvlc.js +90 -0
  49. package/resources/node-bacnet/lib/client.js +1695 -0
  50. package/resources/node-bacnet/lib/enum.js +2463 -0
  51. package/resources/node-bacnet/lib/npdu.js +123 -0
  52. package/resources/{bacstack → node-bacnet}/lib/services/add-list-element.js +12 -6
  53. package/resources/{bacstack → node-bacnet}/lib/services/alarm-acknowledge.js +3 -3
  54. package/resources/{bacstack → node-bacnet}/lib/services/alarm-summary.js +5 -4
  55. package/resources/{bacstack → node-bacnet}/lib/services/atomic-read-file.js +49 -26
  56. package/resources/{bacstack → node-bacnet}/lib/services/atomic-write-file.js +40 -23
  57. package/resources/{bacstack → node-bacnet}/lib/services/cov-notify.js +33 -17
  58. package/resources/{bacstack → node-bacnet}/lib/services/create-object.js +23 -13
  59. package/resources/{bacstack → node-bacnet}/lib/services/delete-object.js +7 -2
  60. package/resources/{bacstack → node-bacnet}/lib/services/device-communication-control.js +8 -3
  61. package/resources/{bacstack → node-bacnet}/lib/services/error.js +7 -0
  62. package/resources/{bacstack → node-bacnet}/lib/services/event-information.js +10 -9
  63. package/resources/{bacstack → node-bacnet}/lib/services/event-notify-data.js +38 -16
  64. package/resources/{bacstack → node-bacnet}/lib/services/get-enrollment-summary.js +24 -11
  65. package/resources/{bacstack → node-bacnet}/lib/services/get-event-information.js +28 -13
  66. package/resources/node-bacnet/lib/services/i-am.js +90 -0
  67. package/resources/{bacstack/lib/services/i-have-broadcast.js → node-bacnet/lib/services/i-have.js} +3 -2
  68. package/resources/{bacstack → node-bacnet}/lib/services/index.js +7 -4
  69. package/resources/{bacstack → node-bacnet}/lib/services/life-safety-operation.js +3 -2
  70. package/resources/{bacstack → node-bacnet}/lib/services/private-transfer.js +3 -2
  71. package/resources/{bacstack → node-bacnet}/lib/services/read-property-multiple.js +11 -6
  72. package/resources/{bacstack → node-bacnet}/lib/services/read-property.js +42 -24
  73. package/resources/{bacstack → node-bacnet}/lib/services/read-range.js +37 -27
  74. package/resources/node-bacnet/lib/services/register-foreign-device.js +18 -0
  75. package/resources/{bacstack → node-bacnet}/lib/services/reinitialize-device.js +9 -4
  76. package/resources/{bacstack → node-bacnet}/lib/services/subscribe-cov.js +9 -4
  77. package/resources/{bacstack → node-bacnet}/lib/services/subscribe-property.js +18 -8
  78. package/resources/{bacstack → node-bacnet}/lib/services/time-sync.js +28 -5
  79. package/resources/{bacstack → node-bacnet}/lib/services/who-has.js +3 -3
  80. package/resources/{bacstack → node-bacnet}/lib/services/who-is.js +42 -9
  81. package/resources/{bacstack → node-bacnet}/lib/services/write-property-multiple.js +33 -16
  82. package/resources/{bacstack → node-bacnet}/lib/services/write-property.js +23 -13
  83. package/resources/node-bacnet/lib/transport.js +82 -0
  84. package/resources/node-bacnet/package.json +92 -0
  85. package/resources/primeicons.css +90 -2
  86. package/resources/bacstack/.codeclimate.yml +0 -15
  87. package/resources/bacstack/.dockerignore +0 -5
  88. package/resources/bacstack/.editorconfig +0 -13
  89. package/resources/bacstack/.eslintrc.yml +0 -13
  90. package/resources/bacstack/.github/ISSUE_TEMPLATE.md +0 -26
  91. package/resources/bacstack/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  92. package/resources/bacstack/.github/workflows/ci.yml +0 -39
  93. package/resources/bacstack/.jscsrc +0 -8
  94. package/resources/bacstack/.jshintrc +0 -50
  95. package/resources/bacstack/.travis.yml +0 -27
  96. package/resources/bacstack/CHANGELOG.md +0 -232
  97. package/resources/bacstack/CODE_OF_CONDUCT.md +0 -74
  98. package/resources/bacstack/CONTRIBUTING.md +0 -77
  99. package/resources/bacstack/Dockerfile +0 -15
  100. package/resources/bacstack/FAQ.md +0 -64
  101. package/resources/bacstack/README.md +0 -157
  102. package/resources/bacstack/docker-compose.yml +0 -9
  103. package/resources/bacstack/lib/adpu.js +0 -190
  104. package/resources/bacstack/lib/bvlc.js +0 -43
  105. package/resources/bacstack/lib/client.js +0 -1028
  106. package/resources/bacstack/lib/enum.js +0 -1314
  107. package/resources/bacstack/lib/npdu.js +0 -119
  108. package/resources/bacstack/lib/services/i-am-broadcast.js +0 -51
  109. package/resources/bacstack/lib/services.js +0 -1963
  110. package/resources/bacstack/lib/transport.js +0 -52
  111. package/resources/bacstack/package-lock.json +0 -7974
  112. package/resources/bacstack/package.json +0 -84
  113. package/resources/bacstack/test/compliance/who-is.spec.js +0 -37
  114. package/resources/bacstack/test/integration/acknowledge-alarm.spec.js +0 -14
  115. package/resources/bacstack/test/integration/add-list-element.spec.js +0 -16
  116. package/resources/bacstack/test/integration/confirmed-event-notification.spec.js +0 -30
  117. package/resources/bacstack/test/integration/confirmed-private-transfer.spec.js +0 -15
  118. package/resources/bacstack/test/integration/create-object.spec.js +0 -16
  119. package/resources/bacstack/test/integration/delete-object.spec.js +0 -14
  120. package/resources/bacstack/test/integration/device-communication-control.spec.js +0 -14
  121. package/resources/bacstack/test/integration/get-alarm-summary.spec.js +0 -14
  122. package/resources/bacstack/test/integration/get-enrollment-summary.spec.js +0 -15
  123. package/resources/bacstack/test/integration/get-event-information.spec.js +0 -14
  124. package/resources/bacstack/test/integration/read-file.spec.js +0 -14
  125. package/resources/bacstack/test/integration/read-property-multiple.spec.js +0 -110
  126. package/resources/bacstack/test/integration/read-property.spec.js +0 -14
  127. package/resources/bacstack/test/integration/read-range.spec.js +0 -14
  128. package/resources/bacstack/test/integration/reinitialize-sevice.spec.js +0 -14
  129. package/resources/bacstack/test/integration/remove-list-element.spec.js +0 -16
  130. package/resources/bacstack/test/integration/subscribe-cov.spec.js +0 -14
  131. package/resources/bacstack/test/integration/subscribe-property.spec.js +0 -14
  132. package/resources/bacstack/test/integration/time-sync-utc.spec.js +0 -10
  133. package/resources/bacstack/test/integration/time-sync.spec.js +0 -10
  134. package/resources/bacstack/test/integration/unconfirmed-event-notification.spec.js +0 -28
  135. package/resources/bacstack/test/integration/unconfirmed-private-transfer.spec.js +0 -11
  136. package/resources/bacstack/test/integration/utils.js +0 -30
  137. package/resources/bacstack/test/integration/who-is.spec.js +0 -17
  138. package/resources/bacstack/test/integration/write-file.spec.js +0 -14
  139. package/resources/bacstack/test/integration/write-property-multiple.spec.js +0 -19
  140. package/resources/bacstack/test/integration/write-property.spec.js +0 -14
  141. package/resources/bacstack/test/unit/apdu.spec.js +0 -162
  142. package/resources/bacstack/test/unit/asn1.spec.js +0 -39
  143. package/resources/bacstack/test/unit/bacnet-apdu.spec.js +0 -161
  144. package/resources/bacstack/test/unit/bacnet-asn1.spec.js +0 -32
  145. package/resources/bacstack/test/unit/bacnet-bvlc.spec.js +0 -57
  146. package/resources/bacstack/test/unit/bacnet-npdu.spec.js +0 -118
  147. package/resources/bacstack/test/unit/bacnet-services.spec.js +0 -2052
  148. package/resources/bacstack/test/unit/bvlc.spec.js +0 -58
  149. package/resources/bacstack/test/unit/npdu.spec.js +0 -119
  150. package/resources/bacstack/test/unit/service-add-list-element.spec.js +0 -24
  151. package/resources/bacstack/test/unit/service-alarm-acknowledge.spec.js +0 -71
  152. package/resources/bacstack/test/unit/service-alarm-summary.spec.js +0 -22
  153. package/resources/bacstack/test/unit/service-atomic-read-file.spec.js +0 -54
  154. package/resources/bacstack/test/unit/service-atomic-write-file.spec.js +0 -56
  155. package/resources/bacstack/test/unit/service-cov-notify.spec.js +0 -98
  156. package/resources/bacstack/test/unit/service-create-object.spec.js +0 -90
  157. package/resources/bacstack/test/unit/service-delete-object.spec.js +0 -17
  158. package/resources/bacstack/test/unit/service-device-communication-control.spec.js +0 -29
  159. package/resources/bacstack/test/unit/service-error.spec.js +0 -17
  160. package/resources/bacstack/test/unit/service-event-information.spec.js +0 -48
  161. package/resources/bacstack/test/unit/service-event-notify-data.spec.js +0 -310
  162. package/resources/bacstack/test/unit/service-get-enrollment-summary.spec.js +0 -45
  163. package/resources/bacstack/test/unit/service-get-event-information.spec.js +0 -62
  164. package/resources/bacstack/test/unit/service-i-am.spec.js +0 -19
  165. package/resources/bacstack/test/unit/service-i-have-broadcast.spec.js +0 -18
  166. package/resources/bacstack/test/unit/service-life-safety-operation.spec.js +0 -19
  167. package/resources/bacstack/test/unit/service-private-transfer.spec.js +0 -18
  168. package/resources/bacstack/test/unit/service-read-property-multiple.spec.js +0 -131
  169. package/resources/bacstack/test/unit/service-read-property.spec.js +0 -541
  170. package/resources/bacstack/test/unit/service-read-range.spec.js +0 -97
  171. package/resources/bacstack/test/unit/service-reinitialize-device.spec.js +0 -27
  172. package/resources/bacstack/test/unit/service-subscribe-cov.spec.js +0 -32
  173. package/resources/bacstack/test/unit/service-subscribe-property.spec.js +0 -50
  174. package/resources/bacstack/test/unit/service-time-sync.spec.js +0 -18
  175. package/resources/bacstack/test/unit/service-who-has.spec.js +0 -33
  176. package/resources/bacstack/test/unit/service-who-is.spec.js +0 -17
  177. package/resources/bacstack/test/unit/service-write-property-multiple.spec.js +0 -143
  178. package/resources/bacstack/test/unit/service-write-property.spec.js +0 -198
  179. package/resources/bacstack/test/unit/utils.js +0 -6
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer EventInformation unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- const date1 = new Date();
10
- date1.setMilliseconds(990);
11
- const date2 = new Date();
12
- date2.setMilliseconds(990);
13
- const date3 = new Date();
14
- date3.setMilliseconds(990);
15
- baServices.eventInformation.encode(buffer, [
16
- {objectId: {type: 0, instance: 32}, eventState: 12, acknowledgedTransitions: {value: [14], bitsUsed: 6}, eventTimeStamps: [date1, date2, date3], notifyType: 5, eventEnable: {value: [15], bitsUsed: 7}, eventPriorities: [2, 3, 4]}
17
- ], false);
18
- const result = baServices.eventInformation.decode(buffer.buffer, 0, buffer.offset);
19
- delete result.len;
20
- expect(result).toEqual({
21
- alarms: [
22
- {
23
- objectId: {
24
- type: 0,
25
- instance: 32
26
- },
27
- eventState: 12,
28
- acknowledgedTransitions: {
29
- bitsUsed: 6,
30
- value: [14]
31
- },
32
- eventTimeStamps: [
33
- date1,
34
- date2,
35
- date3
36
- ],
37
- notifyType: 5,
38
- eventEnable: {
39
- bitsUsed: 7,
40
- value: [15]
41
- },
42
- eventPriorities: [2, 3, 4]
43
- }
44
- ],
45
- moreEvents: false
46
- });
47
- });
48
- });
@@ -1,310 +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 EventNotifyData unit', () => {
8
- it('should successfully encode and decode a change of bitstring event', () => {
9
- const buffer = utils.getBuffer();
10
- const date = new Date();
11
- date.setMilliseconds(880);
12
- baServices.eventNotifyData.encode(buffer, {
13
- processId: 3,
14
- initiatingObjectId: {type: 60, instance: 12},
15
- eventObjectId: {type: 61, instance: 1121},
16
- timeStamp: {type: 2, value: date},
17
- notificationClass: 9,
18
- priority: 7,
19
- eventType: 0,
20
- messageText: 'Test1234$',
21
- notifyType: 1,
22
- ackRequired: true,
23
- fromState: 5,
24
- toState: 6,
25
- changeOfBitstringReferencedBitString: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]},
26
- changeOfBitstringStatusFlags: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]}
27
- });
28
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
29
- delete result.len;
30
- expect(result).toEqual({
31
- processId: 3,
32
- initiatingObjectId: {type: 60, instance: 12},
33
- eventObjectId: {type: 61, instance: 1121},
34
- timeStamp: date,
35
- notificationClass: 9,
36
- priority: 7,
37
- eventType: 0,
38
- messageText: 'Test1234$',
39
- notifyType: 1,
40
- ackRequired: true,
41
- fromState: 5,
42
- toState: 6
43
- });
44
- });
45
-
46
- it('should successfully encode and decode a change of state event', () => {
47
- const buffer = utils.getBuffer();
48
- const date = new Date();
49
- date.setMilliseconds(880);
50
- baServices.eventNotifyData.encode(buffer, {
51
- processId: 3,
52
- initiatingObjectId: {},
53
- eventObjectId: {},
54
- timeStamp: {type: 2, value: date},
55
- notificationClass: 9,
56
- priority: 7,
57
- eventType: 1,
58
- messageText: 'Test1234$',
59
- notifyType: 1,
60
- ackRequired: false,
61
- fromState: 1,
62
- toState: 2,
63
- changeOfStateNewState: {type: 2, state: 2},
64
- changeOfStateStatusFlags: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]}
65
- });
66
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
67
- delete result.len;
68
- expect(result).toEqual({
69
- processId: 3,
70
- initiatingObjectId: {type: 0, instance: 0},
71
- eventObjectId: {type: 0, instance: 0},
72
- timeStamp: date,
73
- notificationClass: 9,
74
- priority: 7,
75
- eventType: 1,
76
- messageText: 'Test1234$',
77
- notifyType: 1,
78
- ackRequired: false,
79
- fromState: 1,
80
- toState: 2
81
- });
82
- });
83
-
84
- it('should successfully encode and decode a change of value event', () => {
85
- const buffer = utils.getBuffer();
86
- const date = new Date();
87
- date.setMilliseconds(880);
88
- baServices.eventNotifyData.encode(buffer, {
89
- processId: 3,
90
- initiatingObjectId: {},
91
- eventObjectId: {},
92
- timeStamp: {type: 2, value: date},
93
- notificationClass: 9,
94
- priority: 7,
95
- eventType: 2,
96
- messageText: 'Test1234$',
97
- notifyType: 1,
98
- changeOfValueTag: baEnum.CovTypes.REAL,
99
- changeOfValueChangeValue: 90,
100
- changeOfValueStatusFlags: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]}
101
- });
102
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
103
- delete result.len;
104
- expect(result).toEqual({
105
- processId: 3,
106
- initiatingObjectId: {type: 0, instance: 0},
107
- eventObjectId: {type: 0, instance: 0},
108
- timeStamp: date,
109
- notificationClass: 9,
110
- priority: 7,
111
- eventType: 2,
112
- messageText: 'Test1234$',
113
- notifyType: 1,
114
- ackRequired: false,
115
- fromState: 0,
116
- toState: 0
117
- });
118
- });
119
-
120
- it('should successfully encode and decode a floating limit event', () => {
121
- const buffer = utils.getBuffer();
122
- const date = new Date();
123
- date.setMilliseconds(880);
124
- baServices.eventNotifyData.encode(buffer, {
125
- processId: 3,
126
- initiatingObjectId: {},
127
- eventObjectId: {},
128
- timeStamp: {type: 2, value: date},
129
- notificationClass: 9,
130
- priority: 7,
131
- eventType: 4,
132
- messageText: 'Test1234$',
133
- notifyType: 1,
134
- ackRequired: true,
135
- fromState: 19,
136
- toState: 12,
137
- floatingLimitReferenceValue: 121,
138
- floatingLimitStatusFlags: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]},
139
- floatingLimitSetPointValue: 120,
140
- floatingLimitErrorLimit: 120
141
- });
142
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
143
- delete result.len;
144
- expect(result).toEqual({
145
- processId: 3,
146
- initiatingObjectId: {type: 0, instance: 0},
147
- eventObjectId: {type: 0, instance: 0},
148
- timeStamp: date,
149
- notificationClass: 9,
150
- priority: 7,
151
- eventType: 4,
152
- messageText: 'Test1234$',
153
- notifyType: 1,
154
- ackRequired: true,
155
- fromState: 19,
156
- toState: 12
157
- });
158
- });
159
-
160
- it('should successfully encode and decode an out of range event', () => {
161
- const buffer = utils.getBuffer();
162
- const date = new Date();
163
- date.setMilliseconds(880);
164
- baServices.eventNotifyData.encode(buffer, {
165
- processId: 3,
166
- initiatingObjectId: {},
167
- eventObjectId: {},
168
- timeStamp: {type: 2, value: date},
169
- notificationClass: 9,
170
- priority: 7,
171
- eventType: 5,
172
- messageText: 'Test1234$',
173
- notifyType: 1,
174
- outOfRangeExceedingValue: 155,
175
- outOfRangeStatusFlags: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]},
176
- outOfRangeDeadband: 50,
177
- outOfRangeExceededLimit: 150
178
- });
179
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
180
- delete result.len;
181
- expect(result).toEqual({
182
- processId: 3,
183
- initiatingObjectId: {type: 0, instance: 0},
184
- eventObjectId: {type: 0, instance: 0},
185
- timeStamp: date,
186
- notificationClass: 9,
187
- priority: 7,
188
- eventType: 5,
189
- messageText: 'Test1234$',
190
- notifyType: 1,
191
- ackRequired: false,
192
- fromState: 0,
193
- toState: 0
194
- });
195
- });
196
-
197
- it('should successfully encode and decode a change of life-safety event', () => {
198
- const buffer = utils.getBuffer();
199
- const date = new Date();
200
- date.setMilliseconds(880);
201
- baServices.eventNotifyData.encode(buffer, {
202
- processId: 3,
203
- initiatingObjectId: {},
204
- eventObjectId: {},
205
- timeStamp: {type: 2, value: date},
206
- notificationClass: 9,
207
- priority: 7,
208
- eventType: 8,
209
- messageText: 'Test1234$',
210
- notifyType: 1,
211
- changeOfLifeSafetyNewState: 8,
212
- changeOfLifeSafetyNewMode: 9,
213
- changeOfLifeSafetyStatusFlags: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]},
214
- changeOfLifeSafetyOperationExpected: 2
215
- });
216
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
217
- delete result.len;
218
- expect(result).toEqual({
219
- processId: 3,
220
- initiatingObjectId: {type: 0, instance: 0},
221
- eventObjectId: {type: 0, instance: 0},
222
- timeStamp: date,
223
- notificationClass: 9,
224
- priority: 7,
225
- eventType: 8,
226
- messageText: 'Test1234$',
227
- notifyType: 1,
228
- ackRequired: false,
229
- fromState: 0,
230
- toState: 0
231
- });
232
- });
233
-
234
- it('should successfully encode and decode a buffer ready event', () => {
235
- const buffer = utils.getBuffer();
236
- const date = new Date();
237
- date.setMilliseconds(880);
238
- baServices.eventNotifyData.encode(buffer, {
239
- processId: 3,
240
- initiatingObjectId: {},
241
- eventObjectId: {},
242
- timeStamp: {type: 2, value: date},
243
- notificationClass: 9,
244
- priority: 7,
245
- eventType: 10,
246
- messageText: 'Test1234$',
247
- notifyType: 1,
248
- bufferReadyBufferProperty: {
249
- objectId: {type: 65, instance: 2},
250
- id: 85,
251
- arrayIndex: 3,
252
- deviceIndentifier: {type: 8, instance: 443}
253
- },
254
- bufferReadyPreviousNotification: 121,
255
- bufferReadyCurrentNotification: 281
256
- });
257
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
258
- delete result.len;
259
- expect(result).toEqual({
260
- processId: 3,
261
- initiatingObjectId: {type: 0, instance: 0},
262
- eventObjectId: {type: 0, instance: 0},
263
- timeStamp: date,
264
- notificationClass: 9,
265
- priority: 7,
266
- eventType: 10,
267
- messageText: 'Test1234$',
268
- notifyType: 1,
269
- ackRequired: false,
270
- fromState: 0,
271
- toState: 0
272
- });
273
- });
274
-
275
- it('should successfully encode and decode a unsigned range event', () => {
276
- const buffer = utils.getBuffer();
277
- const date = new Date();
278
- date.setMilliseconds(880);
279
- baServices.eventNotifyData.encode(buffer, {
280
- processId: 3,
281
- initiatingObjectId: {},
282
- eventObjectId: {},
283
- timeStamp: {type: 2, value: date},
284
- notificationClass: 9,
285
- priority: 7,
286
- eventType: 11,
287
- messageText: 'Test1234$',
288
- notifyType: 1,
289
- unsignedRangeExceedingValue: 101,
290
- unsignedRangeStatusFlags: {bitsUsed: 24, value: [0xaa, 0xaa, 0xaa]},
291
- unsignedRangeExceededLimit: 100
292
- });
293
- const result = baServices.eventNotifyData.decode(buffer.buffer, 0);
294
- delete result.len;
295
- expect(result).toEqual({
296
- processId: 3,
297
- initiatingObjectId: {type: 0, instance: 0},
298
- eventObjectId: {type: 0, instance: 0},
299
- timeStamp: date,
300
- notificationClass: 9,
301
- priority: 7,
302
- eventType: 11,
303
- messageText: 'Test1234$',
304
- notifyType: 1,
305
- ackRequired: false,
306
- fromState: 0,
307
- toState: 0
308
- });
309
- });
310
- });
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer GetEnrollmentSummary unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.getEnrollmentSummary.encode(buffer, 2);
10
- const result = baServices.getEnrollmentSummary.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- acknowledgmentFilter: 2
14
- });
15
- });
16
-
17
- it('should successfully encode and decode full payload', () => {
18
- const buffer = utils.getBuffer();
19
- baServices.getEnrollmentSummary.encode(buffer, 2, {objectId: {type: 5, instance: 33}, processId: 7}, 1, 3, {min: 1, max: 65}, 5);
20
- const result = baServices.getEnrollmentSummary.decode(buffer.buffer, 0, buffer.offset);
21
- delete result.len;
22
- expect(result).toEqual({
23
- acknowledgmentFilter: 2,
24
- enrollmentFilter: {objectId: {type: 5, instance: 33}, processId: 7},
25
- eventStateFilter: 1,
26
- eventTypeFilter: 3,
27
- priorityFilter: {min: 1, max: 65},
28
- notificationClassFilter: 5
29
- });
30
- });
31
- });
32
-
33
- describe('GetEnrollmentSummaryAcknowledge', () => {
34
- it('should successfully encode and decode', () => {
35
- const buffer = utils.getBuffer();
36
- baServices.getEnrollmentSummary.encodeAcknowledge(buffer, [
37
- {objectId: {type: 12, instance: 120}, eventType: 3, eventState: 2, priority: 18, notificationClass: 11}
38
- ]);
39
- const result = baServices.getEnrollmentSummary.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
40
- delete result.len;
41
- expect(result).toEqual({
42
- enrollmentSummaries: [{objectId: {type: 12, instance: 120}, eventType: 3, eventState: 2, priority: 18, notificationClass: 11}]
43
- });
44
- });
45
- });
@@ -1,62 +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 GetEventInformation unit', () => {
8
- it('should successfully encode and decode', () => {
9
- const buffer = utils.getBuffer();
10
- baServices.getEventInformation.encode(buffer, {type: 8, instance: 15});
11
- const result = baServices.getEventInformation.decode(buffer.buffer, 0);
12
- delete result.len;
13
- expect(result).toEqual({
14
- lastReceivedObjectId: {type: 8, instance: 15}
15
- });
16
- });
17
- });
18
-
19
- describe('GetEventInformationAcknowledge', () => {
20
- it('should successfully encode and decode', () => {
21
- const timeStamp = new Date(1, 1, 1);
22
- timeStamp.setMilliseconds(990);
23
- const buffer = utils.getBuffer();
24
- baServices.getEventInformation.encodeAcknowledge(buffer, [
25
- {
26
- objectId: {type: 2, instance: 17},
27
- eventState: 3,
28
- acknowledgedTransitions: {value: [14], bitsUsed: 6},
29
- eventTimeStamps: [{value: timeStamp, type: baEnum.TimeStamp.DATETIME}, {value: 5, type: baEnum.TimeStamp.SEQUENCE_NUMBER}, {value: timeStamp, type: baEnum.TimeStamp.TIME}],
30
- notifyType: 12,
31
- eventEnable: {value: [14], bitsUsed: 6},
32
- eventPriorities: [1, 2, 3]
33
- }
34
- ], false);
35
- const result = baServices.getEventInformation.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
36
- delete result.len;
37
- expect(result).toEqual({
38
- events: [
39
- {
40
- objectId: {type: 2, instance: 17},
41
- eventState: 3,
42
- acknowledgedTransitions: {value: [14], bitsUsed: 6}, eventTimeStamps: [{value: timeStamp, type: baEnum.TimeStamp.DATETIME}, {value: 5, type: baEnum.TimeStamp.SEQUENCE_NUMBER}, {value: timeStamp, type: baEnum.TimeStamp.TIME}],
43
- notifyType: 12,
44
- eventEnable: {value: [14], bitsUsed: 6},
45
- eventPriorities: [1, 2, 3]
46
- }
47
- ],
48
- moreEvents: false
49
- });
50
- });
51
-
52
- it('should successfully encode and decode empty payload', () => {
53
- const buffer = utils.getBuffer();
54
- baServices.getEventInformation.encodeAcknowledge(buffer, [], true);
55
- const result = baServices.getEventInformation.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
56
- delete result.len;
57
- expect(result).toEqual({
58
- events: [],
59
- moreEvents: true
60
- });
61
- });
62
- });
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer Iam unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.iAmBroadcast.encode(buffer, 47, 1, 1, 7);
10
- const result = baServices.iAmBroadcast.decode(buffer.buffer, 0);
11
- delete result.len;
12
- expect(result).toEqual({
13
- deviceId: 47,
14
- maxApdu: 1,
15
- segmentation: 1,
16
- vendorId: 7
17
- });
18
- });
19
- });
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer IhaveBroadcast unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.iHaveBroadcast.encode(buffer, {type: 8, instance: 443}, {type: 0, instance: 4}, 'LgtCmd01');
10
- const result = baServices.iHaveBroadcast.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- deviceId: {type: 8, instance: 443},
14
- objectId: {type: 0, instance: 4},
15
- objectName: 'LgtCmd01'
16
- });
17
- });
18
- });
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer LifeSafetyOperation unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.lifeSafetyOperation.encode(buffer, 8, 'User01', 7, {type: 0, instance: 77});
10
- const result = baServices.lifeSafetyOperation.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- processId: 8,
14
- requestingSource: 'User01',
15
- operation: 7,
16
- targetObjectId: {type: 0, instance: 77}
17
- });
18
- });
19
- });
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer PrivateTransfer unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.privateTransfer.encode(buffer, 255, 8, [1, 2, 3, 4, 5]);
10
- const result = baServices.privateTransfer.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- vendorId: 255,
14
- serviceNumber: 8,
15
- data: [1, 2, 3, 4, 5]
16
- });
17
- });
18
- });
@@ -1,131 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer ReadPropertyMultiple unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.readPropertyMultiple.encode(buffer, [
10
- {objectId: {type: 51, instance: 1}, properties: [
11
- {id: 85, index: 0xFFFFFFFF},
12
- {id: 85, index: 4}
13
- ]}
14
- ]);
15
- const result = baServices.readPropertyMultiple.decode(buffer.buffer, 0, buffer.offset);
16
- delete result.len;
17
- expect(result).toEqual({properties: [{objectId: {type: 51, instance: 1}, properties: [
18
- {id: 85, index: 0xFFFFFFFF},
19
- {id: 85, index: 4}
20
- ]}]});
21
- });
22
- });
23
-
24
- describe('ReadPropertyMultipleAcknowledge', () => {
25
- it('should successfully encode and decode', () => {
26
- const buffer = utils.getBuffer();
27
- const date = new Date(1, 1, 1);
28
- const time = new Date(1, 1, 1);
29
- time.setMilliseconds(990);
30
- baServices.readPropertyMultiple.encodeAcknowledge(buffer, [
31
- {objectId: {type: 9, instance: 50000}, values: [
32
- {property: {id: 81, index: 0xFFFFFFFF}, value: [
33
- {type: 0},
34
- {type: 1, value: null},
35
- {type: 1, value: true},
36
- {type: 1, value: false},
37
- {type: 2, value: 1},
38
- {type: 2, value: 1000},
39
- {type: 2, value: 1000000},
40
- {type: 2, value: 1000000000},
41
- {type: 3, value: -1},
42
- {type: 3, value: -1000},
43
- {type: 3, value: -1000000},
44
- {type: 3, value: -1000000000},
45
- {type: 4, value: 0.1},
46
- {type: 5, value: 100.121212},
47
- {type: 6, value: [1, 2, 100, 200]},
48
- {type: 7, value: 'Test1234$'},
49
- {type: 8, value: {bitsUsed: 0, value: []}},
50
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}},
51
- {type: 9, value: 4},
52
- {type: 10, value: date},
53
- {type: 11, value: time},
54
- {type: 12, value: {type: 3, instance: 0}}
55
- ]}
56
- ]}
57
- ]);
58
- const result = baServices.readPropertyMultiple.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
59
- delete result.len;
60
- expect(Math.floor(0.1 * 10000)).toEqual(Math.floor(result.values[0].values[0].value[12].value * 10000));
61
- result.values[0].values[0].value[12].value = 0;
62
- expect(result).toEqual({
63
- values: [{
64
- objectId: {
65
- type: 9,
66
- instance: 50000
67
- },
68
- values: [{
69
- index: 4294967295,
70
- id: 81,
71
- value: [
72
- {type: 0, value: null},
73
- {type: 0, value: null},
74
- {type: 1, value: true},
75
- {type: 1, value: false},
76
- {type: 2, value: 1},
77
- {type: 2, value: 1000},
78
- {type: 2, value: 1000000},
79
- {type: 2, value: 1000000000},
80
- {type: 3, value: -1},
81
- {type: 3, value: -1000},
82
- {type: 3, value: -1000000},
83
- {type: 3, value: -1000000000},
84
- {type: 4, value: 0},
85
- {type: 5, value: 100.121212},
86
- {type: 6, value: [1, 2, 100, 200]},
87
- {type: 7, value: 'Test1234$', encoding: 0},
88
- {type: 8, value: {bitsUsed: 0, value: []}},
89
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}},
90
- {type: 9, value: 4},
91
- {type: 10, value: date},
92
- {type: 11, value: time},
93
- {type: 12, value: {type: 3, instance: 0}}
94
- ]
95
- }]
96
- }]
97
- });
98
- });
99
-
100
- it('should successfully encode and decode an error', () => {
101
- const buffer = utils.getBuffer();
102
- baServices.readPropertyMultiple.encodeAcknowledge(buffer, [
103
- {objectId: {type: 9, instance: 50000}, values: [
104
- {property: {id: 81, index: 0xFFFFFFFF}, value: [
105
- {type: 0, value: {type: 'BacnetError', errorClass: 12, errorCode: 13}}
106
- ]}
107
- ]}
108
- ]);
109
- const result = baServices.readPropertyMultiple.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
110
- delete result.len;
111
- expect(result).toEqual({
112
- values: [{
113
- objectId: {
114
- type: 9,
115
- instance: 50000
116
- },
117
- values: [{
118
- index: 4294967295,
119
- id: 81,
120
- value: [{
121
- type: 105,
122
- value: {
123
- errorClass: 12,
124
- errorCode: 13
125
- }
126
- }]
127
- }]
128
- }]
129
- });
130
- });
131
- });