vamos a ver, me explicaré un poco mejor:
Si activo msg1, se guarda una cadena total "RER1AB". "comprobacion" guarda "RE", "rele" guarda "R1" y "abrele" guarda "AB". Después lo que hago es comparar las variables "comprobacion", "rele" y "abrele" con "reles", "rele1" y "abrir" que son constantes y que contienen los valores con los que deben coincidir. Esto me servirá en un futuro (cuando tenga un módem gsm) para activar o desactivar unas salidas de relé que quiero controlar desde un móvil, mandando un sms. Mientras no tenga el módem, utilizo estas variables para ver si la cosa más o menos funciona, cuando por fin tenga el módem estas variables las sustituiré como ya te dije, por un serin o serin2 como me has recomendado.
Bueno, continuo con la explicación. Si comparo "comprobacion" con "reles" y coinciden, quiere decir que le ha llegado la instrucción correspondiente a los relés, y por tanto pasa a la siguiente comparación para ver a que relé nos referimos (si no coinciden, nos dará una señal de error con el led de alarma). Si coinciden "rele" con "rele1", se tratará del relé número 1 el que queremos activar o desactivar ( si no coinciden, saltaremos a la etiqueta correspondiente al siguiente relé, hasta que no nos queden más relés y por tanto nos lleve a la etiqueta "error"). Pasamos a la siguiente comparación, si "abrele" es igual a "abrir" entonces abriremos el relé (o en el caso simplificado, que es el que estoy utilizando, enciendo el LED "oute1"), en caso contrario, lo cerraremos (o apagamos el LED).
msg1 equivale a la cadena RER1AB, por tanto encenderá el LED oute1.
msg2 equivale a la cadena RER1CE, por tanto, como los dos últimos caracteres son distintos a AB, se apagará el LED oute1.
msg3 y msg4 hacen exactamente lo mismo, pero sobre el LED oute2. Sus cadenas serían RER2AB y RER2CE respectivamente.
msg5 equivale a la cadena RER7AB, que dará error ya que no tenemos el relé R7, por tanto se activará el LED de alarma.
Si le metiera por ejemplo la cadena XER1AB, nos activaría la alarma ya que la primera comparación no se cumpliría.
Espero haberme explicado más o menos bien
. Por cierto, es posible que me esté fallando la comparación con el "for"?. Veo que tú me has puesto un ejemplo con el "for", pero sin un "if" que condicione el caso de que coincidan o no las cadenas. Quizas me falte a mi lo de "
", que al parecer no se lo puse al comparar ni a la variable ni a la constante con la que comparo. Tengo que probarlo, lo malo es que hasta el lunes no puedo hacerlo... . Ya te contaré, navaismo.
Un Saludo.