@bitpoolos/edge-bacnet 1.0.6 → 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 +585 -152
  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 +6 -4
  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,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
- });