@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,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
- });