@bitpoolos/edge-bacnet 1.6.8 → 1.6.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 (44) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/bacnet_client.js +32 -4
  3. package/bacnet_device.js +16 -15
  4. package/package.json +1 -1
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -41
  6. package/resources/node-bacstack-ts/dist/index.js +0 -3
  7. package/resources/node-bacstack-ts/dist/lib/apdu.js +0 -193
  8. package/resources/node-bacstack-ts/dist/lib/asn1.js +0 -1671
  9. package/resources/node-bacstack-ts/dist/lib/bvlc.js +0 -47
  10. package/resources/node-bacstack-ts/dist/lib/client.js +0 -1679
  11. package/resources/node-bacstack-ts/dist/lib/enum.js +0 -2114
  12. package/resources/node-bacstack-ts/dist/lib/npdu.js +0 -112
  13. package/resources/node-bacstack-ts/dist/lib/services/add-list-element.js +0 -58
  14. package/resources/node-bacstack-ts/dist/lib/services/alarm-acknowledge.js +0 -93
  15. package/resources/node-bacstack-ts/dist/lib/services/alarm-summary.js +0 -42
  16. package/resources/node-bacstack-ts/dist/lib/services/atomic-read-file.js +0 -157
  17. package/resources/node-bacstack-ts/dist/lib/services/atomic-write-file.js +0 -136
  18. package/resources/node-bacstack-ts/dist/lib/services/cov-notify.js +0 -119
  19. package/resources/node-bacstack-ts/dist/lib/services/create-object.js +0 -104
  20. package/resources/node-bacstack-ts/dist/lib/services/delete-object.js +0 -21
  21. package/resources/node-bacstack-ts/dist/lib/services/device-communication-control.js +0 -46
  22. package/resources/node-bacstack-ts/dist/lib/services/error.js +0 -27
  23. package/resources/node-bacstack-ts/dist/lib/services/event-information.js +0 -100
  24. package/resources/node-bacstack-ts/dist/lib/services/event-notify-data.js +0 -219
  25. package/resources/node-bacstack-ts/dist/lib/services/get-enrollment-summary.js +0 -172
  26. package/resources/node-bacstack-ts/dist/lib/services/get-event-information.js +0 -135
  27. package/resources/node-bacstack-ts/dist/lib/services/i-am-broadcast.js +0 -59
  28. package/resources/node-bacstack-ts/dist/lib/services/i-have-broadcast.js +0 -34
  29. package/resources/node-bacstack-ts/dist/lib/services/index.js +0 -32
  30. package/resources/node-bacstack-ts/dist/lib/services/life-safety-operation.js +0 -40
  31. package/resources/node-bacstack-ts/dist/lib/services/private-transfer.js +0 -43
  32. package/resources/node-bacstack-ts/dist/lib/services/read-property-multiple.js +0 -44
  33. package/resources/node-bacstack-ts/dist/lib/services/read-property.js +0 -122
  34. package/resources/node-bacstack-ts/dist/lib/services/read-range.js +0 -201
  35. package/resources/node-bacstack-ts/dist/lib/services/reinitialize-device.js +0 -35
  36. package/resources/node-bacstack-ts/dist/lib/services/subscribe-cov.js +0 -55
  37. package/resources/node-bacstack-ts/dist/lib/services/subscribe-property.js +0 -93
  38. package/resources/node-bacstack-ts/dist/lib/services/time-sync.js +0 -31
  39. package/resources/node-bacstack-ts/dist/lib/services/who-has.js +0 -56
  40. package/resources/node-bacstack-ts/dist/lib/services/who-is.js +0 -45
  41. package/resources/node-bacstack-ts/dist/lib/services/write-property-multiple.js +0 -105
  42. package/resources/node-bacstack-ts/dist/lib/services/write-property.js +0 -90
  43. package/resources/node-bacstack-ts/dist/lib/transport.js +0 -86
  44. package/resources/node-bacstack-ts/dist/lib/types.js +0 -2
@@ -1,105 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeObject = exports.decode = exports.encode = void 0;
4
- const baAsn1 = require("../asn1");
5
- const baEnum = require("../enum");
6
- const encode = (buffer, objectId, values) => {
7
- baAsn1.encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
8
- baAsn1.encodeOpeningTag(buffer, 1);
9
- values.forEach((pValue) => {
10
- baAsn1.encodeContextEnumerated(buffer, 0, pValue.property.id);
11
- if (pValue.property.index !== baEnum.ASN1_ARRAY_ALL) {
12
- baAsn1.encodeContextUnsigned(buffer, 1, pValue.property.index);
13
- }
14
- baAsn1.encodeOpeningTag(buffer, 2);
15
- pValue.value.forEach((value) => baAsn1.bacappEncodeApplicationData(buffer, value));
16
- baAsn1.encodeClosingTag(buffer, 2);
17
- if (pValue.priority !== baEnum.ASN1_NO_PRIORITY) {
18
- baAsn1.encodeContextUnsigned(buffer, 3, pValue.priority);
19
- }
20
- });
21
- baAsn1.encodeClosingTag(buffer, 1);
22
- };
23
- exports.encode = encode;
24
- const decode = (buffer, offset, apduLen) => {
25
- let len = 0;
26
- let result;
27
- let decodedValue;
28
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
29
- len += result.len;
30
- if ((result.tagNumber !== 0) || (apduLen <= len))
31
- return;
32
- apduLen -= len;
33
- if (apduLen < 4)
34
- return;
35
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
36
- len += decodedValue.len;
37
- const objectId = {
38
- type: decodedValue.objectType,
39
- instance: decodedValue.instance
40
- };
41
- if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 1))
42
- return;
43
- len++;
44
- const _values = [];
45
- while ((apduLen - len) > 1) {
46
- const newEntry = {};
47
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
48
- len += result.len;
49
- if (result.tagNumber !== 0)
50
- return;
51
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
52
- len += decodedValue.len;
53
- const propertyId = decodedValue.value;
54
- let arrayIndex = baEnum.ASN1_ARRAY_ALL;
55
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
56
- len += result.len;
57
- if (result.tagNumber === 1) {
58
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
59
- len += decodedValue.len;
60
- arrayIndex = decodedValue.value;
61
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
62
- len += result.len;
63
- }
64
- newEntry.property = { id: propertyId, index: arrayIndex };
65
- if ((result.tagNumber !== 2) || (!baAsn1.decodeIsOpeningTag(buffer, offset + len - 1)))
66
- return;
67
- const values = [];
68
- while ((len + offset) <= buffer.length && !baAsn1.decodeIsClosingTag(buffer, offset + len)) {
69
- const value = baAsn1.bacappDecodeApplicationData(buffer, offset + len, apduLen + offset, objectId.type, propertyId);
70
- if (!value)
71
- return;
72
- len += value.len;
73
- delete value.len;
74
- values.push(value);
75
- }
76
- len++;
77
- newEntry.value = values;
78
- let priority = baEnum.ASN1_NO_PRIORITY;
79
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
80
- len += result.len;
81
- if (result.tagNumber === 3) {
82
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
83
- len += decodedValue.len;
84
- priority = decodedValue.value;
85
- }
86
- else {
87
- len--;
88
- }
89
- newEntry.priority = priority;
90
- _values.push(newEntry);
91
- }
92
- if (!baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 1))
93
- return;
94
- len++;
95
- return {
96
- len: len,
97
- objectId: objectId,
98
- values: _values
99
- };
100
- };
101
- exports.decode = decode;
102
- const encodeObject = (buffer, values) => {
103
- values.forEach((object) => (0, exports.encode)(buffer, object.objectId, object.values));
104
- };
105
- exports.encodeObject = encodeObject;
@@ -1,90 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decode = exports.encode = void 0;
4
- const baAsn1 = require("../asn1");
5
- const baEnum = require("../enum");
6
- const encode = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
7
- baAsn1.encodeContextObjectId(buffer, 0, objectType, objectInstance);
8
- baAsn1.encodeContextEnumerated(buffer, 1, propertyId);
9
- if (arrayIndex !== baEnum.ASN1_ARRAY_ALL) {
10
- baAsn1.encodeContextUnsigned(buffer, 2, arrayIndex);
11
- }
12
- baAsn1.encodeOpeningTag(buffer, 3);
13
- values.forEach((value) => baAsn1.bacappEncodeApplicationData(buffer, value));
14
- baAsn1.encodeClosingTag(buffer, 3);
15
- if (priority !== baEnum.ASN1_NO_PRIORITY) {
16
- baAsn1.encodeContextUnsigned(buffer, 4, priority);
17
- }
18
- };
19
- exports.encode = encode;
20
- const decode = (buffer, offset, apduLen) => {
21
- let len = 0;
22
- const value = {
23
- property: {}
24
- };
25
- let decodedValue;
26
- let result;
27
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
28
- return;
29
- len++;
30
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
31
- const objectId = {
32
- type: decodedValue.objectType,
33
- instance: decodedValue.instance
34
- };
35
- len += decodedValue.len;
36
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
37
- len += result.len;
38
- if (result.tagNumber !== 1)
39
- return;
40
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
41
- len += decodedValue.len;
42
- value.property.id = decodedValue.value;
43
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
44
- if (result.tagNumber === 2) {
45
- len += result.len;
46
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
47
- len += decodedValue.len;
48
- value.property.index = decodedValue.value;
49
- }
50
- else {
51
- value.property.index = baEnum.ASN1_ARRAY_ALL;
52
- }
53
- if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 3))
54
- return;
55
- len++;
56
- const values = [];
57
- while ((apduLen - len) > 1 && !baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3)) {
58
- decodedValue = baAsn1.bacappDecodeApplicationData(buffer, offset + len, apduLen + offset, objectId.type, value.property.id);
59
- if (!decodedValue)
60
- return;
61
- len += decodedValue.len;
62
- delete decodedValue.len;
63
- values.push(decodedValue);
64
- }
65
- value.value = values;
66
- if (!baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3))
67
- return;
68
- len++;
69
- value.priority = baEnum.ASN1_MAX_PRIORITY;
70
- if (len < apduLen) {
71
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
72
- if (result.tagNumber === 4) {
73
- len += result.len;
74
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
75
- len += decodedValue;
76
- if ((decodedValue.value >= baEnum.ASN1_MIN_PRIORITY) && (decodedValue.value <= baEnum.ASN1_MAX_PRIORITY)) {
77
- value.priority = decodedValue.value;
78
- }
79
- else {
80
- return;
81
- }
82
- }
83
- }
84
- return {
85
- len: len,
86
- objectId: objectId,
87
- value: value
88
- };
89
- };
90
- exports.decode = decode;
@@ -1,86 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Transport = void 0;
4
- const dgram_1 = require("dgram");
5
- const events_1 = require("events");
6
- const DEFAULT_BACNET_PORT = 47808;
7
- class Transport extends events_1.EventEmitter {
8
- constructor(settings) {
9
- super();
10
- try {
11
- this._lastSendMessages = {};
12
- this._settings = settings;
13
- this._portRange = settings.portRangeMatrix;
14
- this.serverList = {};
15
- for (let i = 0; i < this._portRange.length; i++) {
16
- let port = this._portRange[i];
17
- this.serverList[port] = (0, dgram_1.createSocket)({ type: 'udp4', reuseAddr: true });
18
- this.serverList[port].on('message', (msg, rinfo) => this.emit('message', msg, rinfo.address, rinfo.port));
19
- this.serverList[port].on('error', (err) => this.emit('message', err));
20
- };
21
- } catch (e) {
22
- console.log("Transport constructor error: ", e);
23
- }
24
- }
25
- getBroadcastAddress() {
26
- return this._settings.broadcastAddress;
27
- }
28
- getMaxPayload() {
29
- return 1482;
30
- }
31
- send(buffer, offset, receiver, port) {
32
- try {
33
- if (!receiver) {
34
- receiver = this.getBroadcastAddress();
35
- const dataToSend = Buffer.alloc(offset);
36
- // Sort out broadcasted messages that we also receive
37
- // TODO Find a better way?
38
- const hrTime = process.hrtime();
39
- const messageKey = hrTime[0] * 1000000000 + hrTime[1];
40
- buffer.copy(dataToSend, 0, 0, offset);
41
- this._lastSendMessages[messageKey] = dataToSend;
42
- setTimeout(() => {
43
- delete this._lastSendMessages[messageKey];
44
- }, 10000); // delete after 10s, hopefully all cases are handled by that
45
- }
46
-
47
- const [address] = receiver.split(':');
48
-
49
- if (port == null || port == undefined || port == '' || port == 'null' || port == 'undefined') port = DEFAULT_BACNET_PORT;
50
-
51
- let serverExists = Object.keys(this.serverList).findIndex((existingPort) => port.toString() == existingPort);
52
-
53
- if (serverExists !== -1) {
54
- let server = this.serverList[port];
55
- server.send(buffer, 0, offset, port, address);
56
- }
57
- } catch (e) {
58
- console.log("Transport send error: ", e);
59
- }
60
- }
61
- open() {
62
- try {
63
- for (let port in this.serverList) {
64
- let server = this.serverList[port];
65
- if (server) {
66
- server.bind(port, this._settings.interface, () => {
67
- server.setBroadcast(true);
68
- });
69
- }
70
- }
71
- } catch (e) {
72
- console.log("Transport open error: ", e);
73
- }
74
- }
75
- close() {
76
- try {
77
- for (let port in this.serverList) {
78
- let server = this.serverList[port];
79
- if (server) server.close();
80
- }
81
- } catch (e) {
82
- console.log("Transport close error: ", e);
83
- }
84
- }
85
- }
86
- exports.Transport = Transport;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });