This commit is contained in:
legop3
2026-05-01 18:37:18 -04:00
parent 458199ad11
commit 7180d3352d
@@ -11,28 +11,25 @@ function sanitizeLogText(value) {
.replace(/\x1B\[[0-9;]*[A-Za-z]/g, ''); .replace(/\x1B\[[0-9;]*[A-Za-z]/g, '');
} }
function parsePayloadLine(line) { function parsePayloadFromLine(line) {
const raw = sanitizeLogText(line).trim(); const raw = sanitizeLogText(line).trim();
if (!raw) return null; if (!raw) return null;
const quotedMatch = raw.match(/<<< "(.*)"$/); const quotedMatch = raw.match(/<<< "(.*)"$/);
if (!quotedMatch) return null; if (!quotedMatch) return null;
const payload = quotedMatch[1]; const payload = quotedMatch[1];
if (!payload) return null; if (!payload) return null;
if (
// Ignore the duplicated multiline blob form and trust the clean one-message stream. payload.includes('\\r\\n') ||
if (payload.includes('\\r\\n') || payload.includes('\r') || payload.includes('\n')) { payload.includes('\\n') ||
payload.includes('\\r') ||
payload.includes('\r') ||
payload.includes('\n')
) {
return null; return null;
} }
if (payload === 'AngleInDegrees,DistInMM,Intensity,ErrorCodeHEX') return payload;
if (payload === 'AngleInDegrees,DistInMM,Intensity,ErrorCodeHEX') { if (/^ROTATION_SPEED,[0-9.]+$/.test(payload)) return payload;
return payload; if (/^\d+,\d+,\d+,[0-9A-Fa-f]+$/.test(payload)) return payload;
}
if (/^ROTATION_SPEED,[0-9.]+$/.test(payload)) {
return payload;
}
if (/^\d+,\d+,\d+,[0-9A-Fa-f]+$/.test(payload)) {
return payload;
}
return null; return null;
} }
@@ -215,7 +212,7 @@ function createLidarRuntime({ logger, host, port = 6053, key, logFile = '', shou
const lines = state[bufferKey].split(/\r?\n/); const lines = state[bufferKey].split(/\r?\n/);
state[bufferKey] = lines.pop() || ''; state[bufferKey] = lines.pop() || '';
for (const line of lines) { for (const line of lines) {
const payload = parsePayloadLine(line); const payload = parsePayloadFromLine(line);
handlePayload(payload); handlePayload(payload);
} }
} }