Es que es muy simple solucion abner, vos estas testeando y escribiendo en cada valor del puerto.
Ahora pensa como harias para enviar todo?
Por ahi seria mas simple hacer un string asi (es decir comenzar con esta string):
texto[] ="falla_x,falla_y,falla_z"
Luego al momento de testear cambiar la x, la y y la z en ese orden, y en caso de querer terminar el string antes, deberias cambiar la coma por 0x00 y listo, vas a tener que usar una variable para saber cual ( x,y o z) estas modificando.
Suponete solo falla2. testeas el primer valor e indice es 0, no pasa nada, pasas al segundo valor e indice 0 cargas el numero, pasas a indice 7, testeas el tercer valor no pasa nada.
en 7 pones un 0x00, quedando asi:
texto[] ="falla_2",0x00,"falla_y,falla_z"
entonces el texto queda como solo falla_2
Ahora si tenemos falla 1 y falla 3
volvemos a nuestro string original. probamos el 1 y dio resultado, pasa el indice a 7. El 2 no ocurre nada por lo tanto no aumenta el indice, el 3 si, cambia el valor y aumenta el indice a 14. qeudando:
texto[] ="falla_1,falla_3",0x00,"falla_z"
entonces tenes salida de 2 nomas. En caso de 3 es obvio. Por si no te diste cuenta cual es el lugar de x,y y z son:
numero: indice + 6
Al avanzar hago indice += 7
y luego de avanzar si necesito cerrar uso el indice que quedo ( el multiplo de 7)