¿Cómo puedo enviar múltiples valores desde Processing a Arduino a través de la biblioteca Serial?

Hice una prueba básica enviando un solo intvalor a Arduino desde Processing a través de la biblioteca Processing Serial y todo está bien. Me gustaría enviar múltiples valores int, pero no estoy del todo seguro de cuál es la mejor manera de hacerlo.

Según los documentos Serial.write

escribe bytes, caracteres, enteros, bytes[], cadenas en el puerto serie

entonces una opción sería enviar una cadena que pueda dividir y obtener los valores:

arduino.write(intValue1+","+intValue2);

pero no estoy seguro de cómo leería la conversión de datos cuando la reciba en Arduino.

Otra cosa que me viene a la mente es usar a byte[]ya que estoy enviando varios valores, pero no he trabajado mucho con bytes, por lo que cualquier consejo sobre cómo empaquetar/desempaquetar dos en un byte[]y viceversa sería muy útil.

¡Gracias!

Respuestas (1)

Construya una matriz de bytes que contenga sus datos. Recuerde que cada byte solo puede llegar hasta 255, por lo que si su int es mayor que eso, deberá usar varios bytes por int.

Luego en el arduino

while (Serial.available() > 0) {
  Serial.read() //now do something with this byte
}

Esto se repetirá hasta que no haya más bytes para leer, y cada vez leerá un byte.

eso es lo que hice, así que para 4 valores tenía algo comowhile (Serial.available() >= 4) { for(int i = 0 ; i < 4; i++) data[i] = Serial.read();//etc. }