@robdobsn/raftjs 1.10.7 → 1.11.6
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/dist/react-native/RaftAttributeHandler.js +11 -9
- package/dist/react-native/RaftAttributeHandler.js.map +1 -1
- package/dist/react-native/RaftChannelSimulated.js +4 -3
- package/dist/react-native/RaftChannelSimulated.js.map +1 -1
- package/dist/react-native/RaftConnector.d.ts +10 -1
- package/dist/react-native/RaftConnector.js +23 -10
- package/dist/react-native/RaftConnector.js.map +1 -1
- package/dist/react-native/RaftDeviceManager.d.ts +14 -2
- package/dist/react-native/RaftDeviceManager.js +224 -77
- package/dist/react-native/RaftDeviceManager.js.map +1 -1
- package/dist/react-native/RaftDeviceMgrIF.d.ts +5 -1
- package/dist/react-native/RaftDeviceStates.d.ts +21 -3
- package/dist/react-native/RaftDeviceStates.js +31 -6
- package/dist/react-native/RaftDeviceStates.js.map +1 -1
- package/dist/react-native/RaftPublish.d.ts +2 -0
- package/dist/react-native/RaftPublish.js +81 -0
- package/dist/react-native/RaftPublish.js.map +1 -0
- package/dist/react-native/RaftStreamHandler.d.ts +11 -0
- package/dist/react-native/RaftStreamHandler.js +66 -0
- package/dist/react-native/RaftStreamHandler.js.map +1 -1
- package/dist/react-native/RaftStruct.d.ts +2 -2
- package/dist/react-native/RaftStruct.js +97 -26
- package/dist/react-native/RaftStruct.js.map +1 -1
- package/dist/react-native/RaftSystemUtils.d.ts +17 -1
- package/dist/react-native/RaftSystemUtils.js +51 -0
- package/dist/react-native/RaftSystemUtils.js.map +1 -1
- package/dist/react-native/RaftTypes.d.ts +21 -0
- package/dist/react-native/RaftTypes.js.map +1 -1
- package/dist/react-native/main.d.ts +1 -0
- package/dist/react-native/main.js +1 -0
- package/dist/react-native/main.js.map +1 -1
- package/dist/web/RaftAttributeHandler.js +11 -9
- package/dist/web/RaftAttributeHandler.js.map +1 -1
- package/dist/web/RaftChannelSimulated.js +4 -3
- package/dist/web/RaftChannelSimulated.js.map +1 -1
- package/dist/web/RaftConnector.d.ts +10 -1
- package/dist/web/RaftConnector.js +23 -10
- package/dist/web/RaftConnector.js.map +1 -1
- package/dist/web/RaftDeviceManager.d.ts +14 -2
- package/dist/web/RaftDeviceManager.js +224 -77
- package/dist/web/RaftDeviceManager.js.map +1 -1
- package/dist/web/RaftDeviceMgrIF.d.ts +5 -1
- package/dist/web/RaftDeviceStates.d.ts +21 -3
- package/dist/web/RaftDeviceStates.js +31 -6
- package/dist/web/RaftDeviceStates.js.map +1 -1
- package/dist/web/RaftPublish.d.ts +2 -0
- package/dist/web/RaftPublish.js +81 -0
- package/dist/web/RaftPublish.js.map +1 -0
- package/dist/web/RaftStreamHandler.d.ts +11 -0
- package/dist/web/RaftStreamHandler.js +66 -0
- package/dist/web/RaftStreamHandler.js.map +1 -1
- package/dist/web/RaftStruct.d.ts +2 -2
- package/dist/web/RaftStruct.js +97 -26
- package/dist/web/RaftStruct.js.map +1 -1
- package/dist/web/RaftSystemUtils.d.ts +17 -1
- package/dist/web/RaftSystemUtils.js +51 -0
- package/dist/web/RaftSystemUtils.js.map +1 -1
- package/dist/web/RaftTypes.d.ts +21 -0
- package/dist/web/RaftTypes.js.map +1 -1
- package/dist/web/main.d.ts +1 -0
- package/dist/web/main.js +1 -0
- package/dist/web/main.js.map +1 -1
- package/examples/dashboard/package.json +1 -1
- package/examples/dashboard/src/DeviceActionsForm.tsx +2 -2
- package/examples/dashboard/src/DeviceLineChart.tsx +16 -3
- package/examples/dashboard/src/DevicePanel.tsx +79 -3
- package/examples/dashboard/src/DeviceStatsPanel.tsx +76 -0
- package/examples/dashboard/src/DevicesPanel.tsx +11 -0
- package/examples/dashboard/src/SettingsScreen.tsx +9 -4
- package/examples/dashboard/src/SystemTypeCog/CogStateInfo.ts +10 -2
- package/examples/dashboard/src/SystemTypeCog/SystemTypeCog.ts +37 -3
- package/examples/dashboard/src/SystemTypeGeneric/StateInfoGeneric.ts +10 -2
- package/examples/dashboard/src/SystemTypeGeneric/SystemTypeGeneric.ts +38 -4
- package/examples/dashboard/src/SystemTypeMarty/RICStateInfo.ts +10 -2
- package/examples/dashboard/src/styles.css +162 -0
- package/package.json +52 -49
- package/src/RaftAttributeHandler.ts +25 -22
- package/src/RaftChannelSimulated.ts +4 -3
- package/src/RaftConnector.ts +34 -13
- package/src/RaftDeviceManager.ts +253 -83
- package/src/RaftDeviceMgrIF.ts +5 -1
- package/src/RaftDeviceStates.ts +42 -8
- package/src/RaftPublish.ts +92 -0
- package/src/RaftStreamHandler.ts +84 -1
- package/src/RaftStruct.test.ts +229 -0
- package/src/RaftStruct.ts +101 -37
- package/src/RaftSystemUtils.ts +59 -0
- package/src/RaftTypes.ts +27 -0
- package/src/main.ts +1 -0
|
@@ -20,6 +20,12 @@ class DeviceManager {
|
|
|
20
20
|
getDeviceState(deviceKey) {
|
|
21
21
|
return this._devicesState[deviceKey];
|
|
22
22
|
}
|
|
23
|
+
getDeviceStats(deviceKey) {
|
|
24
|
+
return this.cloneDeviceStats(this.getOrCreateDeviceStats(deviceKey));
|
|
25
|
+
}
|
|
26
|
+
resetDeviceStats(deviceKey) {
|
|
27
|
+
this._deviceStats[deviceKey] = this.createEmptyStats();
|
|
28
|
+
}
|
|
23
29
|
// Constructor
|
|
24
30
|
constructor() {
|
|
25
31
|
// Max data points to store
|
|
@@ -42,8 +48,12 @@ class DeviceManager {
|
|
|
42
48
|
this._newDeviceAttributeCallbacks = [];
|
|
43
49
|
this._newAttributeDataCallbacks = [];
|
|
44
50
|
this._decodedDataCallbacks = [];
|
|
51
|
+
this._deviceRemovedCallbacks = [];
|
|
45
52
|
// Debug message index (to help debug with async messages)
|
|
46
53
|
this._debugMsgIndex = 0;
|
|
54
|
+
// Device stats (sample counts, rates)
|
|
55
|
+
this._statsWindowMs = 5000;
|
|
56
|
+
this._deviceStats = {};
|
|
47
57
|
// Cached device type data
|
|
48
58
|
this._cachedDeviceTypeRecs = {};
|
|
49
59
|
// Cached device type previous attempt times
|
|
@@ -120,6 +130,14 @@ class DeviceManager {
|
|
|
120
130
|
removeDecodedDataCallback(callback) {
|
|
121
131
|
this._decodedDataCallbacks = this._decodedDataCallbacks.filter((cb) => cb !== callback);
|
|
122
132
|
}
|
|
133
|
+
addDeviceRemovedCallback(callback) {
|
|
134
|
+
if (!this._deviceRemovedCallbacks.includes(callback)) {
|
|
135
|
+
this._deviceRemovedCallbacks.push(callback);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
removeDeviceRemovedCallback(callback) {
|
|
139
|
+
this._deviceRemovedCallbacks = this._deviceRemovedCallbacks.filter((cb) => cb !== callback);
|
|
140
|
+
}
|
|
123
141
|
////////////////////////////////////////////////////////////////////////////
|
|
124
142
|
// Set the friendly name for the device
|
|
125
143
|
////////////////////////////////////////////////////////////////////////////
|
|
@@ -133,75 +151,122 @@ class DeviceManager {
|
|
|
133
151
|
////////////////////////////////////////////////////////////////////////////
|
|
134
152
|
async handleClientMsgBinary(rxMsg) {
|
|
135
153
|
// console.log(`DeviceManager client1 msg ${RaftUtils.bufferToHex(rxMsg)}`);
|
|
136
|
-
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
//
|
|
154
|
+
var _a;
|
|
155
|
+
// DevBIN message format
|
|
156
|
+
//
|
|
157
|
+
// The rxMsg passed to this function has a 2-byte message type prefix (e.g. 0x0080)
|
|
158
|
+
// added by the transport layer. After that prefix comes a devbin frame:
|
|
159
|
+
//
|
|
160
|
+
// Devbin envelope (2 bytes):
|
|
161
|
+
// Byte 0: magic+version 0xDB = devbin v1 (valid range 0xDB–0xDF for v1–v5)
|
|
162
|
+
// Byte 1: topicIndex 0x00–0xFE = topic index; 0xFF = no topic
|
|
163
|
+
//
|
|
164
|
+
// Then zero or more per-device records, concatenated back-to-back:
|
|
165
|
+
// Bytes 0-1: recordLen uint16 big-endian — number of body bytes that follow (min 7)
|
|
166
|
+
// Byte 2: statusBus bit 7 = online flag, bit 6 = pending deletion, bits 5:4 = reserved, bits 3:0 = bus number (0-15)
|
|
167
|
+
// Bytes 3-6: address uint32 big-endian — device address on the bus
|
|
168
|
+
// Bytes 7-8: devTypeIdx uint16 big-endian — device type table index
|
|
169
|
+
// Bytes 9+: pollData variable length (recordLen − 7 bytes) — device data
|
|
170
|
+
//
|
|
171
|
+
// Example message (with transport prefix):
|
|
172
|
+
// 0080 DB01 0015 81 0000076a 000b bff10000ffffffff7a07d1f1221c 000e 80 00000000 001f bc340000030001
|
|
173
|
+
// ^^^^ ^^^^ ^^^^
|
|
174
|
+
// | | | || | | | Record 2 ...
|
|
175
|
+
// | | | || | | pollData (14 bytes)
|
|
176
|
+
// | | | || | devTypeIdx = 0x000b (11)
|
|
177
|
+
// | | | || address = 0x0000076a (slot 7, I2C addr 0x6a)
|
|
178
|
+
// | | | |busInfo = 0x81 (bus 1, online)
|
|
179
|
+
// | | | recordLen = 0x0015 (21 bytes)
|
|
180
|
+
// | | topicIndex = 0x01
|
|
181
|
+
// | magic+version = 0xDB (devbin v1)
|
|
182
|
+
// msgType prefix (transport layer)
|
|
150
183
|
// Debug
|
|
151
184
|
// const debugMsgTime = Date.now();
|
|
152
185
|
const debugMsgIndex = this._debugMsgIndex++;
|
|
153
|
-
// Message layout
|
|
154
|
-
const msgTypeLen = 2; //
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
-
const
|
|
158
|
-
const
|
|
159
|
-
const
|
|
186
|
+
// Message layout constants
|
|
187
|
+
const msgTypeLen = 2; // Transport-layer message type prefix (first two bytes, e.g. 0x0080)
|
|
188
|
+
const devbinEnvelopeLen = 2; // Devbin envelope: magic+version (1 byte) + topicIndex (1 byte)
|
|
189
|
+
const devbinMagicMin = 0xDB;
|
|
190
|
+
const devbinMagicMax = 0xDF;
|
|
191
|
+
const recordLenLen = 2; // Per-record length prefix (uint16 big-endian)
|
|
192
|
+
const busInfoLen = 1; // statusBus byte: bit 7 = online, bit 6 = pending deletion, bits 3:0 = bus number
|
|
193
|
+
const deviceAddrLen = 4; // Device address (uint32 big-endian)
|
|
194
|
+
const devTypeIdxLen = 2; // Device type index (uint16 big-endian)
|
|
195
|
+
const recordHeaderLen = busInfoLen + deviceAddrLen + devTypeIdxLen; // = 7, minimum record body
|
|
160
196
|
// console.log(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} rxMsg.length ${rxMsg.length} rxMsg ${RaftUtils.bufferToHex(rxMsg)}`);
|
|
161
197
|
// Start after the message type
|
|
162
198
|
let msgPos = msgTypeLen;
|
|
163
|
-
//
|
|
199
|
+
// Check for devbin envelope (magic+version + topicIndex)
|
|
200
|
+
if (rxMsg.length >= msgTypeLen + devbinEnvelopeLen) {
|
|
201
|
+
const envelopeMagicVer = rxMsg[msgTypeLen];
|
|
202
|
+
if ((envelopeMagicVer & 0xF0) === 0xD0) {
|
|
203
|
+
if ((envelopeMagicVer < devbinMagicMin) || (envelopeMagicVer > devbinMagicMax)) {
|
|
204
|
+
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} invalid devbin envelope magic/version ${envelopeMagicVer}`);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const topicIndex = rxMsg[msgTypeLen + 1];
|
|
208
|
+
if (topicIndex !== 0xFF) {
|
|
209
|
+
const topicName = (_a = this._systemUtils) === null || _a === void 0 ? void 0 : _a.getPublishTopicName(topicIndex);
|
|
210
|
+
if (topicName && topicName !== "devbin") {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
msgPos += devbinEnvelopeLen;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Iterate through device records
|
|
164
218
|
while (msgPos < rxMsg.length) {
|
|
165
|
-
// Check length
|
|
219
|
+
// Check minimum length for record length prefix + record header
|
|
166
220
|
const remainingLen = rxMsg.length - msgPos;
|
|
167
|
-
if (remainingLen <
|
|
168
|
-
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} invalid length ${rxMsg.length} < ${
|
|
221
|
+
if (remainingLen < recordLenLen + recordHeaderLen) {
|
|
222
|
+
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} invalid length ${rxMsg.length} < ${recordLenLen + recordHeaderLen + msgPos}`);
|
|
169
223
|
return;
|
|
170
224
|
}
|
|
171
|
-
// Get the length
|
|
172
|
-
const
|
|
173
|
-
if (
|
|
174
|
-
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} invalid msgPos ${msgPos}
|
|
225
|
+
// Get the record body length (bytes that follow the 2-byte length prefix)
|
|
226
|
+
const recordLen = (rxMsg[msgPos] << 8) + rxMsg[msgPos + 1];
|
|
227
|
+
if (recordLen > remainingLen - recordLenLen) {
|
|
228
|
+
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} invalid msgPos ${msgPos} recordLen ${recordLen} remainingAfterLenBytes ${remainingLen - recordLenLen}`);
|
|
175
229
|
return;
|
|
176
230
|
}
|
|
177
|
-
// Extract
|
|
178
|
-
let
|
|
179
|
-
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
231
|
+
// Extract record header fields
|
|
232
|
+
let recordPos = msgPos + recordLenLen;
|
|
233
|
+
// statusBus byte: bit 7 = online, bit 6 = pending deletion, bits 3:0 = bus number
|
|
234
|
+
const statusByte = rxMsg[recordPos];
|
|
235
|
+
const busNum = statusByte & 0x0f;
|
|
236
|
+
const isOnline = (statusByte & 0x80) !== 0;
|
|
237
|
+
const isPendingDeletion = (statusByte & 0x40) !== 0;
|
|
238
|
+
recordPos += busInfoLen;
|
|
239
|
+
// Device address (uint32 big-endian)
|
|
240
|
+
const devAddr = (rxMsg[recordPos] << 24) + (rxMsg[recordPos + 1] << 16) + (rxMsg[recordPos + 2] << 8) + rxMsg[recordPos + 3];
|
|
241
|
+
recordPos += deviceAddrLen;
|
|
242
|
+
// Device type index (uint16 big-endian)
|
|
243
|
+
const devTypeIdx = (rxMsg[recordPos] << 8) + rxMsg[recordPos + 1];
|
|
244
|
+
let pollDataPos = recordPos + devTypeIdxLen;
|
|
187
245
|
// Debug
|
|
188
|
-
// console.log(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} overallLen ${rxMsg.length}
|
|
189
|
-
// console.log(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex}
|
|
190
|
-
//
|
|
191
|
-
const
|
|
246
|
+
// console.log(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} overallLen ${rxMsg.length} recordStart ${msgPos} recordLen ${recordLen} ${pollDataPos} ${RaftUtils.bufferToHex(rxMsg.slice(msgPos, msgPos + recordLenLen + recordLen))}`);
|
|
247
|
+
// console.log(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} bus ${busNum} isOnline ${isOnline} devAddr 0x${devAddr.toString(16)} devTypeIdx ${devTypeIdx} pollDataLen ${recordLen - recordHeaderLen}`);
|
|
248
|
+
// Format device address as canonical hex and build device key
|
|
249
|
+
const devAddrHex = (0, RaftDeviceStates_1.formatDeviceAddrHex)(devAddr);
|
|
250
|
+
const deviceKey = (0, RaftDeviceStates_1.getDeviceKey)(busNum.toString(), devAddrHex);
|
|
192
251
|
// Update the last update time
|
|
193
252
|
this._deviceLastUpdateTime[deviceKey] = Date.now();
|
|
253
|
+
// Handle pending deletion - remove device and skip further processing
|
|
254
|
+
if (isPendingDeletion) {
|
|
255
|
+
this.removeDevice(deviceKey);
|
|
256
|
+
msgPos += recordLenLen + recordLen;
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
194
259
|
// Check if a device state already exists
|
|
195
260
|
if (!(deviceKey in this._devicesState) || (this._devicesState[deviceKey].deviceTypeInfo === undefined)) {
|
|
196
261
|
// Get the device type info
|
|
197
262
|
const deviceTypeInfo = await this.getDeviceTypeInfo(busNum.toString(), devTypeIdx.toString());
|
|
198
263
|
// Debug
|
|
199
|
-
// console.log(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex}
|
|
264
|
+
// console.log(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} pollDataPos ${pollDataPos} busNum ${busNum} devAddr 0x${devAddr.toString(16)} devTypeIdx ${devTypeIdx} deviceTypeInfo ${JSON.stringify(deviceTypeInfo)}`);
|
|
200
265
|
// Handle case where device type info is not available
|
|
201
266
|
if (deviceTypeInfo === undefined) {
|
|
202
|
-
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} deviceType ${devTypeIdx} info not available, skipping attribute processing for this
|
|
203
|
-
// Skip to next
|
|
204
|
-
msgPos +=
|
|
267
|
+
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} deviceType ${devTypeIdx} info not available, skipping attribute processing for this record`);
|
|
268
|
+
// Skip to next record without processing attributes
|
|
269
|
+
msgPos += recordLenLen + recordLen;
|
|
205
270
|
continue;
|
|
206
271
|
}
|
|
207
272
|
// Check if device record exists
|
|
@@ -210,7 +275,7 @@ class DeviceManager {
|
|
|
210
275
|
this._devicesState[deviceKey].deviceTypeInfo = deviceTypeInfo;
|
|
211
276
|
this._devicesState[deviceKey].deviceType = deviceTypeInfo.name || "";
|
|
212
277
|
this._devicesState[deviceKey].busName = busNum.toString();
|
|
213
|
-
this._devicesState[deviceKey].deviceAddress =
|
|
278
|
+
this._devicesState[deviceKey].deviceAddress = devAddrHex;
|
|
214
279
|
}
|
|
215
280
|
}
|
|
216
281
|
else {
|
|
@@ -225,8 +290,8 @@ class DeviceManager {
|
|
|
225
290
|
deviceAttributes: {},
|
|
226
291
|
deviceIsNew: true,
|
|
227
292
|
stateChanged: false,
|
|
228
|
-
|
|
229
|
-
deviceAddress:
|
|
293
|
+
onlineState: RaftDeviceStates_1.DeviceOnlineState.Online,
|
|
294
|
+
deviceAddress: devAddrHex,
|
|
230
295
|
deviceType: (deviceTypeInfo === null || deviceTypeInfo === void 0 ? void 0 : deviceTypeInfo.name) || "",
|
|
231
296
|
busName: busNum.toString()
|
|
232
297
|
};
|
|
@@ -234,48 +299,50 @@ class DeviceManager {
|
|
|
234
299
|
}
|
|
235
300
|
// Get device state
|
|
236
301
|
const deviceState = this._devicesState[deviceKey];
|
|
237
|
-
deviceState.
|
|
302
|
+
deviceState.onlineState = isOnline ? RaftDeviceStates_1.DeviceOnlineState.Online : RaftDeviceStates_1.DeviceOnlineState.Offline;
|
|
238
303
|
// Check if device type info is available and complete
|
|
239
304
|
if (deviceState.deviceTypeInfo && deviceState.deviceTypeInfo.resp) {
|
|
240
305
|
// Iterate over attributes in the group
|
|
241
306
|
const pollRespMetadata = deviceState.deviceTypeInfo.resp;
|
|
242
|
-
//
|
|
243
|
-
const
|
|
244
|
-
const
|
|
307
|
+
// Process poll data (recordLen - recordHeaderLen bytes)
|
|
308
|
+
const pollDataLen = recordLen - recordHeaderLen;
|
|
309
|
+
const pollDataStartPos = pollDataPos;
|
|
245
310
|
const attrLengthsBefore = this.snapshotAttrLengths(deviceState.deviceAttributes, pollRespMetadata);
|
|
246
311
|
const timelineLenBefore = deviceState.deviceTimeline.timestampsUs.length;
|
|
247
|
-
while (
|
|
312
|
+
while (pollDataPos < pollDataStartPos + pollDataLen) {
|
|
248
313
|
// Add bounds checking
|
|
249
|
-
if (
|
|
250
|
-
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex}
|
|
314
|
+
if (pollDataPos >= rxMsg.length) {
|
|
315
|
+
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} pollDataPos ${pollDataPos} exceeds message length ${rxMsg.length}`);
|
|
251
316
|
break;
|
|
252
317
|
}
|
|
253
|
-
const newMsgBufIdx = this._attributeHandler.processMsgAttrGroup(rxMsg,
|
|
254
|
-
// console.log(`DevMan.handleClientMsgBinary decoded debugIdx ${debugMsgIndex} devType ${deviceState.deviceTypeInfo.name}
|
|
318
|
+
const newMsgBufIdx = this._attributeHandler.processMsgAttrGroup(rxMsg, pollDataPos, deviceState.deviceTimeline, pollRespMetadata, deviceState.deviceAttributes, this._maxDatapointsToStore);
|
|
319
|
+
// console.log(`DevMan.handleClientMsgBinary decoded debugIdx ${debugMsgIndex} devType ${deviceState.deviceTypeInfo.name} pollDataLen ${pollDataLen} pollDataPos ${pollDataPos} recordLen ${recordLen} msgPos ${msgPos} rxMsgLen ${rxMsg.length} remainingLen ${remainingLen} pollRespMetadata ${JSON.stringify(pollRespMetadata)}`);
|
|
255
320
|
if (newMsgBufIdx < 0) {
|
|
256
321
|
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} processMsgAttrGroup failed newMsgBufIdx ${newMsgBufIdx}`);
|
|
257
322
|
break;
|
|
258
323
|
}
|
|
259
324
|
// Prevent infinite loops
|
|
260
|
-
if (newMsgBufIdx <=
|
|
261
|
-
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} processMsgAttrGroup didn't advance position from ${
|
|
325
|
+
if (newMsgBufIdx <= pollDataPos) {
|
|
326
|
+
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} processMsgAttrGroup didn't advance position from ${pollDataPos} to ${newMsgBufIdx}`);
|
|
262
327
|
break;
|
|
263
328
|
}
|
|
264
|
-
|
|
329
|
+
pollDataPos = newMsgBufIdx;
|
|
265
330
|
deviceState.stateChanged = true;
|
|
266
331
|
// console.log(`debugMsgTime ${debugMsgTime} newPt debugMsgIdx ${debugMsgIndex} rxMsgLen ${rxMsg.length} devType ${deviceState.deviceTypeInfo!.name} timestampsUs ${deviceState.deviceTimeline.timestampsUs[deviceState.deviceTimeline.timestampsUs.length - 1]} curTimelineLen ${deviceState.deviceTimeline.timestampsUs.length}`);
|
|
267
|
-
// console.log(`DevMan.handleClientMsgBinary group done debugIdx ${debugMsgIndex}
|
|
332
|
+
// console.log(`DevMan.handleClientMsgBinary group done debugIdx ${debugMsgIndex} pollDataPos ${pollDataPos} recordLen ${recordLen} msgPos ${msgPos} rxMsgLen ${rxMsg.length} remainingLen ${remainingLen}`);
|
|
268
333
|
}
|
|
269
334
|
// Inform decoded-data callbacks
|
|
270
|
-
this.emitDecodedData(deviceKey, busNum.toString(),
|
|
335
|
+
this.emitDecodedData(deviceKey, busNum.toString(), devAddrHex, deviceState, pollRespMetadata, attrLengthsBefore, timelineLenBefore);
|
|
336
|
+
const newSamples = deviceState.deviceTimeline.timestampsUs.length - timelineLenBefore;
|
|
337
|
+
this.updateDeviceStats(deviceKey, newSamples, Date.now());
|
|
271
338
|
}
|
|
272
339
|
else {
|
|
273
340
|
console.warn(`DevMan.handleClientMsgBinary debugIdx ${debugMsgIndex} deviceState incomplete for device ${deviceKey}, skipping attribute processing`);
|
|
274
341
|
}
|
|
275
342
|
// Debug
|
|
276
|
-
// console.log(`DevMan.handleClientMsgBinary
|
|
277
|
-
//
|
|
278
|
-
msgPos +=
|
|
343
|
+
// console.log(`DevMan.handleClientMsgBinary record done debugIdx ${debugMsgIndex} pollDataPos ${pollDataPos} recordLen ${recordLen} msgPos ${msgPos} newMsgPos ${msgPos + recordLenLen + recordLen} rxMsgLen ${rxMsg.length} remainingLen ${remainingLen}`);
|
|
344
|
+
// Advance past this record (recordLenLen + recordLen bytes)
|
|
345
|
+
msgPos += recordLenLen + recordLen;
|
|
279
346
|
}
|
|
280
347
|
// Check for devices that have not been updated for a while
|
|
281
348
|
if (this._removeDevicesFlag) {
|
|
@@ -283,6 +350,7 @@ class DeviceManager {
|
|
|
283
350
|
Object.entries(this._deviceLastUpdateTime).forEach(([deviceKey, lastUpdateTime]) => {
|
|
284
351
|
if ((nowTime - lastUpdateTime) > this._removeDevicesTimeMs) {
|
|
285
352
|
delete this._devicesState[deviceKey];
|
|
353
|
+
delete this._deviceStats[deviceKey];
|
|
286
354
|
}
|
|
287
355
|
});
|
|
288
356
|
}
|
|
@@ -297,6 +365,10 @@ class DeviceManager {
|
|
|
297
365
|
// console.log(`DeviceManager client msg ${JSON.stringify(data)}`);
|
|
298
366
|
// Iterate over the buses
|
|
299
367
|
Object.entries(data).forEach(([busName, devices]) => {
|
|
368
|
+
// Check the bus name doesn't start with _ which is reserved for non-device information such as topic name
|
|
369
|
+
if (busName.startsWith("_")) {
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
300
372
|
// Check for bus status info
|
|
301
373
|
if (devices && typeof devices === "object" && "_s" in devices) {
|
|
302
374
|
// console.log(`DeviceManager bus status ${JSON.stringify(devices._s)}`);
|
|
@@ -304,6 +376,7 @@ class DeviceManager {
|
|
|
304
376
|
}
|
|
305
377
|
// Iterate over the devices
|
|
306
378
|
Object.entries(devices).forEach(async ([devAddr, attrGroups]) => {
|
|
379
|
+
var _a;
|
|
307
380
|
// Check for non-device info (starts with _)
|
|
308
381
|
if (devAddr.startsWith("_")) {
|
|
309
382
|
return;
|
|
@@ -315,7 +388,7 @@ class DeviceManager {
|
|
|
315
388
|
deviceTypeName = attrGroups._t || "";
|
|
316
389
|
}
|
|
317
390
|
else if (attrGroups && typeof attrGroups === 'object' && "_i" in attrGroups && typeof attrGroups._i === "number") {
|
|
318
|
-
deviceTypeIdx = attrGroups._i
|
|
391
|
+
deviceTypeIdx = (_a = attrGroups._i) !== null && _a !== void 0 ? _a : -1;
|
|
319
392
|
deviceTypeName = deviceTypeIdx.toString();
|
|
320
393
|
}
|
|
321
394
|
else {
|
|
@@ -351,7 +424,7 @@ class DeviceManager {
|
|
|
351
424
|
deviceAttributes: {},
|
|
352
425
|
deviceIsNew: true,
|
|
353
426
|
stateChanged: false,
|
|
354
|
-
|
|
427
|
+
onlineState: RaftDeviceStates_1.DeviceOnlineState.Online,
|
|
355
428
|
deviceAddress: devAddr,
|
|
356
429
|
deviceType: deviceTypeName,
|
|
357
430
|
busName: busName
|
|
@@ -360,9 +433,15 @@ class DeviceManager {
|
|
|
360
433
|
}
|
|
361
434
|
// Get device state
|
|
362
435
|
const deviceState = this._devicesState[deviceKey];
|
|
363
|
-
// Check for online/offline state information
|
|
436
|
+
// Check for online/offline/pending-deletion state information
|
|
364
437
|
if (attrGroups && typeof attrGroups === "object" && "_o" in attrGroups) {
|
|
365
|
-
|
|
438
|
+
const onlineStateVal = typeof attrGroups._o === 'number' ? attrGroups._o : parseInt(String(attrGroups._o), 10);
|
|
439
|
+
if (onlineStateVal === 2) {
|
|
440
|
+
// Pending deletion - remove device and skip further processing
|
|
441
|
+
this.removeDevice(deviceKey);
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
deviceState.onlineState = onlineStateVal === 1 ? RaftDeviceStates_1.DeviceOnlineState.Online : RaftDeviceStates_1.DeviceOnlineState.Offline;
|
|
366
445
|
}
|
|
367
446
|
// Check if device type info is available
|
|
368
447
|
if (!deviceState.deviceTypeInfo) {
|
|
@@ -396,6 +475,8 @@ class DeviceManager {
|
|
|
396
475
|
deviceState.stateChanged = true;
|
|
397
476
|
}
|
|
398
477
|
this.emitDecodedData(deviceKey, busName, devAddr, deviceState, pollRespMetadata, attrLengthsBefore, timelineLenBefore, attrGroupName, markers);
|
|
478
|
+
const newSamples = deviceState.deviceTimeline.timestampsUs.length - timelineLenBefore;
|
|
479
|
+
this.updateDeviceStats(deviceKey, newSamples, Date.now());
|
|
399
480
|
});
|
|
400
481
|
});
|
|
401
482
|
});
|
|
@@ -405,6 +486,7 @@ class DeviceManager {
|
|
|
405
486
|
Object.entries(this._deviceLastUpdateTime).forEach(([deviceKey, lastUpdateTime]) => {
|
|
406
487
|
if ((nowTime - lastUpdateTime) > this._removeDevicesTimeMs) {
|
|
407
488
|
delete this._devicesState[deviceKey];
|
|
489
|
+
delete this._deviceStats[deviceKey];
|
|
408
490
|
}
|
|
409
491
|
});
|
|
410
492
|
}
|
|
@@ -436,6 +518,20 @@ class DeviceManager {
|
|
|
436
518
|
});
|
|
437
519
|
}
|
|
438
520
|
////////////////////////////////////////////////////////////////////////////
|
|
521
|
+
// Remove a device (e.g. on pending deletion)
|
|
522
|
+
////////////////////////////////////////////////////////////////////////////
|
|
523
|
+
removeDevice(deviceKey) {
|
|
524
|
+
// Snapshot the state before removal for callbacks
|
|
525
|
+
const deviceState = this._devicesState[deviceKey];
|
|
526
|
+
if (deviceState) {
|
|
527
|
+
deviceState.onlineState = RaftDeviceStates_1.DeviceOnlineState.PendingDeletion;
|
|
528
|
+
this._deviceRemovedCallbacks.forEach((cb) => cb(deviceKey, deviceState));
|
|
529
|
+
}
|
|
530
|
+
delete this._devicesState[deviceKey];
|
|
531
|
+
delete this._deviceLastUpdateTime[deviceKey];
|
|
532
|
+
delete this._deviceStats[deviceKey];
|
|
533
|
+
}
|
|
534
|
+
////////////////////////////////////////////////////////////////////////////
|
|
439
535
|
// Get device type info
|
|
440
536
|
////////////////////////////////////////////////////////////////////////////
|
|
441
537
|
async getDeviceTypeInfo(busName, deviceType) {
|
|
@@ -537,9 +633,8 @@ class DeviceManager {
|
|
|
537
633
|
let writeHexStr = this.toHex(writeBytes);
|
|
538
634
|
// Add prefix and postfix
|
|
539
635
|
writeHexStr = (action.w ? action.w : "") + writeHexStr + (action.wz ? action.wz : "");
|
|
540
|
-
//
|
|
541
|
-
const devBus =
|
|
542
|
-
const devAddr = deviceKey.split("_")[1];
|
|
636
|
+
// Parse the device key into bus and address components
|
|
637
|
+
const { bus: devBus, addr: devAddr } = (0, RaftDeviceStates_1.parseDeviceKey)(deviceKey);
|
|
543
638
|
// Send the action to the server
|
|
544
639
|
const cmd = "devman/cmdraw?bus=" + devBus + "&addr=" + devAddr + "&hexWr=" + writeHexStr;
|
|
545
640
|
console.log(`DeviceManager deviceKey ${deviceKey} action name ${action.n} value ${data} prefix ${action.w} sendAction ${cmd}`);
|
|
@@ -596,6 +691,57 @@ class DeviceManager {
|
|
|
596
691
|
return bytes;
|
|
597
692
|
}
|
|
598
693
|
////////////////////////////////////////////////////////////////////////////
|
|
694
|
+
// Helpers for device stats
|
|
695
|
+
////////////////////////////////////////////////////////////////////////////
|
|
696
|
+
createEmptyStats() {
|
|
697
|
+
return {
|
|
698
|
+
totalSamples: 0,
|
|
699
|
+
windowMs: this._statsWindowMs,
|
|
700
|
+
windowSamples: 0,
|
|
701
|
+
sampleRateHz: 0,
|
|
702
|
+
lastSampleTimeMs: null,
|
|
703
|
+
lastUpdateTimeMs: null,
|
|
704
|
+
windowEvents: []
|
|
705
|
+
};
|
|
706
|
+
}
|
|
707
|
+
getOrCreateDeviceStats(deviceKey) {
|
|
708
|
+
if (!this._deviceStats[deviceKey]) {
|
|
709
|
+
this._deviceStats[deviceKey] = this.createEmptyStats();
|
|
710
|
+
}
|
|
711
|
+
return this._deviceStats[deviceKey];
|
|
712
|
+
}
|
|
713
|
+
cloneDeviceStats(stats) {
|
|
714
|
+
return {
|
|
715
|
+
totalSamples: stats.totalSamples,
|
|
716
|
+
windowMs: stats.windowMs,
|
|
717
|
+
windowSamples: stats.windowSamples,
|
|
718
|
+
sampleRateHz: stats.sampleRateHz,
|
|
719
|
+
lastSampleTimeMs: stats.lastSampleTimeMs,
|
|
720
|
+
lastUpdateTimeMs: stats.lastUpdateTimeMs
|
|
721
|
+
};
|
|
722
|
+
}
|
|
723
|
+
updateDeviceStats(deviceKey, newSamples, nowMs) {
|
|
724
|
+
const stats = this.getOrCreateDeviceStats(deviceKey);
|
|
725
|
+
stats.lastUpdateTimeMs = nowMs;
|
|
726
|
+
if (newSamples > 0) {
|
|
727
|
+
stats.totalSamples += newSamples;
|
|
728
|
+
stats.lastSampleTimeMs = nowMs;
|
|
729
|
+
stats.windowEvents.push({ timeMs: nowMs, samples: newSamples });
|
|
730
|
+
}
|
|
731
|
+
const windowStartMs = nowMs - stats.windowMs;
|
|
732
|
+
while (stats.windowEvents.length > 0 && stats.windowEvents[0].timeMs < windowStartMs) {
|
|
733
|
+
stats.windowEvents.shift();
|
|
734
|
+
}
|
|
735
|
+
const windowSamples = stats.windowEvents.reduce((sum, entry) => sum + entry.samples, 0);
|
|
736
|
+
stats.windowSamples = windowSamples;
|
|
737
|
+
if (stats.windowEvents.length === 0) {
|
|
738
|
+
stats.sampleRateHz = 0;
|
|
739
|
+
return;
|
|
740
|
+
}
|
|
741
|
+
const actualWindowMs = Math.max(1, nowMs - stats.windowEvents[0].timeMs);
|
|
742
|
+
stats.sampleRateHz = (windowSamples * 1000) / actualWindowMs;
|
|
743
|
+
}
|
|
744
|
+
////////////////////////////////////////////////////////////////////////////
|
|
599
745
|
// Helpers for decoded data callbacks
|
|
600
746
|
////////////////////////////////////////////////////////////////////////////
|
|
601
747
|
snapshotAttrLengths(deviceAttrs, pollRespMetadata) {
|
|
@@ -604,8 +750,8 @@ class DeviceManager {
|
|
|
604
750
|
return lengths;
|
|
605
751
|
}
|
|
606
752
|
pollRespMetadata.a.forEach((attr) => {
|
|
607
|
-
var _a;
|
|
608
|
-
lengths[attr.n] = ((_a = deviceAttrs[attr.n]) === null || _a === void 0 ? void 0 : _a.values.length)
|
|
753
|
+
var _a, _b;
|
|
754
|
+
lengths[attr.n] = (_b = (_a = deviceAttrs[attr.n]) === null || _a === void 0 ? void 0 : _a.values.length) !== null && _b !== void 0 ? _b : 0;
|
|
609
755
|
});
|
|
610
756
|
return lengths;
|
|
611
757
|
}
|
|
@@ -616,11 +762,12 @@ class DeviceManager {
|
|
|
616
762
|
const attrValues = {};
|
|
617
763
|
let hasValues = false;
|
|
618
764
|
pollRespMetadata.a.forEach((attr) => {
|
|
765
|
+
var _a;
|
|
619
766
|
const attrState = deviceState.deviceAttributes[attr.n];
|
|
620
767
|
if (!attrState) {
|
|
621
768
|
return;
|
|
622
769
|
}
|
|
623
|
-
const prevLen = attrLengthsBefore[attr.n]
|
|
770
|
+
const prevLen = (_a = attrLengthsBefore[attr.n]) !== null && _a !== void 0 ? _a : 0;
|
|
624
771
|
if (attrState.values.length > prevLen) {
|
|
625
772
|
attrValues[attr.n] = attrState.values.slice(prevLen);
|
|
626
773
|
hasValues = hasValues || attrValues[attr.n].length > 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RaftDeviceManager.js","sourceRoot":"","sources":["../../src/RaftDeviceManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RaftDeviceManager.js","sourceRoot":"","sources":["../../src/RaftDeviceManager.ts"],"names":[],"mappings":"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"}
|