@bitpoolos/edge-bacnet 1.1.7 → 1.2.1
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/README.md +2 -2
- package/bacnet_client.js +331 -168
- package/bacnet_device.js +50 -16
- package/bacnet_gateway.html +119 -15
- package/bacnet_gateway.js +388 -395
- package/bacnet_read.html +32 -11
- package/bacnet_read.js +1 -1
- package/bacnet_server.js +86 -24
- package/common.js +26 -19
- package/examples/1-Discover-Read.json +1 -1
- package/examples/2-Discover-Write.json +1 -1
- package/examples/3-Discover-Read-Write.json +1 -1
- package/package.json +3 -3
- package/resources/{node-bacnet/LICENSE.md → node-bacstack-ts/LICENSE} +3 -4
- package/resources/node-bacstack-ts/README.md +75 -0
- package/resources/{node-bacnet → node-bacstack-ts/dist}/index.js +0 -2
- package/resources/node-bacstack-ts/dist/lib/apdu.js +193 -0
- package/resources/node-bacstack-ts/dist/lib/asn1.js +1660 -0
- package/resources/node-bacstack-ts/dist/lib/bvlc.js +47 -0
- package/resources/node-bacstack-ts/dist/lib/client.js +1454 -0
- package/resources/node-bacstack-ts/dist/lib/enum.js +2114 -0
- package/resources/node-bacstack-ts/dist/lib/npdu.js +112 -0
- package/resources/node-bacstack-ts/dist/lib/services/add-list-element.js +58 -0
- package/resources/node-bacstack-ts/dist/lib/services/alarm-acknowledge.js +93 -0
- package/resources/node-bacstack-ts/dist/lib/services/alarm-summary.js +42 -0
- package/resources/node-bacstack-ts/dist/lib/services/atomic-read-file.js +157 -0
- package/resources/node-bacstack-ts/dist/lib/services/atomic-write-file.js +136 -0
- package/resources/node-bacstack-ts/dist/lib/services/cov-notify.js +119 -0
- package/resources/node-bacstack-ts/dist/lib/services/create-object.js +104 -0
- package/resources/node-bacstack-ts/dist/lib/services/delete-object.js +21 -0
- package/resources/node-bacstack-ts/dist/lib/services/device-communication-control.js +46 -0
- package/resources/node-bacstack-ts/dist/lib/services/error.js +27 -0
- package/resources/node-bacstack-ts/dist/lib/services/event-information.js +100 -0
- package/resources/node-bacstack-ts/dist/lib/services/event-notify-data.js +219 -0
- package/resources/node-bacstack-ts/dist/lib/services/get-enrollment-summary.js +172 -0
- package/resources/node-bacstack-ts/dist/lib/services/get-event-information.js +135 -0
- package/resources/node-bacstack-ts/dist/lib/services/i-am-broadcast.js +59 -0
- package/resources/node-bacstack-ts/dist/lib/services/i-have-broadcast.js +34 -0
- package/resources/node-bacstack-ts/dist/lib/services/index.js +32 -0
- package/resources/node-bacstack-ts/dist/lib/services/life-safety-operation.js +40 -0
- package/resources/node-bacstack-ts/dist/lib/services/private-transfer.js +43 -0
- package/resources/node-bacstack-ts/dist/lib/services/read-property-multiple.js +44 -0
- package/resources/node-bacstack-ts/dist/lib/services/read-property.js +122 -0
- package/resources/node-bacstack-ts/dist/lib/services/read-range.js +201 -0
- package/resources/node-bacstack-ts/dist/lib/services/reinitialize-device.js +35 -0
- package/resources/node-bacstack-ts/dist/lib/services/subscribe-cov.js +55 -0
- package/resources/node-bacstack-ts/dist/lib/services/subscribe-property.js +93 -0
- package/resources/node-bacstack-ts/dist/lib/services/time-sync.js +31 -0
- package/resources/node-bacstack-ts/dist/lib/services/who-has.js +56 -0
- package/resources/node-bacstack-ts/dist/lib/services/who-is.js +45 -0
- package/resources/node-bacstack-ts/dist/lib/services/write-property-multiple.js +105 -0
- package/resources/node-bacstack-ts/dist/lib/services/write-property.js +90 -0
- package/resources/node-bacstack-ts/dist/lib/transport.js +49 -0
- package/resources/node-bacstack-ts/dist/lib/types.js +2 -0
- package/resources/node-bacstack-ts/package.json +94 -0
- package/resources/node-bacnet/CHANGELOG.md +0 -481
- package/resources/node-bacnet/README.md +0 -91
- package/resources/node-bacnet/docs/Client.html +0 -4422
- 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 +0 -7032
- package/resources/node-bacnet/docs/client.js.html +0 -1759
- package/resources/node-bacnet/docs/enum.js.html +0 -2530
- package/resources/node-bacnet/docs/global.html +0 -2068
- package/resources/node-bacnet/docs/images/mocha-logo.svg +0 -65
- package/resources/node-bacnet/docs/index.html +0 -283
- package/resources/node-bacnet/docs/scripts/collapse.js +0 -11
- package/resources/node-bacnet/docs/scripts/jquery-3.1.1.min.js +0 -4
- package/resources/node-bacnet/docs/scripts/linenumber.js +0 -26
- package/resources/node-bacnet/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
- package/resources/node-bacnet/docs/scripts/prettify/lang-css.js +0 -2
- package/resources/node-bacnet/docs/scripts/prettify/prettify.js +0 -28
- package/resources/node-bacnet/docs/scripts/search.js +0 -47
- package/resources/node-bacnet/docs/services_i-am.js.html +0 -157
- package/resources/node-bacnet/docs/services_time-sync.js.html +0 -118
- package/resources/node-bacnet/docs/services_who-is.js.html +0 -138
- package/resources/node-bacnet/docs/styles/jsdoc.css +0 -683
- package/resources/node-bacnet/docs/styles/prettify.css +0 -82
- package/resources/node-bacnet/examples/discover-devices.js +0 -66
- package/resources/node-bacnet/examples/read-device.js +0 -510
- package/resources/node-bacnet/examples/subscribe-cov.js +0 -75
- package/resources/node-bacnet/lib/apdu.js +0 -209
- package/resources/node-bacnet/lib/asn1.js +0 -1733
- package/resources/node-bacnet/lib/bvlc.js +0 -90
- package/resources/node-bacnet/lib/client.js +0 -1695
- package/resources/node-bacnet/lib/enum.js +0 -2463
- package/resources/node-bacnet/lib/npdu.js +0 -123
- package/resources/node-bacnet/lib/services/add-list-element.js +0 -64
- package/resources/node-bacnet/lib/services/alarm-acknowledge.js +0 -90
- package/resources/node-bacnet/lib/services/alarm-summary.js +0 -42
- package/resources/node-bacnet/lib/services/atomic-read-file.js +0 -162
- package/resources/node-bacnet/lib/services/atomic-write-file.js +0 -138
- package/resources/node-bacnet/lib/services/cov-notify.js +0 -126
- package/resources/node-bacnet/lib/services/create-object.js +0 -106
- package/resources/node-bacnet/lib/services/delete-object.js +0 -23
- package/resources/node-bacnet/lib/services/device-communication-control.js +0 -48
- package/resources/node-bacnet/lib/services/error.js +0 -33
- package/resources/node-bacnet/lib/services/event-information.js +0 -99
- package/resources/node-bacnet/lib/services/event-notify-data.js +0 -229
- package/resources/node-bacnet/lib/services/get-enrollment-summary.js +0 -178
- package/resources/node-bacnet/lib/services/get-event-information.js +0 -144
- package/resources/node-bacnet/lib/services/i-am.js +0 -90
- package/resources/node-bacnet/lib/services/i-have.js +0 -34
- package/resources/node-bacnet/lib/services/index.js +0 -34
- package/resources/node-bacnet/lib/services/life-safety-operation.js +0 -40
- package/resources/node-bacnet/lib/services/private-transfer.js +0 -43
- package/resources/node-bacnet/lib/services/read-property-multiple.js +0 -50
- package/resources/node-bacnet/lib/services/read-property.js +0 -130
- package/resources/node-bacnet/lib/services/read-range.js +0 -201
- package/resources/node-bacnet/lib/services/register-foreign-device.js +0 -18
- package/resources/node-bacnet/lib/services/reinitialize-device.js +0 -37
- package/resources/node-bacnet/lib/services/subscribe-cov.js +0 -57
- package/resources/node-bacnet/lib/services/subscribe-property.js +0 -97
- package/resources/node-bacnet/lib/services/time-sync.js +0 -51
- package/resources/node-bacnet/lib/services/who-has.js +0 -54
- package/resources/node-bacnet/lib/services/who-is.js +0 -71
- package/resources/node-bacnet/lib/services/write-property-multiple.js +0 -117
- package/resources/node-bacnet/lib/services/write-property.js +0 -94
- package/resources/node-bacnet/lib/transport.js +0 -82
- package/resources/node-bacnet/package.json +0 -92
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const baEnum = require('./enum');
|
|
4
|
-
const debug = require('debug')('bacnet:bvlc:debug');
|
|
5
|
-
const trace = require('debug')('bacnet:bvlc:trace');
|
|
6
|
-
|
|
7
|
-
const DEFAULT_BACNET_PORT = 47808;
|
|
8
|
-
|
|
9
|
-
module.exports.encode = (buffer, func, msgLength, originatingIP) => {
|
|
10
|
-
buffer[0] = baEnum.BVLL_TYPE_BACNET_IP;
|
|
11
|
-
buffer[1] = func;
|
|
12
|
-
buffer[2] = (msgLength & 0xFF00) >> 8;
|
|
13
|
-
buffer[3] = (msgLength & 0x00FF) >> 0;
|
|
14
|
-
if (originatingIP) {
|
|
15
|
-
// This is always a FORWARDED_NPDU regardless of the 'func' parameter.
|
|
16
|
-
if (func !== baEnum.BvlcResultPurpose.FORWARDED_NPDU) {
|
|
17
|
-
throw new Error('Cannot specify originatingIP unless ' +
|
|
18
|
-
'BvlcResultPurpose.FORWARDED_NPDU is used.');
|
|
19
|
-
}
|
|
20
|
-
// Encode the IP address and optional port into bytes.
|
|
21
|
-
const [ipstr, portstr] = originatingIP.split(':');
|
|
22
|
-
const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT;
|
|
23
|
-
const ip = ipstr.split('.');
|
|
24
|
-
buffer[4] = parseInt(ip[0], 10);
|
|
25
|
-
buffer[5] = parseInt(ip[1], 10);
|
|
26
|
-
buffer[6] = parseInt(ip[2], 10);
|
|
27
|
-
buffer[7] = parseInt(ip[3], 10);
|
|
28
|
-
buffer[8] = (port & 0xFF00) >> 8;
|
|
29
|
-
buffer[9] = (port & 0x00FF) >> 0;
|
|
30
|
-
return 6 + baEnum.BVLC_HEADER_LENGTH;
|
|
31
|
-
} else {
|
|
32
|
-
if (func === baEnum.BvlcResultPurpose.FORWARDED_NPDU) {
|
|
33
|
-
throw new Error('Must specify originatingIP if ' +
|
|
34
|
-
'BvlcResultPurpose.FORWARDED_NPDU is used.');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return baEnum.BVLC_HEADER_LENGTH;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
module.exports.decode = (buffer, _offset) => {
|
|
41
|
-
let len;
|
|
42
|
-
const func = buffer[1];
|
|
43
|
-
const msgLength = (buffer[2] << 8) | (buffer[3] << 0);
|
|
44
|
-
if (buffer[0] !== baEnum.BVLL_TYPE_BACNET_IP || buffer.length !== msgLength) {
|
|
45
|
-
return undefined;
|
|
46
|
-
}
|
|
47
|
-
let originatingIP = null;
|
|
48
|
-
switch (func) {
|
|
49
|
-
case baEnum.BvlcResultPurpose.BVLC_RESULT:
|
|
50
|
-
case baEnum.BvlcResultPurpose.ORIGINAL_UNICAST_NPDU:
|
|
51
|
-
case baEnum.BvlcResultPurpose.ORIGINAL_BROADCAST_NPDU:
|
|
52
|
-
case baEnum.BvlcResultPurpose.DISTRIBUTE_BROADCAST_TO_NETWORK:
|
|
53
|
-
case baEnum.BvlcResultPurpose.REGISTER_FOREIGN_DEVICE:
|
|
54
|
-
case baEnum.BvlcResultPurpose.READ_FOREIGN_DEVICE_TABLE:
|
|
55
|
-
case baEnum.BvlcResultPurpose.DELETE_FOREIGN_DEVICE_TABLE_ENTRY:
|
|
56
|
-
case baEnum.BvlcResultPurpose.READ_BROADCAST_DISTRIBUTION_TABLE:
|
|
57
|
-
case baEnum.BvlcResultPurpose.WRITE_BROADCAST_DISTRIBUTION_TABLE:
|
|
58
|
-
case baEnum.BvlcResultPurpose.READ_BROADCAST_DISTRIBUTION_TABLE_ACK:
|
|
59
|
-
case baEnum.BvlcResultPurpose.READ_FOREIGN_DEVICE_TABLE_ACK:
|
|
60
|
-
len = 4;
|
|
61
|
-
break;
|
|
62
|
-
case baEnum.BvlcResultPurpose.FORWARDED_NPDU:
|
|
63
|
-
// Work out where the packet originally came from before the BBMD
|
|
64
|
-
// forwarded it to us, so we can tell the BBMD where to send any reply to.
|
|
65
|
-
const port = (buffer[8] << 8) | buffer[9];
|
|
66
|
-
originatingIP = buffer.slice(4, 8).join('.');
|
|
67
|
-
|
|
68
|
-
// Only add the port if it's not the usual one.
|
|
69
|
-
if (port !== DEFAULT_BACNET_PORT) {
|
|
70
|
-
originatingIP += ':' + port;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
len = 10;
|
|
74
|
-
break;
|
|
75
|
-
case baEnum.BvlcResultPurpose.SECURE_BVLL:
|
|
76
|
-
// unimplemented
|
|
77
|
-
return undefined;
|
|
78
|
-
default:
|
|
79
|
-
return undefined;
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
len,
|
|
83
|
-
func,
|
|
84
|
-
msgLength,
|
|
85
|
-
// Originating IP is set to the IP address of the node that originally
|
|
86
|
-
// sent the packet, when it has been forwarded to us by a BBMD (since the
|
|
87
|
-
// BBMD's IP address will be in the sender field.
|
|
88
|
-
originatingIP,
|
|
89
|
-
};
|
|
90
|
-
};
|