@bitpoolos/edge-bacnet 1.6.9 → 1.6.10
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/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/resources/node-bacstack-ts/dist/index.js +3 -0
- package/resources/node-bacstack-ts/dist/lib/apdu.js +193 -0
- package/resources/node-bacstack-ts/dist/lib/asn1.js +1671 -0
- package/resources/node-bacstack-ts/dist/lib/bvlc.js +47 -0
- package/resources/node-bacstack-ts/dist/lib/client.js +1679 -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 +86 -0
- package/resources/node-bacstack-ts/dist/lib/types.js +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.6.10] - 01-07-2026
|
|
4
|
+
|
|
5
|
+
Bug fix:
|
|
6
|
+
|
|
7
|
+
- Packaging fix to ensure all required runtime files are included in the published package. Recommended upgrade for anyone on 1.6.9. Also carries the discovery fixes listed under 1.6.9.
|
|
8
|
+
|
|
3
9
|
## [1.6.9] - 01-07-2026
|
|
4
10
|
|
|
5
11
|
Bug fix:
|
package/package.json
CHANGED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeAbort = exports.encodeAbort = exports.decodeError = exports.encodeError = exports.decodeSegmentAck = exports.encodeSegmentAck = exports.decodeComplexAck = exports.encodeComplexAck = exports.decodeSimpleAck = exports.encodeSimpleAck = exports.decodeUnconfirmedServiceRequest = exports.encodeUnconfirmedServiceRequest = exports.decodeConfirmedServiceRequest = exports.encodeConfirmedServiceRequest = exports.getDecodedInvokeId = exports.setDecodedType = exports.getDecodedType = void 0;
|
|
4
|
+
const baEnum = require("./enum");
|
|
5
|
+
const getDecodedType = (buffer, offset) => {
|
|
6
|
+
return buffer[offset];
|
|
7
|
+
};
|
|
8
|
+
exports.getDecodedType = getDecodedType;
|
|
9
|
+
const setDecodedType = (buffer, offset, type) => {
|
|
10
|
+
buffer[offset] = type;
|
|
11
|
+
};
|
|
12
|
+
exports.setDecodedType = setDecodedType;
|
|
13
|
+
const getDecodedInvokeId = (buffer, offset) => {
|
|
14
|
+
const type = (0, exports.getDecodedType)(buffer, offset);
|
|
15
|
+
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:
|
|
21
|
+
return buffer[offset + 1];
|
|
22
|
+
case baEnum.PduTypes.CONFIRMED_REQUEST:
|
|
23
|
+
return buffer[offset + 2];
|
|
24
|
+
default:
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.getDecodedInvokeId = getDecodedInvokeId;
|
|
29
|
+
const encodeConfirmedServiceRequest = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
|
|
30
|
+
buffer.buffer[buffer.offset++] = type;
|
|
31
|
+
buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
|
|
32
|
+
buffer.buffer[buffer.offset++] = invokeId;
|
|
33
|
+
if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
|
|
34
|
+
buffer.buffer[buffer.offset++] = sequencenumber;
|
|
35
|
+
buffer.buffer[buffer.offset++] = proposedWindowSize;
|
|
36
|
+
}
|
|
37
|
+
buffer.buffer[buffer.offset++] = service;
|
|
38
|
+
};
|
|
39
|
+
exports.encodeConfirmedServiceRequest = encodeConfirmedServiceRequest;
|
|
40
|
+
const decodeConfirmedServiceRequest = (buffer, offset) => {
|
|
41
|
+
const orgOffset = offset;
|
|
42
|
+
const type = buffer[offset++];
|
|
43
|
+
const maxSegments = buffer[offset] & 0xF0;
|
|
44
|
+
const maxApdu = buffer[offset++] & 0x0F;
|
|
45
|
+
const invokeId = buffer[offset++];
|
|
46
|
+
let sequencenumber = 0;
|
|
47
|
+
let proposedWindowNumber = 0;
|
|
48
|
+
if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
|
|
49
|
+
sequencenumber = buffer[offset++];
|
|
50
|
+
proposedWindowNumber = buffer[offset++];
|
|
51
|
+
}
|
|
52
|
+
const service = buffer[offset++];
|
|
53
|
+
return {
|
|
54
|
+
len: offset - orgOffset,
|
|
55
|
+
type: type,
|
|
56
|
+
service: service,
|
|
57
|
+
maxSegments: maxSegments,
|
|
58
|
+
maxApdu: maxApdu,
|
|
59
|
+
invokeId: invokeId,
|
|
60
|
+
sequencenumber: sequencenumber,
|
|
61
|
+
proposedWindowNumber: proposedWindowNumber
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
exports.decodeConfirmedServiceRequest = decodeConfirmedServiceRequest;
|
|
65
|
+
const encodeUnconfirmedServiceRequest = (buffer, type, service) => {
|
|
66
|
+
buffer.buffer[buffer.offset++] = type;
|
|
67
|
+
buffer.buffer[buffer.offset++] = service;
|
|
68
|
+
};
|
|
69
|
+
exports.encodeUnconfirmedServiceRequest = encodeUnconfirmedServiceRequest;
|
|
70
|
+
const decodeUnconfirmedServiceRequest = (buffer, offset) => {
|
|
71
|
+
const orgOffset = offset;
|
|
72
|
+
const type = buffer[offset++];
|
|
73
|
+
const service = buffer[offset++];
|
|
74
|
+
return {
|
|
75
|
+
len: offset - orgOffset,
|
|
76
|
+
type: type,
|
|
77
|
+
service: service
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
exports.decodeUnconfirmedServiceRequest = decodeUnconfirmedServiceRequest;
|
|
81
|
+
const encodeSimpleAck = (buffer, type, service, invokeId) => {
|
|
82
|
+
buffer.buffer[buffer.offset++] = type;
|
|
83
|
+
buffer.buffer[buffer.offset++] = invokeId;
|
|
84
|
+
buffer.buffer[buffer.offset++] = service;
|
|
85
|
+
};
|
|
86
|
+
exports.encodeSimpleAck = encodeSimpleAck;
|
|
87
|
+
const decodeSimpleAck = (buffer, offset) => {
|
|
88
|
+
const orgOffset = offset;
|
|
89
|
+
const type = buffer[offset++];
|
|
90
|
+
const invokeId = buffer[offset++];
|
|
91
|
+
const service = buffer[offset++];
|
|
92
|
+
return {
|
|
93
|
+
len: offset - orgOffset,
|
|
94
|
+
type: type,
|
|
95
|
+
service: service,
|
|
96
|
+
invokeId: invokeId
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
exports.decodeSimpleAck = decodeSimpleAck;
|
|
100
|
+
const encodeComplexAck = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
|
|
101
|
+
let len = 3;
|
|
102
|
+
buffer.buffer[buffer.offset++] = type;
|
|
103
|
+
buffer.buffer[buffer.offset++] = invokeId;
|
|
104
|
+
if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
|
|
105
|
+
buffer.buffer[buffer.offset++] = sequencenumber;
|
|
106
|
+
buffer.buffer[buffer.offset++] = proposedWindowNumber;
|
|
107
|
+
len += 2;
|
|
108
|
+
}
|
|
109
|
+
buffer.buffer[buffer.offset++] = service;
|
|
110
|
+
return len;
|
|
111
|
+
};
|
|
112
|
+
exports.encodeComplexAck = encodeComplexAck;
|
|
113
|
+
const decodeComplexAck = (buffer, offset) => {
|
|
114
|
+
const orgOffset = offset;
|
|
115
|
+
const type = buffer[offset++];
|
|
116
|
+
const invokeId = buffer[offset++];
|
|
117
|
+
let sequencenumber = 0;
|
|
118
|
+
let proposedWindowNumber = 0;
|
|
119
|
+
if ((type & baEnum.PduConReqBits.SEGMENTED_MESSAGE) > 0) {
|
|
120
|
+
sequencenumber = buffer[offset++];
|
|
121
|
+
proposedWindowNumber = buffer[offset++];
|
|
122
|
+
}
|
|
123
|
+
const service = buffer[offset++];
|
|
124
|
+
return {
|
|
125
|
+
len: offset - orgOffset,
|
|
126
|
+
type: type,
|
|
127
|
+
service: service,
|
|
128
|
+
invokeId: invokeId,
|
|
129
|
+
sequencenumber: sequencenumber,
|
|
130
|
+
proposedWindowNumber: proposedWindowNumber
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
exports.decodeComplexAck = decodeComplexAck;
|
|
134
|
+
const encodeSegmentAck = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
|
|
135
|
+
buffer.buffer[buffer.offset++] = type;
|
|
136
|
+
buffer.buffer[buffer.offset++] = originalInvokeId;
|
|
137
|
+
buffer.buffer[buffer.offset++] = sequencenumber;
|
|
138
|
+
buffer.buffer[buffer.offset++] = actualWindowSize;
|
|
139
|
+
};
|
|
140
|
+
exports.encodeSegmentAck = encodeSegmentAck;
|
|
141
|
+
const decodeSegmentAck = (buffer, offset) => {
|
|
142
|
+
const orgOffset = offset;
|
|
143
|
+
const type = buffer[offset++];
|
|
144
|
+
const originalInvokeId = buffer[offset++];
|
|
145
|
+
const sequencenumber = buffer[offset++];
|
|
146
|
+
const actualWindowSize = buffer[offset++];
|
|
147
|
+
return {
|
|
148
|
+
len: offset - orgOffset,
|
|
149
|
+
type: type,
|
|
150
|
+
originalInvokeId: originalInvokeId,
|
|
151
|
+
sequencenumber: sequencenumber,
|
|
152
|
+
actualWindowSize: actualWindowSize
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
exports.decodeSegmentAck = decodeSegmentAck;
|
|
156
|
+
const encodeError = (buffer, type, service, invokeId) => {
|
|
157
|
+
buffer.buffer[buffer.offset++] = type;
|
|
158
|
+
buffer.buffer[buffer.offset++] = invokeId;
|
|
159
|
+
buffer.buffer[buffer.offset++] = service;
|
|
160
|
+
};
|
|
161
|
+
exports.encodeError = encodeError;
|
|
162
|
+
const decodeError = (buffer, offset) => {
|
|
163
|
+
const orgOffset = offset;
|
|
164
|
+
const type = buffer[offset++];
|
|
165
|
+
const invokeId = buffer[offset++];
|
|
166
|
+
const service = buffer[offset++];
|
|
167
|
+
return {
|
|
168
|
+
len: offset - orgOffset,
|
|
169
|
+
type: type,
|
|
170
|
+
service: service,
|
|
171
|
+
invokeId: invokeId
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
exports.decodeError = decodeError;
|
|
175
|
+
const encodeAbort = (buffer, type, invokeId, reason) => {
|
|
176
|
+
buffer.buffer[buffer.offset++] = type;
|
|
177
|
+
buffer.buffer[buffer.offset++] = invokeId;
|
|
178
|
+
buffer.buffer[buffer.offset++] = reason;
|
|
179
|
+
};
|
|
180
|
+
exports.encodeAbort = encodeAbort;
|
|
181
|
+
const decodeAbort = (buffer, offset) => {
|
|
182
|
+
const orgOffset = offset;
|
|
183
|
+
const type = buffer[offset++];
|
|
184
|
+
const invokeId = buffer[offset++];
|
|
185
|
+
const reason = buffer[offset++];
|
|
186
|
+
return {
|
|
187
|
+
len: offset - orgOffset,
|
|
188
|
+
type: type,
|
|
189
|
+
invokeId: invokeId,
|
|
190
|
+
reason: reason
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
exports.decodeAbort = decodeAbort;
|