From e14b3f8d11d018e3844ad14d4bbb9f96a8b63497 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Wed, 25 Feb 2026 10:44:37 +0100 Subject: [PATCH] some changes with the rds --- server/datahandler.js | 19 +++++++++++-------- server/rds.js | 8 ++++---- server/server_config.js | 6 ++---- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/server/datahandler.js b/server/datahandler.js index c1b55bc..819283d 100644 --- a/server/datahandler.js +++ b/server/datahandler.js @@ -185,18 +185,21 @@ function handleData(wss, receivedData, rdsWss) { modifiedData += errorsNew.toString(16).padStart(2, '0'); } + const a = modifiedData.slice(0, 4); + const b = modifiedData.slice(4, 8); + const c = modifiedData.slice(8, 12); + const d = modifiedData.slice(12, 16); + const errors = parseInt(modifiedData.slice(-2), 16); rdsWss.clients.forEach((client) => { - const errors = parseInt(modifiedData.slice(-2), 16); - let data = (((errors & 0xC0) == 0) ? modifiedData.slice(0, 4) : '----'); - data += (((errors & 0x30) == 0) ? modifiedData.slice(4, 8) : '----'); - data += (((errors & 0x0C) == 0) ? modifiedData.slice(8, 12) : '----'); - data += (((errors & 0x03) == 0) ? modifiedData.slice(12, 16) : '----'); + let data = ((((errors >> 6) & 3) < 3) ? a : '----'); + data += ((((errors >> 4) & 3) < 3) ? b : '----'); + data += ((((errors >> 2) & 3) < 3) ? c : '----'); + data += (((errors & 3) < 3) ? d : '----'); - const newDataString = "G:\r\n" + data + "\r\n\r\n"; - client.send(newDataString); + client.send("G:\r\n" + data + "\r\n\r\n"); }); - rdsdec.decodeGroup(parseInt(modifiedData.slice(0, 4), 16), parseInt(modifiedData.slice(4, 8), 16), parseInt(modifiedData.slice(8, 12), 16), parseInt(modifiedData.slice(12, 16), 16)); + rdsdec.decodeGroup(parseInt(a, 16), parseInt(b, 16), parseInt(c, 16), parseInt(d, 16), errors); legacyRdsPiBuffer = null; break; } diff --git a/server/rds.js b/server/rds.js index 70e2657..0e86c75 100644 --- a/server/rds.js +++ b/server/rds.js @@ -36,9 +36,9 @@ class RDSDecoder { } decodeGroup(blockA, blockB, blockC, blockD, error) { - const a_error = (error & 0xC0) >> 6; - const b_error = (error & 0x30) >> 4; - const c_error = (error & 0xc) >> 2; + const a_error = (error >> 6) & 3; + const b_error = (error >> 4) & 3; + const c_error = (error >> 2) & 3; const d_error = error & 3; if(this.last_pi_error > a_error) { @@ -46,7 +46,7 @@ class RDSDecoder { this.last_pi_error = a_error; } - if(b_error != 0) return; // B chooses what group this is, if this has errors, we are screwed + if(b_error !== 0) return; // B chooses what group this is, if this has errors, we are screwed const group = (blockB >> 12) & 0xF; const version = (blockB >> 11) & 0x1; diff --git a/server/server_config.js b/server/server_config.js index 231044e..7a8f0e2 100644 --- a/server/server_config.js +++ b/server/server_config.js @@ -1,7 +1,7 @@ /* Libraries / Imports */ const fs = require('fs'); const path = require('path'); -const { logDebug, logError, logInfo, logWarn } = require('./console'); +const { logError, logInfo } = require('./console'); let configName = 'config'; @@ -135,9 +135,7 @@ function addMissingFields(target, source) { if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key])) { if (!target[key]) target[key] = {}; // Create missing object addMissingFields(target[key], source[key]); // Recursively add missing fields - } else { - if (target[key] === undefined) target[key] = source[key]; // Add missing fields only - } + } else if(target[key] === undefined) target[key] = source[key]; // Add missing fields only }); }