Tengo un kit Arduino y una configuración de API webserial para recibir los datos en un div html con la identificación del objetivo.
En este momento, está registrando todos los datos en una sola secuencia (hay algunos diales e interruptores en el Arduino).
Los datos se ven así...
RADI 61 RADI 62 RADI 63 RADI 64 VIENTO 1 VIENTO 0 VIENTO 1
... RADI es un valor de marcación y WIND es un interruptor de encendido/apagado.
¿Hay alguna manera de separar esta información en fragmentos RADI y WIND... idealmente en cuadros de texto HTML separados para poder manipular esos datos?
Cualquier ayuda sería apreciada
Aquí está mi código javascript actual...
document.getElementById('connectButton').addEventListener('click', () => { if (navigator.serial) { connectSerial(); } else { alert('Web Serial API not supported.'); } }); async function connectSerial() { const log = document.getElementById('target'); try { const port = await navigator.serial.requestPort(); await port.open({ baudRate: 9600 }); const decoder = new TextDecoderStream(); port.readable.pipeTo(decoder.writable); const inputStream = decoder.readable; const reader = inputStream.getReader(); while (true) { const { value, done } = await reader.read(); if (value) { log.textContent += value + '\n'; } if (done) { console.log('[readLoop] DONE', done); reader.releaseLock(); break; } } } catch (error) { log.innerHTML = error; } }Suponiendo que tiene un par de cuadros de texto:
<input id='textbox1'></input> <input id='textbox2'></input>Puede actualizar sus referencias de registro a lo siguiente:
const log1 = document.getElementById('#textbox1'); const log2 = document.getElementById('#textbox2');Luego en tu bucle:
if (value) { let parse = String(value).split(' '); if(parse[0] ?? '' == 'WIND') log1.value = parse[1]; if(parse[0] ?? '' == 'RADI') log2.value = parse[1]; }