From 3035013744ea5044493e027493e74de976d55c70 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Thu, 1 Aug 2024 20:05:13 +0200 Subject: [PATCH] Update RDS Spy message --- server/datahandler.js | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/server/datahandler.js b/server/datahandler.js index 337bc9f..11c6a69 100644 --- a/server/datahandler.js +++ b/server/datahandler.js @@ -352,9 +352,31 @@ function handleData(wss, receivedData, rdsWss) { modifiedData += errorsNew.toString(16).padStart(2, '0'); } - rdsWss.clients.forEach((client) => { // Send to /rds endpoint via WebSocket - client.send(modifiedData); - }); + rdsWss.clients.forEach((client) => { + let dataString = modifiedData.toString(); + let lastTwoChars = dataString.slice(-2); + let lastByteValue = parseInt(lastTwoChars, 16); + + let truncatedString = dataString.slice(0, -2); + + if ((lastByteValue & 0x03) !== 0) { + truncatedString = truncatedString.slice(0, 4) + '----' + truncatedString.slice(8); + } + + if ((lastByteValue & 0x30) !== 0) { + truncatedString = truncatedString.slice(0, 8) + '----' + truncatedString.slice(12); + } + + if ((lastByteValue & 0x0C) !== 0) { + truncatedString = truncatedString.slice(0, 12) + '----'; + } + + let newDataString = "G:\r\n" + truncatedString + "\r\n\r\n"; + + let finalBuffer = Buffer.from(newDataString, 'utf-8'); + + client.send(finalBuffer); + }); rdsparser.parse_string(rds, modifiedData); legacyRdsPiBuffer = null;