@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.
- package/bacnet_client.js +650 -233
- package/bacnet_device.js +65 -16
- package/bacnet_gateway.html +242 -99
- package/bacnet_gateway.js +211 -27
- package/bacnet_object.js +1 -1
- package/bacnet_read.html +211 -133
- package/bacnet_read.js +24 -24
- package/bacnet_server.js +321 -0
- package/bacnet_write.html +24 -15
- package/bacnet_write.js +0 -2
- package/common.js +95 -9
- package/edge-bacnet-datastore.cfg +0 -0
- package/package.json +6 -4
- package/resources/confirmationservice.min.js +1 -0
- package/resources/confirmdialog.min.js +1 -0
- package/resources/fonts/primeicons.woff2 +0 -0
- package/resources/node-bacnet/CHANGELOG.md +481 -0
- package/resources/{bacstack → node-bacnet}/LICENSE.md +3 -1
- package/resources/node-bacnet/README.md +91 -0
- package/resources/node-bacnet/docs/Client.html +4422 -0
- package/resources/node-bacnet/docs/bacnet-icon-quad.png +0 -0
- package/resources/node-bacnet/docs/bacnet-icon-quad128.png +0 -0
- package/resources/node-bacnet/docs/bacnet-icon-quad64.png +0 -0
- package/resources/node-bacnet/docs/bacnet-icon-small.xcf +0 -0
- package/resources/node-bacnet/docs/bacnet-icon.xcf +0 -0
- package/resources/node-bacnet/docs/bacnet.html +7032 -0
- package/resources/node-bacnet/docs/client.js.html +1759 -0
- package/resources/node-bacnet/docs/enum.js.html +2530 -0
- package/resources/node-bacnet/docs/global.html +2068 -0
- package/resources/node-bacnet/docs/images/mocha-logo.svg +65 -0
- package/resources/node-bacnet/docs/index.html +283 -0
- package/resources/node-bacnet/docs/scripts/collapse.js +11 -0
- package/resources/node-bacnet/docs/scripts/jquery-3.1.1.min.js +4 -0
- package/resources/node-bacnet/docs/scripts/linenumber.js +26 -0
- package/resources/node-bacnet/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
- package/resources/node-bacnet/docs/scripts/prettify/lang-css.js +2 -0
- package/resources/node-bacnet/docs/scripts/prettify/prettify.js +28 -0
- package/resources/node-bacnet/docs/scripts/search.js +47 -0
- package/resources/node-bacnet/docs/services_i-am.js.html +157 -0
- package/resources/node-bacnet/docs/services_time-sync.js.html +118 -0
- package/resources/node-bacnet/docs/services_who-is.js.html +138 -0
- package/resources/node-bacnet/docs/styles/jsdoc.css +683 -0
- package/resources/node-bacnet/docs/styles/prettify.css +82 -0
- package/resources/node-bacnet/examples/discover-devices.js +66 -0
- package/resources/node-bacnet/examples/read-device.js +510 -0
- package/resources/node-bacnet/examples/subscribe-cov.js +75 -0
- package/resources/{bacstack → node-bacnet}/index.js +3 -0
- package/resources/{bacstack → node-bacnet}/lib/apdu.js +56 -39
- package/resources/{bacstack → node-bacnet}/lib/asn1.js +550 -532
- package/resources/node-bacnet/lib/bvlc.js +90 -0
- package/resources/node-bacnet/lib/client.js +1695 -0
- package/resources/node-bacnet/lib/enum.js +2463 -0
- package/resources/node-bacnet/lib/npdu.js +123 -0
- package/resources/{bacstack → node-bacnet}/lib/services/add-list-element.js +12 -6
- package/resources/{bacstack → node-bacnet}/lib/services/alarm-acknowledge.js +3 -3
- package/resources/{bacstack → node-bacnet}/lib/services/alarm-summary.js +5 -4
- package/resources/{bacstack → node-bacnet}/lib/services/atomic-read-file.js +49 -26
- package/resources/{bacstack → node-bacnet}/lib/services/atomic-write-file.js +40 -23
- package/resources/{bacstack → node-bacnet}/lib/services/cov-notify.js +33 -17
- package/resources/{bacstack → node-bacnet}/lib/services/create-object.js +23 -13
- package/resources/{bacstack → node-bacnet}/lib/services/delete-object.js +7 -2
- package/resources/{bacstack → node-bacnet}/lib/services/device-communication-control.js +8 -3
- package/resources/{bacstack → node-bacnet}/lib/services/error.js +7 -0
- package/resources/{bacstack → node-bacnet}/lib/services/event-information.js +10 -9
- package/resources/{bacstack → node-bacnet}/lib/services/event-notify-data.js +38 -16
- package/resources/{bacstack → node-bacnet}/lib/services/get-enrollment-summary.js +24 -11
- package/resources/{bacstack → node-bacnet}/lib/services/get-event-information.js +28 -13
- package/resources/node-bacnet/lib/services/i-am.js +90 -0
- package/resources/{bacstack/lib/services/i-have-broadcast.js → node-bacnet/lib/services/i-have.js} +3 -2
- package/resources/{bacstack → node-bacnet}/lib/services/index.js +7 -4
- package/resources/{bacstack → node-bacnet}/lib/services/life-safety-operation.js +3 -2
- package/resources/{bacstack → node-bacnet}/lib/services/private-transfer.js +3 -2
- package/resources/{bacstack → node-bacnet}/lib/services/read-property-multiple.js +11 -6
- package/resources/{bacstack → node-bacnet}/lib/services/read-property.js +42 -24
- package/resources/{bacstack → node-bacnet}/lib/services/read-range.js +37 -27
- package/resources/node-bacnet/lib/services/register-foreign-device.js +18 -0
- package/resources/{bacstack → node-bacnet}/lib/services/reinitialize-device.js +9 -4
- package/resources/{bacstack → node-bacnet}/lib/services/subscribe-cov.js +9 -4
- package/resources/{bacstack → node-bacnet}/lib/services/subscribe-property.js +18 -8
- package/resources/{bacstack → node-bacnet}/lib/services/time-sync.js +28 -5
- package/resources/{bacstack → node-bacnet}/lib/services/who-has.js +3 -3
- package/resources/{bacstack → node-bacnet}/lib/services/who-is.js +42 -9
- package/resources/{bacstack → node-bacnet}/lib/services/write-property-multiple.js +33 -16
- package/resources/{bacstack → node-bacnet}/lib/services/write-property.js +23 -13
- package/resources/node-bacnet/lib/transport.js +82 -0
- package/resources/node-bacnet/package.json +92 -0
- package/resources/primeicons.css +90 -2
- package/resources/bacstack/.codeclimate.yml +0 -15
- package/resources/bacstack/.dockerignore +0 -5
- package/resources/bacstack/.editorconfig +0 -13
- package/resources/bacstack/.eslintrc.yml +0 -13
- package/resources/bacstack/.github/ISSUE_TEMPLATE.md +0 -26
- package/resources/bacstack/.github/PULL_REQUEST_TEMPLATE.md +0 -14
- package/resources/bacstack/.github/workflows/ci.yml +0 -39
- package/resources/bacstack/.jscsrc +0 -8
- package/resources/bacstack/.jshintrc +0 -50
- package/resources/bacstack/.travis.yml +0 -27
- package/resources/bacstack/CHANGELOG.md +0 -232
- package/resources/bacstack/CODE_OF_CONDUCT.md +0 -74
- package/resources/bacstack/CONTRIBUTING.md +0 -77
- package/resources/bacstack/Dockerfile +0 -15
- package/resources/bacstack/FAQ.md +0 -64
- package/resources/bacstack/README.md +0 -157
- package/resources/bacstack/docker-compose.yml +0 -9
- package/resources/bacstack/lib/adpu.js +0 -190
- package/resources/bacstack/lib/bvlc.js +0 -43
- package/resources/bacstack/lib/client.js +0 -1028
- package/resources/bacstack/lib/enum.js +0 -1314
- package/resources/bacstack/lib/npdu.js +0 -119
- package/resources/bacstack/lib/services/i-am-broadcast.js +0 -51
- package/resources/bacstack/lib/services.js +0 -1963
- package/resources/bacstack/lib/transport.js +0 -52
- package/resources/bacstack/package-lock.json +0 -7974
- package/resources/bacstack/package.json +0 -84
- package/resources/bacstack/test/compliance/who-is.spec.js +0 -37
- package/resources/bacstack/test/integration/acknowledge-alarm.spec.js +0 -14
- package/resources/bacstack/test/integration/add-list-element.spec.js +0 -16
- package/resources/bacstack/test/integration/confirmed-event-notification.spec.js +0 -30
- package/resources/bacstack/test/integration/confirmed-private-transfer.spec.js +0 -15
- package/resources/bacstack/test/integration/create-object.spec.js +0 -16
- package/resources/bacstack/test/integration/delete-object.spec.js +0 -14
- package/resources/bacstack/test/integration/device-communication-control.spec.js +0 -14
- package/resources/bacstack/test/integration/get-alarm-summary.spec.js +0 -14
- package/resources/bacstack/test/integration/get-enrollment-summary.spec.js +0 -15
- package/resources/bacstack/test/integration/get-event-information.spec.js +0 -14
- package/resources/bacstack/test/integration/read-file.spec.js +0 -14
- package/resources/bacstack/test/integration/read-property-multiple.spec.js +0 -110
- package/resources/bacstack/test/integration/read-property.spec.js +0 -14
- package/resources/bacstack/test/integration/read-range.spec.js +0 -14
- package/resources/bacstack/test/integration/reinitialize-sevice.spec.js +0 -14
- package/resources/bacstack/test/integration/remove-list-element.spec.js +0 -16
- package/resources/bacstack/test/integration/subscribe-cov.spec.js +0 -14
- package/resources/bacstack/test/integration/subscribe-property.spec.js +0 -14
- package/resources/bacstack/test/integration/time-sync-utc.spec.js +0 -10
- package/resources/bacstack/test/integration/time-sync.spec.js +0 -10
- package/resources/bacstack/test/integration/unconfirmed-event-notification.spec.js +0 -28
- package/resources/bacstack/test/integration/unconfirmed-private-transfer.spec.js +0 -11
- package/resources/bacstack/test/integration/utils.js +0 -30
- package/resources/bacstack/test/integration/who-is.spec.js +0 -17
- package/resources/bacstack/test/integration/write-file.spec.js +0 -14
- package/resources/bacstack/test/integration/write-property-multiple.spec.js +0 -19
- package/resources/bacstack/test/integration/write-property.spec.js +0 -14
- package/resources/bacstack/test/unit/apdu.spec.js +0 -162
- package/resources/bacstack/test/unit/asn1.spec.js +0 -39
- package/resources/bacstack/test/unit/bacnet-apdu.spec.js +0 -161
- package/resources/bacstack/test/unit/bacnet-asn1.spec.js +0 -32
- package/resources/bacstack/test/unit/bacnet-bvlc.spec.js +0 -57
- package/resources/bacstack/test/unit/bacnet-npdu.spec.js +0 -118
- package/resources/bacstack/test/unit/bacnet-services.spec.js +0 -2052
- package/resources/bacstack/test/unit/bvlc.spec.js +0 -58
- package/resources/bacstack/test/unit/npdu.spec.js +0 -119
- package/resources/bacstack/test/unit/service-add-list-element.spec.js +0 -24
- package/resources/bacstack/test/unit/service-alarm-acknowledge.spec.js +0 -71
- package/resources/bacstack/test/unit/service-alarm-summary.spec.js +0 -22
- package/resources/bacstack/test/unit/service-atomic-read-file.spec.js +0 -54
- package/resources/bacstack/test/unit/service-atomic-write-file.spec.js +0 -56
- package/resources/bacstack/test/unit/service-cov-notify.spec.js +0 -98
- package/resources/bacstack/test/unit/service-create-object.spec.js +0 -90
- package/resources/bacstack/test/unit/service-delete-object.spec.js +0 -17
- package/resources/bacstack/test/unit/service-device-communication-control.spec.js +0 -29
- package/resources/bacstack/test/unit/service-error.spec.js +0 -17
- package/resources/bacstack/test/unit/service-event-information.spec.js +0 -48
- package/resources/bacstack/test/unit/service-event-notify-data.spec.js +0 -310
- package/resources/bacstack/test/unit/service-get-enrollment-summary.spec.js +0 -45
- package/resources/bacstack/test/unit/service-get-event-information.spec.js +0 -62
- package/resources/bacstack/test/unit/service-i-am.spec.js +0 -19
- package/resources/bacstack/test/unit/service-i-have-broadcast.spec.js +0 -18
- package/resources/bacstack/test/unit/service-life-safety-operation.spec.js +0 -19
- package/resources/bacstack/test/unit/service-private-transfer.spec.js +0 -18
- package/resources/bacstack/test/unit/service-read-property-multiple.spec.js +0 -131
- package/resources/bacstack/test/unit/service-read-property.spec.js +0 -541
- package/resources/bacstack/test/unit/service-read-range.spec.js +0 -97
- package/resources/bacstack/test/unit/service-reinitialize-device.spec.js +0 -27
- package/resources/bacstack/test/unit/service-subscribe-cov.spec.js +0 -32
- package/resources/bacstack/test/unit/service-subscribe-property.spec.js +0 -50
- package/resources/bacstack/test/unit/service-time-sync.spec.js +0 -18
- package/resources/bacstack/test/unit/service-who-has.spec.js +0 -33
- package/resources/bacstack/test/unit/service-who-is.spec.js +0 -17
- package/resources/bacstack/test/unit/service-write-property-multiple.spec.js +0 -143
- package/resources/bacstack/test/unit/service-write-property.spec.js +0 -198
- 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,6 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const
|
|
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.
|
|
17
|
-
case baEnum.
|
|
18
|
-
case baEnum.
|
|
19
|
-
case baEnum.
|
|
20
|
-
case baEnum.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
56
|
-
service
|
|
57
|
-
maxSegments
|
|
58
|
-
maxApdu
|
|
59
|
-
invokeId
|
|
60
|
-
sequencenumber
|
|
61
|
-
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
|
|
77
|
-
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
|
|
95
|
-
service
|
|
96
|
-
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.
|
|
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.
|
|
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
|
|
127
|
-
service
|
|
128
|
-
invokeId
|
|
129
|
-
sequencenumber
|
|
130
|
-
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
|
|
150
|
-
originalInvokeId
|
|
151
|
-
sequencenumber
|
|
152
|
-
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
|
|
170
|
-
service
|
|
171
|
-
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
|
|
189
|
-
invokeId
|
|
190
|
-
reason
|
|
205
|
+
type,
|
|
206
|
+
invokeId,
|
|
207
|
+
reason
|
|
191
208
|
};
|
|
192
209
|
};
|