@bitpoolos/edge-bacnet 1.6.7 → 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 (48) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/bacnet_client.js +181 -28
  3. package/bacnet_device.js +16 -15
  4. package/bacnet_gateway.html +82 -0
  5. package/bacnet_gateway.js +3 -1
  6. package/bacnet_write.html +2 -1
  7. package/common.js +8 -1
  8. package/package.json +1 -1
  9. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -41
  10. package/resources/node-bacstack-ts/dist/index.js +0 -3
  11. package/resources/node-bacstack-ts/dist/lib/apdu.js +0 -193
  12. package/resources/node-bacstack-ts/dist/lib/asn1.js +0 -1671
  13. package/resources/node-bacstack-ts/dist/lib/bvlc.js +0 -47
  14. package/resources/node-bacstack-ts/dist/lib/client.js +0 -1553
  15. package/resources/node-bacstack-ts/dist/lib/enum.js +0 -2114
  16. package/resources/node-bacstack-ts/dist/lib/npdu.js +0 -112
  17. package/resources/node-bacstack-ts/dist/lib/services/add-list-element.js +0 -58
  18. package/resources/node-bacstack-ts/dist/lib/services/alarm-acknowledge.js +0 -93
  19. package/resources/node-bacstack-ts/dist/lib/services/alarm-summary.js +0 -42
  20. package/resources/node-bacstack-ts/dist/lib/services/atomic-read-file.js +0 -157
  21. package/resources/node-bacstack-ts/dist/lib/services/atomic-write-file.js +0 -136
  22. package/resources/node-bacstack-ts/dist/lib/services/cov-notify.js +0 -119
  23. package/resources/node-bacstack-ts/dist/lib/services/create-object.js +0 -104
  24. package/resources/node-bacstack-ts/dist/lib/services/delete-object.js +0 -21
  25. package/resources/node-bacstack-ts/dist/lib/services/device-communication-control.js +0 -46
  26. package/resources/node-bacstack-ts/dist/lib/services/error.js +0 -27
  27. package/resources/node-bacstack-ts/dist/lib/services/event-information.js +0 -100
  28. package/resources/node-bacstack-ts/dist/lib/services/event-notify-data.js +0 -219
  29. package/resources/node-bacstack-ts/dist/lib/services/get-enrollment-summary.js +0 -172
  30. package/resources/node-bacstack-ts/dist/lib/services/get-event-information.js +0 -135
  31. package/resources/node-bacstack-ts/dist/lib/services/i-am-broadcast.js +0 -59
  32. package/resources/node-bacstack-ts/dist/lib/services/i-have-broadcast.js +0 -34
  33. package/resources/node-bacstack-ts/dist/lib/services/index.js +0 -32
  34. package/resources/node-bacstack-ts/dist/lib/services/life-safety-operation.js +0 -40
  35. package/resources/node-bacstack-ts/dist/lib/services/private-transfer.js +0 -43
  36. package/resources/node-bacstack-ts/dist/lib/services/read-property-multiple.js +0 -44
  37. package/resources/node-bacstack-ts/dist/lib/services/read-property.js +0 -122
  38. package/resources/node-bacstack-ts/dist/lib/services/read-range.js +0 -201
  39. package/resources/node-bacstack-ts/dist/lib/services/reinitialize-device.js +0 -35
  40. package/resources/node-bacstack-ts/dist/lib/services/subscribe-cov.js +0 -55
  41. package/resources/node-bacstack-ts/dist/lib/services/subscribe-property.js +0 -93
  42. package/resources/node-bacstack-ts/dist/lib/services/time-sync.js +0 -31
  43. package/resources/node-bacstack-ts/dist/lib/services/who-has.js +0 -56
  44. package/resources/node-bacstack-ts/dist/lib/services/who-is.js +0 -45
  45. package/resources/node-bacstack-ts/dist/lib/services/write-property-multiple.js +0 -105
  46. package/resources/node-bacstack-ts/dist/lib/services/write-property.js +0 -90
  47. package/resources/node-bacstack-ts/dist/lib/transport.js +0 -86
  48. package/resources/node-bacstack-ts/dist/lib/types.js +0 -2
@@ -1,122 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeAcknowledge = exports.encodeAcknowledge = exports.decode = exports.encode = void 0;
4
- const baAsn1 = require("../asn1");
5
- const baEnum = require("../enum");
6
- const encode = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
7
- if (objectType <= baEnum.ASN1_MAX_OBJECT) {
8
- baAsn1.encodeContextObjectId(buffer, 0, objectType, objectInstance);
9
- }
10
- if (propertyId <= baEnum.ASN1_MAX_PROPERTY_ID) {
11
- baAsn1.encodeContextEnumerated(buffer, 1, propertyId);
12
- }
13
- if (arrayIndex !== baEnum.ASN1_ARRAY_ALL) {
14
- baAsn1.encodeContextUnsigned(buffer, 2, arrayIndex || baEnum.ASN1_ARRAY_ALL);
15
- }
16
- };
17
- exports.encode = encode;
18
- const decode = (buffer, offset, apduLen) => {
19
- let len = 0;
20
- let result;
21
- let decodedValue;
22
- if (apduLen < 7)
23
- return;
24
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
25
- return;
26
- len++;
27
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
28
- len += decodedValue.len;
29
- const objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
30
- const property = {};
31
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
32
- len += result.len;
33
- if (result.tagNumber !== 1)
34
- return;
35
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
36
- len += decodedValue.len;
37
- property.id = decodedValue.value;
38
- property.index = baEnum.ASN1_ARRAY_ALL;
39
- if (len < apduLen) {
40
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
41
- len += result.len;
42
- if ((result.tagNumber === 2) && (len < apduLen)) {
43
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
44
- len += decodedValue.len;
45
- property.index = decodedValue.value;
46
- }
47
- else {
48
- return;
49
- }
50
- }
51
- if (len < apduLen)
52
- return;
53
- return {
54
- len: len,
55
- objectId: objectId,
56
- property: property
57
- };
58
- };
59
- exports.decode = decode;
60
- const encodeAcknowledge = (buffer, objectId, propertyId, arrayIndex, values) => {
61
- baAsn1.encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
62
- baAsn1.encodeContextEnumerated(buffer, 1, propertyId);
63
- if (arrayIndex !== baEnum.ASN1_ARRAY_ALL) {
64
- baAsn1.encodeContextUnsigned(buffer, 2, arrayIndex);
65
- }
66
- baAsn1.encodeOpeningTag(buffer, 3);
67
- values.forEach((value) => baAsn1.bacappEncodeApplicationData(buffer, value));
68
- baAsn1.encodeClosingTag(buffer, 3);
69
- };
70
- exports.encodeAcknowledge = encodeAcknowledge;
71
- const decodeAcknowledge = (buffer, offset, apduLen) => {
72
- let result;
73
- let decodedValue;
74
- const objectId = {};
75
- const property = {};
76
- if (!baAsn1.decodeIsContextTag(buffer, offset, 0))
77
- return;
78
- let len = 1;
79
- result = baAsn1.decodeObjectId(buffer, offset + len);
80
- len += result.len;
81
- objectId.type = result.objectType;
82
- objectId.instance = result.instance;
83
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
84
- len += result.len;
85
- if (result.tagNumber !== 1)
86
- return;
87
- result = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
88
- len += result.len;
89
- property.id = result.value;
90
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
91
- if (result.tagNumber === 2) {
92
- len += result.len;
93
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
94
- len += decodedValue.len;
95
- property.index = decodedValue.value;
96
- }
97
- else {
98
- property.index = baEnum.ASN1_ARRAY_ALL;
99
- }
100
- const values = [];
101
- if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 3))
102
- return;
103
- len++;
104
- while ((apduLen - len) > 1) {
105
- result = baAsn1.bacappDecodeApplicationData(buffer, offset + len, apduLen + offset, objectId.type, property.id);
106
- if (!result)
107
- return;
108
- len += result.len;
109
- delete result.len;
110
- values.push(result);
111
- }
112
- if (!baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3))
113
- return;
114
- len++;
115
- return {
116
- len: len,
117
- objectId: objectId,
118
- property: property,
119
- values: values
120
- };
121
- };
122
- exports.decodeAcknowledge = decodeAcknowledge;
@@ -1,201 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeAcknowledge = exports.encodeAcknowledge = exports.decode = exports.encode = void 0;
4
- const baAsn1 = require("../asn1");
5
- const baEnum = require("../enum");
6
- const encode = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
7
- baAsn1.encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
8
- baAsn1.encodeContextEnumerated(buffer, 1, propertyId);
9
- if (arrayIndex !== baEnum.ASN1_ARRAY_ALL) {
10
- baAsn1.encodeContextUnsigned(buffer, 2, arrayIndex);
11
- }
12
- switch (requestType) {
13
- case baEnum.ReadRangeType.BY_POSITION:
14
- baAsn1.encodeOpeningTag(buffer, 3);
15
- baAsn1.encodeApplicationUnsigned(buffer, position);
16
- baAsn1.encodeApplicationSigned(buffer, count);
17
- baAsn1.encodeClosingTag(buffer, 3);
18
- break;
19
- case baEnum.ReadRangeType.BY_SEQUENCE_NUMBER:
20
- baAsn1.encodeOpeningTag(buffer, 6);
21
- baAsn1.encodeApplicationUnsigned(buffer, position);
22
- baAsn1.encodeApplicationSigned(buffer, count);
23
- baAsn1.encodeClosingTag(buffer, 6);
24
- break;
25
- case baEnum.ReadRangeType.BY_TIME_REFERENCE_TIME_COUNT:
26
- baAsn1.encodeOpeningTag(buffer, 7);
27
- baAsn1.encodeApplicationDate(buffer, time);
28
- baAsn1.encodeApplicationTime(buffer, time);
29
- baAsn1.encodeApplicationSigned(buffer, count);
30
- baAsn1.encodeClosingTag(buffer, 7);
31
- break;
32
- default:
33
- break;
34
- }
35
- };
36
- exports.encode = encode;
37
- const decode = (buffer, offset, apduLen) => {
38
- let len = 0;
39
- let result;
40
- let decodedValue;
41
- let requestType;
42
- let position;
43
- let time;
44
- let count;
45
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
46
- return;
47
- len++;
48
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
49
- len += decodedValue.len;
50
- const objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
51
- const property = {};
52
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
53
- len += result.len;
54
- if (result.tagNumber !== 1)
55
- return;
56
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
57
- len += decodedValue.len;
58
- property.id = decodedValue.value;
59
- if (len < apduLen && baAsn1.decodeIsContextTag(buffer, offset + len, 2)) {
60
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
61
- len += result.len;
62
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
63
- len += decodedValue.len;
64
- property.index = decodedValue.value;
65
- }
66
- else {
67
- property.index = baEnum.ASN1_ARRAY_ALL;
68
- }
69
- if (len < apduLen) {
70
- result = baAsn1.decodeTagNumber(buffer, offset + len);
71
- len += result.len;
72
- switch (result.tagNumber) {
73
- case 3: {
74
- requestType = baEnum.ReadRangeType.BY_POSITION;
75
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
76
- len += result.len;
77
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
78
- len += decodedValue.len;
79
- position = decodedValue.value;
80
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
81
- len += result.len;
82
- decodedValue = baAsn1.decodeSigned(buffer, offset + len, result.value);
83
- len += decodedValue.len;
84
- count = decodedValue.value;
85
- break;
86
- }
87
- case 6: {
88
- requestType = baEnum.ReadRangeType.BY_SEQUENCE_NUMBER;
89
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
90
- len += result.len;
91
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
92
- len += decodedValue.len;
93
- position = decodedValue.value;
94
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
95
- len += result.len;
96
- decodedValue = baAsn1.decodeSigned(buffer, offset + len, result.value);
97
- len += decodedValue.len;
98
- count = decodedValue.value;
99
- break;
100
- }
101
- case 7: {
102
- requestType = baEnum.ReadRangeType.BY_TIME_REFERENCE_TIME_COUNT;
103
- decodedValue = baAsn1.decodeApplicationDate(buffer, offset + len);
104
- len += decodedValue.len;
105
- const tmpDate = decodedValue.value;
106
- decodedValue = baAsn1.decodeApplicationTime(buffer, offset + len);
107
- len += decodedValue.len;
108
- const tmpTime = decodedValue.value;
109
- time = new Date(tmpDate.getYear(), tmpDate.getMonth(), tmpDate.getDate(), tmpTime.getHours(), tmpTime.getMinutes(), tmpTime.getSeconds(), tmpTime.getMilliseconds());
110
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
111
- len += result.len;
112
- decodedValue = baAsn1.decodeSigned(buffer, offset + len, result.value);
113
- len += decodedValue.len;
114
- count = decodedValue.value;
115
- break;
116
- }
117
- default:
118
- return;
119
- }
120
- result = baAsn1.decodeTagNumber(buffer, offset + len);
121
- len += result.len;
122
- }
123
- return {
124
- len: len,
125
- objectId: objectId,
126
- property: property,
127
- requestType: requestType,
128
- position: position,
129
- time: time,
130
- count: count
131
- };
132
- };
133
- exports.decode = decode;
134
- const encodeAcknowledge = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
135
- baAsn1.encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
136
- baAsn1.encodeContextEnumerated(buffer, 1, propertyId);
137
- if (arrayIndex !== baEnum.ASN1_ARRAY_ALL) {
138
- baAsn1.encodeContextUnsigned(buffer, 2, arrayIndex);
139
- }
140
- baAsn1.encodeContextBitstring(buffer, 3, resultFlags);
141
- baAsn1.encodeContextUnsigned(buffer, 4, itemCount);
142
- baAsn1.encodeOpeningTag(buffer, 5);
143
- if (itemCount !== 0) {
144
- applicationData.copy(buffer.buffer, buffer.offset, 0, applicationData.length);
145
- buffer.offset += applicationData.length;
146
- }
147
- baAsn1.encodeClosingTag(buffer, 5);
148
- if (itemCount !== 0 && requestType && requestType !== baEnum.ReadRangeType.BY_POSITION) {
149
- baAsn1.encodeContextUnsigned(buffer, 6, firstSequence);
150
- }
151
- };
152
- exports.encodeAcknowledge = encodeAcknowledge;
153
- const decodeAcknowledge = (buffer, offset, apduLen) => {
154
- let len = 0;
155
- let result;
156
- let decodedValue;
157
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
158
- return;
159
- len++;
160
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
161
- len += decodedValue.len;
162
- const objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
163
- const property = { index: baEnum.ASN1_ARRAY_ALL };
164
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
165
- len += result.len;
166
- if (result.tagNumber !== 1)
167
- return;
168
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
169
- len += decodedValue.len;
170
- property.id = decodedValue.value;
171
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
172
- if ((result.tagNumber === 2) && (len < apduLen)) {
173
- len += result.len;
174
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
175
- len += decodedValue.len;
176
- property.index = decodedValue.value;
177
- }
178
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
179
- len += result.len;
180
- decodedValue = baAsn1.decodeBitstring(buffer, offset + len, result.value);
181
- len += decodedValue.len;
182
- const resultFlag = decodedValue.value;
183
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
184
- len += result.len;
185
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
186
- len += decodedValue.len;
187
- const itemCount = decodedValue.value;
188
- if (!(baAsn1.decodeIsOpeningTag(buffer, offset + len)))
189
- return;
190
- len++;
191
- const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
192
- return {
193
- objectId: objectId,
194
- property: property,
195
- resultFlag: resultFlag,
196
- itemCount: itemCount,
197
- rangeBuffer: rangeBuffer,
198
- len: len
199
- };
200
- };
201
- exports.decodeAcknowledge = decodeAcknowledge;
@@ -1,35 +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 encode = (buffer, state, password) => {
6
- baAsn1.encodeContextEnumerated(buffer, 0, state);
7
- if (password && password !== '') {
8
- baAsn1.encodeContextCharacterString(buffer, 1, password);
9
- }
10
- };
11
- exports.encode = encode;
12
- const decode = (buffer, offset, apduLen) => {
13
- let len = 0;
14
- const value = {};
15
- let result;
16
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
17
- return;
18
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
19
- len += result.len;
20
- let decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
21
- value.state = decodedValue.value;
22
- len += decodedValue.len;
23
- if (len < apduLen) {
24
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 1))
25
- return;
26
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
27
- len += result.len;
28
- decodedValue = baAsn1.decodeCharacterString(buffer, offset + len, apduLen - (offset + len), result.value);
29
- value.password = decodedValue.value;
30
- len += decodedValue.len;
31
- }
32
- value.len = len;
33
- return value;
34
- };
35
- exports.decode = decode;
@@ -1,55 +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 encode = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
6
- baAsn1.encodeContextUnsigned(buffer, 0, subscriberProcessId);
7
- baAsn1.encodeContextObjectId(buffer, 1, monitoredObjectId.type, monitoredObjectId.instance);
8
- if (!cancellationRequest) {
9
- baAsn1.encodeContextBoolean(buffer, 2, issueConfirmedNotifications);
10
- baAsn1.encodeContextUnsigned(buffer, 3, lifetime);
11
- }
12
- };
13
- exports.encode = encode;
14
- const decode = (buffer, offset, apduLen) => {
15
- let len = 0;
16
- const value = {};
17
- let result;
18
- let decodedValue;
19
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
20
- return;
21
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
22
- len += result.len;
23
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
24
- len += decodedValue.len;
25
- value.subscriberProcessId = decodedValue.value;
26
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 1))
27
- return;
28
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
29
- len += result.len;
30
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
31
- len += decodedValue.len;
32
- value.monitoredObjectId = { type: decodedValue.objectType, instance: decodedValue.instance };
33
- value.cancellationRequest = true;
34
- if (len < apduLen) {
35
- value.issueConfirmedNotifications = false;
36
- if (baAsn1.decodeIsContextTag(buffer, offset + len, 2)) {
37
- value.cancellationRequest = false;
38
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
39
- len += result.len;
40
- value.issueConfirmedNotifications = buffer[offset + len] > 0;
41
- len++;
42
- }
43
- value.lifetime = 0;
44
- if (baAsn1.decodeIsContextTag(buffer, offset + len, 3)) {
45
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
46
- len += result.len;
47
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
48
- len += decodedValue.len;
49
- value.lifetime = decodedValue.value;
50
- }
51
- }
52
- value.len = len;
53
- return value;
54
- };
55
- exports.decode = decode;
@@ -1,93 +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, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
7
- baAsn1.encodeContextUnsigned(buffer, 0, subscriberProcessId);
8
- baAsn1.encodeContextObjectId(buffer, 1, monitoredObjectId.type, monitoredObjectId.instance);
9
- if (!cancellationRequest) {
10
- baAsn1.encodeContextBoolean(buffer, 2, issueConfirmedNotifications);
11
- baAsn1.encodeContextUnsigned(buffer, 3, lifetime);
12
- }
13
- baAsn1.encodeOpeningTag(buffer, 4);
14
- baAsn1.encodeContextEnumerated(buffer, 0, monitoredProperty.id);
15
- if (monitoredProperty.index !== baEnum.ASN1_ARRAY_ALL) {
16
- baAsn1.encodeContextUnsigned(buffer, 1, monitoredProperty.index);
17
- }
18
- baAsn1.encodeClosingTag(buffer, 4);
19
- if (covIncrementPresent) {
20
- baAsn1.encodeContextReal(buffer, 5, covIncrement);
21
- }
22
- };
23
- exports.encode = encode;
24
- const decode = (buffer, offset) => {
25
- let len = 0;
26
- const value = {};
27
- let result;
28
- let decodedValue;
29
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
30
- return;
31
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
32
- len += result.len;
33
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
34
- len += decodedValue.len;
35
- value.subscriberProcessId = decodedValue.value;
36
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 1))
37
- return;
38
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
39
- len += result.len;
40
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
41
- len += decodedValue.len;
42
- value.monitoredObjectId = { type: decodedValue.objectType, instance: decodedValue.instance };
43
- value.cancellationRequest = true;
44
- value.issueConfirmedNotifications = false;
45
- if (baAsn1.decodeIsContextTag(buffer, offset + len, 2)) {
46
- value.cancellationRequest = false;
47
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
48
- len += result.len;
49
- value.issueConfirmedNotifications = buffer[offset + len] > 0;
50
- len++;
51
- }
52
- value.lifetime = 0;
53
- if (baAsn1.decodeIsContextTag(buffer, offset + len, 3)) {
54
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
55
- len += result.len;
56
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
57
- len += decodedValue.len;
58
- value.lifetime = decodedValue.value;
59
- }
60
- if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 4))
61
- return;
62
- len++;
63
- value.monitoredProperty = {};
64
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0))
65
- return;
66
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
67
- len += result.len;
68
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
69
- len += decodedValue.len;
70
- value.monitoredProperty.id = decodedValue.value;
71
- value.monitoredProperty.index = baEnum.ASN1_ARRAY_ALL;
72
- if (baAsn1.decodeIsContextTag(buffer, offset + len, 1)) {
73
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
74
- len += result.len;
75
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
76
- len += decodedValue.len;
77
- value.monitoredProperty.index = decodedValue.value;
78
- }
79
- if (!baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 4))
80
- return;
81
- len++;
82
- value.covIncrement = 0;
83
- if (baAsn1.decodeIsContextTag(buffer, offset + len, 5)) {
84
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
85
- len += result.len;
86
- decodedValue = baAsn1.decodeReal(buffer, offset + len);
87
- len += decodedValue.len;
88
- value.covIncrement = decodedValue.value;
89
- }
90
- value.len = len;
91
- return value;
92
- };
93
- exports.decode = decode;
@@ -1,31 +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, time) => {
7
- baAsn1.encodeApplicationDate(buffer, time);
8
- baAsn1.encodeApplicationTime(buffer, time);
9
- };
10
- exports.encode = encode;
11
- const decode = (buffer, offset) => {
12
- let len = 0;
13
- let result;
14
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
15
- len += result.len;
16
- if (result.tagNumber !== baEnum.ApplicationTags.DATE)
17
- return;
18
- const date = baAsn1.decodeDate(buffer, offset + len);
19
- len += date.len;
20
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
21
- len += result.len;
22
- if (result.tagNumber !== baEnum.ApplicationTags.TIME)
23
- return;
24
- const time = baAsn1.decodeBacnetTime(buffer, offset + len);
25
- len += time.len;
26
- return {
27
- len: len,
28
- value: new Date(date.value.getFullYear(), date.value.getMonth(), date.value.getDate(), time.value.getHours(), time.value.getMinutes(), time.value.getSeconds(), time.value.getMilliseconds())
29
- };
30
- };
31
- exports.decode = decode;
@@ -1,56 +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, lowLimit, highLimit, objectId, objectName) => {
7
- if ((lowLimit >= 0) && (lowLimit <= baEnum.ASN1_MAX_INSTANCE) && (highLimit >= 0) && (highLimit <= baEnum.ASN1_MAX_INSTANCE)) {
8
- baAsn1.encodeContextUnsigned(buffer, 0, lowLimit);
9
- baAsn1.encodeContextUnsigned(buffer, 1, highLimit);
10
- }
11
- if (objectName && objectName !== '') {
12
- baAsn1.encodeContextCharacterString(buffer, 3, objectName);
13
- }
14
- else {
15
- baAsn1.encodeContextObjectId(buffer, 2, objectId.type, objectId.instance);
16
- }
17
- };
18
- exports.encode = encode;
19
- const decode = (buffer, offset, apduLen) => {
20
- let len = 0;
21
- const value = {};
22
- let decodedValue;
23
- let result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
24
- len += result.len;
25
- if (result.tagNumber === 0) {
26
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
27
- len += decodedValue.len;
28
- if (decodedValue.value <= baEnum.ASN1_MAX_INSTANCE) {
29
- value.lowLimit = decodedValue.value;
30
- }
31
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
32
- len += result.len;
33
- }
34
- if (result.tagNumber === 1) {
35
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
36
- len += decodedValue.len;
37
- if (decodedValue.value <= baEnum.ASN1_MAX_INSTANCE) {
38
- value.highLimit = decodedValue.value;
39
- }
40
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
41
- len += result.len;
42
- }
43
- if (result.tagNumber === 2) {
44
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
45
- len += decodedValue.len;
46
- value.objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
47
- }
48
- if (result.tagNumber === 3) {
49
- decodedValue = baAsn1.decodeCharacterString(buffer, offset + len, apduLen - (offset + len), result.value);
50
- len += decodedValue.len;
51
- value.objectName = decodedValue.value;
52
- }
53
- value.len = len;
54
- return value;
55
- };
56
- exports.decode = decode;
@@ -1,45 +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, lowLimit, highLimit) => {
7
- if ((lowLimit >= 0) && (lowLimit <= baEnum.ASN1_MAX_INSTANCE) && (highLimit >= 0) && (highLimit <= baEnum.ASN1_MAX_INSTANCE)) {
8
- baAsn1.encodeContextUnsigned(buffer, 0, lowLimit);
9
- baAsn1.encodeContextUnsigned(buffer, 1, highLimit);
10
- }
11
- };
12
- exports.encode = encode;
13
- const decode = (buffer, offset, apduLen) => {
14
- let len = 0;
15
- const value = {};
16
- if (apduLen <= 0)
17
- return {};
18
- let result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
19
- len += result.len;
20
- if (result.tagNumber !== 0)
21
- return;
22
- if (apduLen <= len)
23
- return;
24
- let decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
25
- len += decodedValue.len;
26
- if (decodedValue.value <= baEnum.ASN1_MAX_INSTANCE) {
27
- value.lowLimit = decodedValue.value;
28
- }
29
- if (apduLen <= len)
30
- return;
31
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
32
- len += result.len;
33
- if (result.tagNumber !== 1)
34
- return;
35
- if (apduLen <= len)
36
- return;
37
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
38
- len += decodedValue.len;
39
- if (decodedValue.value <= baEnum.ASN1_MAX_INSTANCE) {
40
- value.highLimit = decodedValue.value;
41
- }
42
- value.len = len;
43
- return value;
44
- };
45
- exports.decode = decode;