Controlador V1.0 !
Tolera etapa de emergencia mediante fichero.
Testado entre PC’s.
Ya en GMail :P
Tiene un error para el que he llegado a una conclusión:
El programa, en bucle infinito, recoge del puerto de serie el vector de transiciones. Si el PIC envia algo, pues OK. Pero sino cojerá BASURA, es decir, cualquier cosa (por ejemplo: 0 -34 128 124), y se irá, en el caso de que estemos en el caso de etapa de emergencia, a la etapa de emergencia. Las soluciones pueden ser varias:
-Redibujar la red de Petri correctamente, con etapa de emergencia, y sacar la nueva matriz C.
-Implementar algún código para su detección, siendo la única posibilidad la que se me ocurre la de incluir un byte más en el vector de transiciones para identificación de un vector válido, por ejemplo: 255 1 0 0 0, siendo 255 el byte especial (escrito en decimal), siendo esta solución muy poco válida, ya que puede fallar (puede que se reciba un vector basura igual).
-Que el PIC envie siempre el estado de los sensores.
Las dos primeras opciones son malas. Así que se puede implementar la menos mala o desistir. Al menos yo no consigo sacar la red de petri correcta.
La última opción se podría mirar, no creo que el PIC se quemase ni nada de eso. Es más, creo que es totalmente obligatorio, ya que de lo contrario tendríamos datos indeseados en el cable de serie, que podrían ser tratados como transiciones válidas (en el caso de que todos los números recogidos sean positivos, por ejemplo) y obtener una máquina bastante defectuosa.
Pues eso, que el PIC tiene que escribir el estado de los sensores en las patas de envío hacia el PC constantemente.
Dani
Comentarios recientes