Use bash para recibir entrada en serie, luego haga algunos cálculos con dicha entrada y luego envíela al puerto serie virtual para que otra aplicación la lea

Use bash para recibir entrada en serie, luego haga algunos cálculos con dicha entrada y luego envíela al puerto serie virtual para que otra aplicación la lea

Tengo un arduino que me envía algunos números a través del serial @9600 baudios. Dos valores separados por una coma se envían aproximadamente cada 500 ms. cat /dev/ttyACM0se ve así: 10.5,20.3 con números que van del -10 al 100. Tengo una aplicación que recibe esta información y la coloca en un gráfico para visualizarla. Mi problema es que la aplicación en cuestión carece de la capacidad de hacer algún tipo de cálculo con los valores dados, por lo que estoy atascado con lo que el arduino puede enviar para graficar.

Necesito tomar los números y "condicionarlos", por así decirlo. Mejor poner el pseudocódigo a continuación:

read value1 //values parsed from serial using comma as a seperator
read value2 //I have no idea how to do that but I know its doable lol

var kwh = 0;
var lastReadTime = systemTimeMillis();

Loop {
var addKwh = (value1 + value2) * 120 * (systemTimeMillis() - lastReadTime)/1000/60/60/1000
kwh = kwh + addKwh
lastReadTime = systemTimeMillis();
echo $value1 + "," + $value2 + "," + $kwh > virtualSerialPortForOtherApplicationToRead
} 

Ahora, sé lo que estás pensando, ¿por qué no hacer el "condicionamiento" en el arduino? Bueno, necesito poder restablecer este valor al final del día, de ahí la necesidad de tiempo del sistema, lo cual es una molestia para pasar de nuevo a arduino y hacer que sea confiable.

Entonces, mi idea es crear un script bash que lea los datos entrantes del flujo serie arduino y los "condicione" según sea necesario y luego envíe los datos condicionados a mi otra aplicación a través de un puerto serie ficticio. No tengo ni idea de cómo hacer la parte del puerto serie virtual de todo este asunto. Y mi conocimiento de bash también es limitado, por lo que realmente aprecio los ejemplos. Supongo que tampoco tengo idea de si algo de esto es posible, pero espero encontrar una solución.

Otra razón para bash es que también podré enviar fácilmente los valores condicionados a un csv para mi propio uso.

¡Gracias de antemano!

información relacionada