@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
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * This script will discover tze devices and tries to register a COV for ANALOG_INPUT 0
5
+ * The script works very well when the Yabe Room Simulator exe is running
6
+ *
7
+ * After 20s the subscription is cancelled by updating it with a lifetime of 1s
8
+ */
9
+
10
+ const Bacnet = require('../index');
11
+
12
+ // you need to run the Weather2 Station of the YABE BACnet package
13
+ // https://sourceforge.net/projects/yetanotherbacnetexplorer/
14
+
15
+ // create instance of Bacnet
16
+ const bacnetClient = new Bacnet({apduTimeout: 10000, interface: '0.0.0.0'});
17
+
18
+ // emitted for each new message
19
+ bacnetClient.on('message', (msg, rinfo) => {
20
+ console.log(msg);
21
+ if (rinfo) console.log(rinfo);
22
+ });
23
+
24
+ // emitted on errors
25
+ bacnetClient.on('error', (err) => {
26
+ console.error(err);
27
+ bacnetClient.close();
28
+ });
29
+
30
+ // emmitted when Bacnet server listens for incoming UDP packages
31
+ bacnetClient.on('listening', () => {
32
+ console.log('sent whoIs ' + Date.now());
33
+ // discover devices once we are listening
34
+ bacnetClient.whoIs();
35
+ });
36
+
37
+ // emitted when "Change of object" Messages are coming in
38
+ bacnetClient.on('covNotifyUnconfirmed', (data) => {
39
+ console.log('Received COV: ' + JSON.stringify(data));
40
+ });
41
+
42
+ // emitted when a new device is discovered in the network
43
+ bacnetClient.on('iAm', (device) => {
44
+ console.log('Received iAm: ' + JSON.stringify(device, null, 4));
45
+ // address object of discovered device,
46
+ // just use in subsequent calls that are directed to this device
47
+ const address = device.header.sender;
48
+
49
+ //discovered device ID
50
+ const deviceId = device.payload.deviceId;
51
+ console.log('Found Device ' + deviceId + ' on ' + JSON.stringify(address));
52
+
53
+ // Subscribe changes for RESENT_VALUE of ANALOG_INPUT,0 object
54
+ // lifetime 0 means "for ever"
55
+ bacnetClient.subscribeCov(address, {type: 0, instance: 0}, 85, false, false, 0, (err) => {
56
+ console.log('subscribeCOV' + err);
57
+ });
58
+
59
+ // after 20s re-subscribe but with 1s lifetime to stop it
60
+ // I had issues with "cancel" call with the simulated device
61
+ setTimeout(() => {
62
+ bacnetClient.subscribeCov(address, {type: 0, instance: 0}, 85, false, false, 1, (err) => {
63
+ console.log('UnsubscribeCOV' + err);
64
+ });
65
+ }, 20000);
66
+
67
+ });
68
+
69
+ // after 30s end the connection
70
+ setTimeout(() => {
71
+
72
+ bacnetClient.close();
73
+ console.log('closed transport ' + Date.now());
74
+
75
+ }, 30000); // do not close to fast
@@ -1,2 +1,5 @@
1
+ 'use strict';
2
+
1
3
  module.exports = require('./lib/client');
4
+ module.exports._ = require('underscore');
2
5
  module.exports.enum = require('./lib/enum');
@@ -1,6 +1,9 @@
1
1
  'use strict';
2
2
 
3
- const baEnum = require('./enum');
3
+ const baAsn1 = require('./asn1');
4
+ const baEnum = require('./enum');
5
+ const debug = require('debug')('bacnet:apdu:debug');
6
+ const trace = require('debug')('bacnet:apdu:trace');
4
7
 
5
8
  const getDecodedType = module.exports.getDecodedType = (buffer, offset) => {
6
9
  return buffer[offset];
@@ -13,16 +16,16 @@ module.exports.setDecodedType = (buffer, offset, type) => {
13
16
  module.exports.getDecodedInvokeId = (buffer, offset) => {
14
17
  const type = getDecodedType(buffer, offset);
15
18
  switch (type & baEnum.PDU_TYPE_MASK) {
16
- case baEnum.PduTypes.SIMPLE_ACK:
17
- case baEnum.PduTypes.COMPLEX_ACK:
18
- case baEnum.PduTypes.ERROR:
19
- case baEnum.PduTypes.REJECT:
20
- case baEnum.PduTypes.ABORT:
19
+ case baEnum.PduType.SIMPLE_ACK:
20
+ case baEnum.PduType.COMPLEX_ACK:
21
+ case baEnum.PduType.ERROR:
22
+ case baEnum.PduType.REJECT:
23
+ case baEnum.PduType.ABORT:
21
24
  return buffer[offset + 1];
22
- case baEnum.PduTypes.CONFIRMED_REQUEST:
25
+ case baEnum.PduType.CONFIRMED_REQUEST:
23
26
  return buffer[offset + 2];
24
27
  default:
25
- return;
28
+ return undefined;
26
29
  }
27
30
  };
28
31
 
@@ -30,7 +33,7 @@ module.exports.encodeConfirmedServiceRequest = (buffer, type, service, maxSegmen
30
33
  buffer.buffer[buffer.offset++] = type;
31
34
  buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
32
35
  buffer.buffer[buffer.offset++] = invokeId;
33
- if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
36
+ if ((type & baEnum.PduConReqBit.SEGMENTED_MESSAGE) > 0) {
34
37
  buffer.buffer[buffer.offset++] = sequencenumber;
35
38
  buffer.buffer[buffer.offset++] = proposedWindowSize;
36
39
  }
@@ -45,20 +48,20 @@ module.exports.decodeConfirmedServiceRequest = (buffer, offset) => {
45
48
  const invokeId = buffer[offset++];
46
49
  let sequencenumber = 0;
47
50
  let proposedWindowNumber = 0;
48
- if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
51
+ if ((type & baEnum.PduConReqBit.SEGMENTED_MESSAGE) > 0) {
49
52
  sequencenumber = buffer[offset++];
50
53
  proposedWindowNumber = buffer[offset++];
51
54
  }
52
55
  const service = buffer[offset++];
53
56
  return {
54
57
  len: offset - orgOffset,
55
- type: type,
56
- service: service,
57
- maxSegments: maxSegments,
58
- maxApdu: maxApdu,
59
- invokeId: invokeId,
60
- sequencenumber: sequencenumber,
61
- proposedWindowNumber: proposedWindowNumber
58
+ type,
59
+ service,
60
+ maxSegments,
61
+ maxApdu,
62
+ invokeId,
63
+ sequencenumber,
64
+ proposedWindowNumber
62
65
  };
63
66
  };
64
67
 
@@ -73,8 +76,8 @@ module.exports.decodeUnconfirmedServiceRequest = (buffer, offset) => {
73
76
  const service = buffer[offset++];
74
77
  return {
75
78
  len: offset - orgOffset,
76
- type: type,
77
- service: service
79
+ type,
80
+ service
78
81
  };
79
82
  };
80
83
 
@@ -91,9 +94,9 @@ module.exports.decodeSimpleAck = (buffer, offset) => {
91
94
  const service = buffer[offset++];
92
95
  return {
93
96
  len: offset - orgOffset,
94
- type: type,
95
- service: service,
96
- invokeId: invokeId
97
+ type,
98
+ service,
99
+ invokeId
97
100
  };
98
101
  };
99
102
 
@@ -101,7 +104,7 @@ module.exports.encodeComplexAck = (buffer, type, service, invokeId, sequencenumb
101
104
  let len = 3;
102
105
  buffer.buffer[buffer.offset++] = type;
103
106
  buffer.buffer[buffer.offset++] = invokeId;
104
- if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
107
+ if ((type & baEnum.PduConReqBit.SEGMENTED_MESSAGE) > 0) {
105
108
  buffer.buffer[buffer.offset++] = sequencenumber;
106
109
  buffer.buffer[buffer.offset++] = proposedWindowNumber;
107
110
  len += 2;
@@ -116,18 +119,18 @@ module.exports.decodeComplexAck = (buffer, offset) => {
116
119
  const invokeId = buffer[offset++];
117
120
  let sequencenumber = 0;
118
121
  let proposedWindowNumber = 0;
119
- if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
122
+ if ((type & baEnum.PduConReqBit.SEGMENTED_MESSAGE) > 0) {
120
123
  sequencenumber = buffer[offset++];
121
124
  proposedWindowNumber = buffer[offset++];
122
125
  }
123
126
  const service = buffer[offset++];
124
127
  return {
125
128
  len: offset - orgOffset,
126
- type: type,
127
- service: service,
128
- invokeId: invokeId,
129
- sequencenumber: sequencenumber,
130
- proposedWindowNumber: proposedWindowNumber
129
+ type,
130
+ service,
131
+ invokeId,
132
+ sequencenumber,
133
+ proposedWindowNumber
131
134
  };
132
135
  };
133
136
 
@@ -146,10 +149,24 @@ module.exports.decodeSegmentAck = (buffer, offset) => {
146
149
  const actualWindowSize = buffer[offset++];
147
150
  return {
148
151
  len: offset - orgOffset,
149
- type: type,
150
- originalInvokeId: originalInvokeId,
151
- sequencenumber: sequencenumber,
152
- actualWindowSize: actualWindowSize
152
+ type,
153
+ originalInvokeId,
154
+ sequencenumber,
155
+ actualWindowSize
156
+ };
157
+ };
158
+
159
+ module.exports.encodeResult = (buffer, /* BvlcResultFormat */ resultCode) => {
160
+ baAsn1.encodeUnsigned(buffer, resultCode, 2);
161
+ };
162
+
163
+ module.exports.decodeResult = (buffer, offset) => {
164
+ const orgOffset = offset;
165
+ const decode = baAsn1.decodeUnsigned(buffer, offset, 2);
166
+ offset += decode.len;
167
+ return {
168
+ len: offset - orgOffset,
169
+ resultCode: decode.value, // BvlcResultFormat
153
170
  };
154
171
  };
155
172
 
@@ -166,9 +183,9 @@ module.exports.decodeError = (buffer, offset) => {
166
183
  const service = buffer[offset++];
167
184
  return {
168
185
  len: offset - orgOffset,
169
- type: type,
170
- service: service,
171
- invokeId: invokeId
186
+ type,
187
+ service,
188
+ invokeId
172
189
  };
173
190
  };
174
191
 
@@ -185,8 +202,8 @@ module.exports.decodeAbort = (buffer, offset) => {
185
202
  const reason = buffer[offset++];
186
203
  return {
187
204
  len: offset - orgOffset,
188
- type: type,
189
- invokeId: invokeId,
190
- reason: reason
205
+ type,
206
+ invokeId,
207
+ reason
191
208
  };
192
209
  };