@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,58 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baBvlc = require('../../lib/bvlc');
5
-
6
- describe('bacstack - BVLC layer', () => {
7
- it('should successfuly encode and decode a package', () => {
8
- const buffer = utils.getBuffer();
9
- baBvlc.encode(buffer.buffer, 10, 1482);
10
- const result = baBvlc.decode(buffer.buffer, 0);
11
- expect(result).toEqual({
12
- len: 4,
13
- func: 10,
14
- msgLength: 1482
15
- });
16
- });
17
-
18
- it('should successfuly encode and decode a forwarded package', () => {
19
- const buffer = utils.getBuffer();
20
- baBvlc.encode(buffer.buffer, 4, 1482);
21
- const result = baBvlc.decode(buffer.buffer, 0);
22
- expect(result).toEqual({
23
- len: 10,
24
- func: 4,
25
- msgLength: 1482
26
- });
27
- });
28
-
29
- it('should fail if invalid BVLC type', () => {
30
- const buffer = utils.getBuffer();
31
- baBvlc.encode(buffer.buffer, 10, 1482);
32
- buffer.buffer[0] = 8;
33
- const result = baBvlc.decode(buffer.buffer, 0);
34
- expect(result).toBeUndefined();
35
- });
36
-
37
- it('should fail if invalid length', () => {
38
- const buffer = utils.getBuffer();
39
- baBvlc.encode(buffer.buffer, 10, 1481);
40
- buffer.buffer[0] = 8;
41
- const result = baBvlc.decode(buffer.buffer, 0);
42
- expect(result).toBeUndefined();
43
- });
44
-
45
- it('should fail if invalid function', () => {
46
- const buffer = utils.getBuffer();
47
- baBvlc.encode(buffer.buffer, 100, 1482);
48
- const result = baBvlc.decode(buffer.buffer, 0);
49
- expect(result).toBeUndefined();
50
- });
51
-
52
- it('should fail if unsuported function', () => {
53
- const buffer = utils.getBuffer();
54
- baBvlc.encode(buffer.buffer, 5, 1482);
55
- const result = baBvlc.decode(buffer.buffer, 0);
56
- expect(result).toBeUndefined();
57
- });
58
- });
@@ -1,119 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baNpdu = require('../../lib/npdu');
5
-
6
- describe('bacstack - NPDU layer', () => {
7
- it('should successfully decode the NPDU function', () => {
8
- const result = baNpdu.decodeFunction([0, 1, 12], 1);
9
- expect(result).toEqual(12);
10
- });
11
-
12
- it('should fail decoding the NPDU function if invalid version', () => {
13
- const result = baNpdu.decodeFunction([0, 2, 12], 1);
14
- expect(result).toBeUndefined();
15
- });
16
-
17
- it('should successfully encode and decode a basic NPDU package', () => {
18
- const buffer = utils.getBuffer();
19
- baNpdu.encode(buffer, 1);
20
- const result = baNpdu.decode(buffer.buffer, 0);
21
- expect(result).toEqual({
22
- len: 2,
23
- funct: 1,
24
- destination: undefined,
25
- source: undefined,
26
- hopCount: 0,
27
- networkMsgType: 0,
28
- vendorId: 0
29
- });
30
- });
31
-
32
- it('should successfully encode and decode a NPDU package with destination', () => {
33
- const buffer = utils.getBuffer();
34
- const destination = {net: 1000, adr: [1, 2, 3]};
35
- baNpdu.encode(buffer, 1, destination, undefined, 11, 5, 7);
36
- const result = baNpdu.decode(buffer.buffer, 0);
37
- expect(result).toEqual({
38
- len: 9,
39
- funct: 33,
40
- destination: {type: 0, net: 1000, adr: [1, 2, 3]},
41
- source: undefined,
42
- hopCount: 11,
43
- networkMsgType: 0,
44
- vendorId: 0
45
- });
46
- });
47
-
48
- it('should successfully encode and decode a NPDU package with destination and source', () => {
49
- const buffer = utils.getBuffer();
50
- const destination = {net: 1000, adr: [1, 2, 3]};
51
- const source = {net: 1000, adr: [1, 2, 3]};
52
- baNpdu.encode(buffer, 1, destination, source, 13, 10, 11);
53
- const result = baNpdu.decode(buffer.buffer, 0);
54
- expect(result).toEqual({
55
- len: 15,
56
- funct: 41,
57
- destination: {type: 0, net: 1000, adr: [1, 2, 3]},
58
- source: {type: 0, net: 1000, adr: [1, 2, 3]},
59
- hopCount: 13,
60
- networkMsgType: 0,
61
- vendorId: 0
62
- });
63
- });
64
-
65
- it('should successfully encode and decode a NPDU package with broadcast destination and source', () => {
66
- const buffer = utils.getBuffer();
67
- const destination = {net: 65535};
68
- const source = {net: 1000};
69
- baNpdu.encode(buffer, 1, destination, source, 12, 8, 9);
70
- const result = baNpdu.decode(buffer.buffer, 0);
71
- expect(result).toEqual({
72
- len: 9,
73
- funct: 41,
74
- destination: {type: 0, net: 65535},
75
- source: {type: 0, net: 1000},
76
- hopCount: 12,
77
- networkMsgType: 0,
78
- vendorId: 0
79
- });
80
- });
81
-
82
- it('should successfully encode and decode a network layer NPDU package', () => {
83
- const buffer = utils.getBuffer();
84
- baNpdu.encode(buffer, 128, undefined, undefined, 1, 128, 7777);
85
- const result = baNpdu.decode(buffer.buffer, 0);
86
- expect(result).toEqual({
87
- len: 5,
88
- funct: 128,
89
- destination: undefined,
90
- source: undefined,
91
- hopCount: 0,
92
- networkMsgType: 128,
93
- vendorId: 7777
94
- });
95
- });
96
-
97
- it('should successfully encode and decode a who is router to network layer NPDU package', () => {
98
- const buffer = utils.getBuffer();
99
- baNpdu.encode(buffer, 128, undefined, undefined, 1, 0, 7777);
100
- const result = baNpdu.decode(buffer.buffer, 0);
101
- expect(result).toEqual({
102
- len: 5,
103
- funct: 128,
104
- destination: undefined,
105
- source: undefined,
106
- hopCount: 0,
107
- networkMsgType: 0,
108
- vendorId: 0
109
- });
110
- });
111
-
112
- it('should fail if invalid BACNET version', () => {
113
- const buffer = utils.getBuffer();
114
- baNpdu.encode(buffer, 12, undefined, undefined, 1, 2, 3);
115
- buffer.buffer[0] = 2;
116
- const result = baNpdu.decode(buffer.buffer, 0);
117
- expect(result).toBeUndefined();
118
- });
119
- });
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer AddListElement unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.addListElement.encode(buffer, {type: 11, instance: 560}, 85, 2, [
10
- {type: 1, value: false},
11
- {type: 2, value: 1}
12
- ]);
13
- const result = baServices.addListElement.decode(buffer.buffer, 0, buffer.offset);
14
- delete result.len;
15
- expect(result).toEqual({
16
- objectId: {type: 11, instance: 560},
17
- property: {id: 85, index: 2},
18
- values: [
19
- {type: 1, value: false},
20
- {type: 2, value: 1}
21
- ]
22
- });
23
- });
24
- });
@@ -1,71 +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 AlarmAcknowledge unit', () => {
8
- it('should successfully encode and decode with time timestamp', () => {
9
- const buffer = utils.getBuffer();
10
- const eventTime = new Date(1, 1, 1);
11
- eventTime.setMilliseconds(990);
12
- const ackTime = new Date(1, 1, 1);
13
- ackTime.setMilliseconds(880);
14
- baServices.alarmAcknowledge.encode(buffer, 57, {type: 0, instance: 33}, 5, 'Alarm Acknowledge Test', {value: eventTime, type: baEnum.TimeStamp.TIME}, {value: ackTime, type: baEnum.TimeStamp.TIME});
15
- const result = baServices.alarmAcknowledge.decode(buffer.buffer, 0, buffer.offset);
16
- delete result.len;
17
- expect(result).toEqual({
18
- acknowledgedProcessId: 57,
19
- eventObjectId: {
20
- type: 0,
21
- instance: 33
22
- },
23
- eventStateAcknowledged: 5,
24
- acknowledgeSource: 'Alarm Acknowledge Test',
25
- eventTimeStamp: eventTime,
26
- acknowledgeTimeStamp: ackTime
27
- });
28
- });
29
-
30
- it('should successfully encode and decode with sequence timestamp', () => {
31
- const buffer = utils.getBuffer();
32
- const eventTime = 5;
33
- const ackTime = 6;
34
- baServices.alarmAcknowledge.encode(buffer, 57, {type: 0, instance: 33}, 5, 'Alarm Acknowledge Test', {value: eventTime, type: baEnum.TimeStamp.SEQUENCE_NUMBER}, {value: ackTime, type: baEnum.TimeStamp.SEQUENCE_NUMBER});
35
- const result = baServices.alarmAcknowledge.decode(buffer.buffer, 0, buffer.offset);
36
- delete result.len;
37
- expect(result).toEqual({
38
- acknowledgedProcessId: 57,
39
- eventObjectId: {
40
- type: 0,
41
- instance: 33
42
- },
43
- eventStateAcknowledged: 5,
44
- acknowledgeSource: 'Alarm Acknowledge Test',
45
- eventTimeStamp: eventTime,
46
- acknowledgeTimeStamp: ackTime
47
- });
48
- });
49
-
50
- it('should successfully encode and decode with datetime timestamp', () => {
51
- const buffer = utils.getBuffer();
52
- const eventTime = new Date(1, 1, 1);
53
- eventTime.setMilliseconds(990);
54
- const ackTime = new Date(1, 1, 2);
55
- ackTime.setMilliseconds(880);
56
- baServices.alarmAcknowledge.encode(buffer, 57, {type: 0, instance: 33}, 5, 'Alarm Acknowledge Test', {value: eventTime, type: baEnum.TimeStamp.DATETIME}, {value: ackTime, type: baEnum.TimeStamp.DATETIME});
57
- const result = baServices.alarmAcknowledge.decode(buffer.buffer, 0, buffer.offset);
58
- delete result.len;
59
- expect(result).toEqual({
60
- acknowledgedProcessId: 57,
61
- eventObjectId: {
62
- type: 0,
63
- instance: 33
64
- },
65
- eventStateAcknowledged: 5,
66
- acknowledgeSource: 'Alarm Acknowledge Test',
67
- eventTimeStamp: eventTime,
68
- acknowledgeTimeStamp: ackTime
69
- });
70
- });
71
- });
@@ -1,22 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer AlarmSummary unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.alarmSummary.encode(buffer, [
10
- {objectId: {type: 12, instance: 12}, alarmState: 12, acknowledgedTransitions: {value: [12], bitsUsed: 5}},
11
- {objectId: {type: 13, instance: 13}, alarmState: 13, acknowledgedTransitions: {value: [13], bitsUsed: 6}}
12
- ]);
13
- const result = baServices.alarmSummary.decode(buffer.buffer, 0, buffer.offset);
14
- delete result.len;
15
- expect(result).toEqual({
16
- alarms: [
17
- {objectId: {type: 12, instance: 12}, alarmState: 12, acknowledgedTransitions: {value: [12], bitsUsed: 5}},
18
- {objectId: {type: 13, instance: 13}, alarmState: 13, acknowledgedTransitions: {value: [13], bitsUsed: 6}}
19
- ]
20
- });
21
- });
22
- });
@@ -1,54 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer AtomicReadFile unit', () => {
7
- it('should successfully encode and decode as stream', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.atomicReadFile.encode(buffer, true, {type: 13, instance: 5000}, -50, 12);
10
- const result = baServices.atomicReadFile.decode(buffer.buffer, 0);
11
- delete result.len;
12
- expect(result).toEqual({
13
- objectId: {type: 13, instance: 5000},
14
- count: 12,
15
- isStream: true,
16
- position: -50
17
- });
18
- });
19
-
20
- it('should successfully encode and decode as non-stream', () => {
21
- const buffer = utils.getBuffer();
22
- baServices.atomicReadFile.encode(buffer, false, {type: 14, instance: 5001}, 60, 13);
23
- const result = baServices.atomicReadFile.decode(buffer.buffer, 0);
24
- delete result.len;
25
- expect(result).toEqual({
26
- objectId: {type: 14, instance: 5001},
27
- count: 13,
28
- isStream: false,
29
- position: 60
30
- });
31
- });
32
- });
33
-
34
- describe('AtomicReadFileAcknowledge', () => {
35
- it('should successfully encode and decode as stream', () => {
36
- const buffer = utils.getBuffer();
37
- baServices.atomicReadFile.encodeAcknowledge(buffer, true, false, 0, 90, [[12, 12, 12]], [3]);
38
- const result = baServices.atomicReadFile.decodeAcknowledge(buffer.buffer, 0);
39
- delete result.len;
40
- expect(result).toEqual({
41
- isStream: true,
42
- position: 0,
43
- endOfFile: false,
44
- buffer: Buffer.from([12, 12, 12])
45
- });
46
- });
47
-
48
- it('should successfully encode and decode as non-stream', () => {
49
- const buffer = utils.getBuffer();
50
- baServices.atomicReadFile.encodeAcknowledge(buffer, false, false, 0, 90, [12, 12, 12], 3);
51
- // TODO: AtomicReadFileAcknowledge as non-stream not yet implemented
52
- expect(() => baServices.atomicReadFile.decodeAcknowledge(buffer.buffer, 0)).toThrow('NotImplemented');
53
- });
54
- });
@@ -1,56 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer AtomicWriteFile unit', () => {
7
- it('should successfully encode and decode as stream', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.atomicWriteFile.encode(buffer, true, {type: 12, instance: 51}, 5, [[12, 12]]);
10
- const result = baServices.atomicWriteFile.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- objectId: {type: 12, instance: 51},
14
- isStream: true,
15
- position: 5,
16
- blocks: [[12, 12]]
17
- });
18
- });
19
-
20
- it('should successfully encode and decode as non-stream', () => {
21
- const buffer = utils.getBuffer();
22
- baServices.atomicWriteFile.encode(buffer, false, {type: 12, instance: 88}, 10, [[12, 12], [12, 12]]);
23
- const result = baServices.atomicWriteFile.decode(buffer.buffer, 0, buffer.offset);
24
- delete result.len;
25
- expect(result).toEqual({
26
- objectId: {type: 12, instance: 88},
27
- isStream: false,
28
- position: 10,
29
- blocks: [[12, 12], [12, 12]]
30
- });
31
- });
32
- });
33
-
34
- describe('AtomicWriteFileAcknowledge', () => {
35
- it('should successfully encode and decode streamed file', () => {
36
- const buffer = utils.getBuffer();
37
- baServices.atomicWriteFile.encodeAcknowledge(buffer, true, -10);
38
- const result = baServices.atomicWriteFile.decodeAcknowledge(buffer.buffer, 0);
39
- delete result.len;
40
- expect(result).toEqual({
41
- isStream: true,
42
- position: -10
43
- });
44
- });
45
-
46
- it('should successfully encode and decode non-streamed file', () => {
47
- const buffer = utils.getBuffer();
48
- baServices.atomicWriteFile.encodeAcknowledge(buffer, false, 10);
49
- const result = baServices.atomicWriteFile.decodeAcknowledge(buffer.buffer, 0);
50
- delete result.len;
51
- expect(result).toEqual({
52
- isStream: false,
53
- position: 10
54
- });
55
- });
56
- });
@@ -1,98 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer COVNotify unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- const date = new Date(1, 1, 1);
10
- const time = new Date(1, 1, 1);
11
- time.setMilliseconds(990);
12
- baServices.covNotify.encode(buffer, 7, 443, {type: 2, instance: 12}, 120, [
13
- {property: {id: 81, index: 0xFFFFFFFF}, value: [
14
- {type: 0},
15
- {type: 1, value: null},
16
- {type: 1, value: true},
17
- {type: 1, value: false},
18
- {type: 2, value: 1},
19
- {type: 2, value: 1000},
20
- {type: 2, value: 1000000},
21
- {type: 2, value: 1000000000},
22
- {type: 3, value: -1},
23
- {type: 3, value: -1000},
24
- {type: 3, value: -1000000},
25
- {type: 3, value: -1000000000},
26
- {type: 4, value: 0.1},
27
- {type: 5, value: 100.121212},
28
- {type: 6, value: [1, 2, 100, 200]},
29
- {type: 7, value: 'Test1234$'},
30
- {type: 8, value: {bitsUsed: 0, value: []}},
31
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}},
32
- {type: 9, value: 4},
33
- {type: 10, value: date},
34
- {type: 11, value: time}
35
- ], priority: 0},
36
- {property: {id: 82, index: 0}, value: [
37
- {type: 12, value: {type: 3, instance: 0}}
38
- ], priority: 8}
39
- ]);
40
- const result = baServices.covNotify.decode(buffer.buffer, 0, buffer.offset);
41
- delete result.len;
42
- result.values[0].value[12].value = Math.floor(result.values[0].value[12].value * 1000) / 1000;
43
- expect(result).toEqual({
44
- initiatingDeviceId: {
45
- type: 8,
46
- instance: 443
47
- },
48
- monitoredObjectId: {
49
- type: 2,
50
- instance: 12
51
- },
52
- subscriberProcessId: 7,
53
- timeRemaining: 120,
54
- values: [
55
- {
56
- priority: 0,
57
- property: {
58
- index: 0xFFFFFFFF,
59
- id: 81
60
- },
61
- value: [
62
- {type: 0, value: null},
63
- {type: 0, value: null},
64
- {type: 1, value: true},
65
- {type: 1, value: false},
66
- {type: 2, value: 1},
67
- {type: 2, value: 1000},
68
- {type: 2, value: 1000000},
69
- {type: 2, value: 1000000000},
70
- {type: 3, value: -1},
71
- {type: 3, value: -1000},
72
- {type: 3, value: -1000000},
73
- {type: 3, value: -1000000000},
74
- {type: 4, value: 0.1},
75
- {type: 5, value: 100.121212},
76
- {type: 6, value: [1, 2, 100, 200]},
77
- {type: 7, value: 'Test1234$', encoding: 0},
78
- {type: 8, value: {bitsUsed: 0, value: []}},
79
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}},
80
- {type: 9, value: 4},
81
- {type: 10, value: date},
82
- {type: 11, value: time}
83
- ]
84
- },
85
- {
86
- priority: 0,
87
- property: {
88
- index: 0xFFFFFFFF,
89
- id: 82
90
- },
91
- value: [
92
- {type: 12, value: {type: 3, instance: 0}}
93
- ]
94
- }
95
- ]
96
- });
97
- });
98
- });
@@ -1,90 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer CreateObject unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- const date = new Date(1, 1, 1);
10
- const time = new Date(1, 1, 1);
11
- time.setMilliseconds(990);
12
- baServices.createObject.encode(buffer, {type: 1, instance: 10}, [
13
- {property: {id: 81, index: 0xFFFFFFFF}, value: [
14
- {type: 0},
15
- {type: 1, value: null},
16
- {type: 1, value: true},
17
- {type: 1, value: false},
18
- {type: 2, value: 1},
19
- {type: 2, value: 1000},
20
- {type: 2, value: 1000000},
21
- {type: 2, value: 1000000000},
22
- {type: 3, value: -1},
23
- {type: 3, value: -1000},
24
- {type: 3, value: -1000000},
25
- {type: 3, value: -1000000000},
26
- {type: 4, value: 0.1},
27
- {type: 5, value: 100.121212},
28
- {type: 6, value: [1, 2, 100, 200]},
29
- {type: 7, value: 'Test1234$'},
30
- {type: 8, value: {bitsUsed: 0, value: []}},
31
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}},
32
- {type: 9, value: 4},
33
- {type: 10, value: date},
34
- {type: 11, value: time}
35
- ], priority: 0},
36
- {property: {id: 82, index: 0}, value: [
37
- {type: 12, value: {type: 3, instance: 0}}
38
- ], priority: 0}
39
- ]);
40
- const result = baServices.createObject.decode(buffer.buffer, 0, buffer.offset);
41
- delete result.len;
42
- result.values[0].value[12].value = Math.floor(result.values[0].value[12].value * 1000) / 1000;
43
- expect(result).toEqual({
44
- objectId: {
45
- type: 1,
46
- instance: 10
47
- },
48
- values: [
49
- {
50
- property: {
51
- index: 0xFFFFFFFF,
52
- id: 81
53
- },
54
- value: [
55
- {type: 0, value: null},
56
- {type: 0, value: null},
57
- {type: 1, value: true},
58
- {type: 1, value: false},
59
- {type: 2, value: 1},
60
- {type: 2, value: 1000},
61
- {type: 2, value: 1000000},
62
- {type: 2, value: 1000000000},
63
- {type: 3, value: -1},
64
- {type: 3, value: -1000},
65
- {type: 3, value: -1000000},
66
- {type: 3, value: -1000000000},
67
- {type: 4, value: 0.1},
68
- {type: 5, value: 100.121212},
69
- {type: 6, value: [1, 2, 100, 200]},
70
- {type: 7, value: 'Test1234$', encoding: 0},
71
- {type: 8, value: {bitsUsed: 0, value: []}},
72
- {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}},
73
- {type: 9, value: 4},
74
- {type: 10, value: date},
75
- {type: 11, value: time}
76
- ]
77
- },
78
- {
79
- property: {
80
- index: 0xFFFFFFFF,
81
- id: 82
82
- },
83
- value: [
84
- {type: 12, value: {type: 3, instance: 0}}
85
- ]
86
- }
87
- ]
88
- });
89
- });
90
- });
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer DeleteObject unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.deleteObject.encode(buffer, {type: 1, instance: 10});
10
- const result = baServices.deleteObject.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- objectType: 1,
14
- instance: 10
15
- });
16
- });
17
- });
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer DeviceCommunicationControl unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.deviceCommunicationControl.encode(buffer, 30, 1);
10
- const result = baServices.deviceCommunicationControl.decode(buffer.buffer, 0, buffer.offset);
11
- delete result.len;
12
- expect(result).toEqual({
13
- timeDuration: 30,
14
- enableDisable: 1
15
- });
16
- });
17
-
18
- it('should successfully encode and decode with password', () => {
19
- const buffer = utils.getBuffer();
20
- baServices.deviceCommunicationControl.encode(buffer, 30, 1, 'Test1234!');
21
- const result = baServices.deviceCommunicationControl.decode(buffer.buffer, 0, buffer.offset);
22
- delete result.len;
23
- expect(result).toEqual({
24
- timeDuration: 30,
25
- enableDisable: 1,
26
- password: 'Test1234!'
27
- });
28
- });
29
- });
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('./utils');
4
- const baServices = require('../../lib/services');
5
-
6
- describe('bacstack - Services layer Error unit', () => {
7
- it('should successfully encode and decode', () => {
8
- const buffer = utils.getBuffer();
9
- baServices.error.encode(buffer, 15, 25);
10
- const result = baServices.error.decode(buffer.buffer, 0);
11
- delete result.len;
12
- expect(result).toEqual({
13
- class: 15,
14
- code: 25
15
- });
16
- });
17
- });