
Cita: Originalmente Escrito por
maid450
[Pseudo-Tutorial] Autómata de estados

Estoy fascinado por el planteamiento, interesantísimo. Maid, muchísimas gracias por traerlo y por tus excelentes explicaciones.
El gráfico se ve perfecto. Y también es interesante -lo recomiendo- echar un vistazo al gráfico del foro oficial, enlazado por Maid:
https://groups.google.com/forum/#!ms...U/ebtBX8gc2IUJ
Solo veo un par de cosas mejorables. La primera es el título del hilo. La maryoría de los taskeros no estamos en la jerga informática y el término "autómata" nos desorienta bastante; suena a robótica o similar. Si utilizamos un buscador para encontrar módos de organizar las distintas situaciones diarias y encontramos
[Pseudo-Tutorial] Autómata de estados ... seguramente no haremos clic ahí. Bueno, es el menor de los problemas porque este tema -como bien has dicho- tampoco está al alcance de un taskero novato, y a los otros ya los reconduciremos desde el foro. Tampoco es que haya un título muy evidente para este tema.
La otra cosa que me parece mejorable es el nombre de las variables utilizadas. Creo que has cogido los mismos nombres que el hilo original que has enlazado, con palabras inglesas. Julio García Muñoz, con su PlugIn WhatsTasker nos ha enseñado que es una buena idea utilizar variables que tengan un prefijo común: %wt_message, %wt_senderid, %wt_type, etc. Este planteamiento es todavía más importante cuando se trata de variables globales: cuando consultamos la lista de variables globales, las del mismo asunto aparecen agrupadas y se las puede localilzar fácilmente. Por ello creo que sería preferible añadir a las variables un prefijo común. Por otro lado, las variables internas de Tasker tienen todas sus letras en mayúsculas, y me parece buena idea utilizar mezcla de mayúsculas y minúsculas para las variables globales de usuario; de ese modo se distinguen fácilmente las unas y las otras. Mi propuesta sería algo como lo siguiente:
- %AutomEstado (%STATE)
- %AutomAnteriorEstado (%LASTSTATE)
- %AutomNuevoEstado (%NEWSTATE)
- %AutomBloqueado (%STATELOCK)
- %AutomComienzo (%TSTART)
Vamos a tener que leer tu post varias veces para terminar de entender los detalles. Por otro lado, no estoy muy seguro de querer que todos mis perfiles de situación sean excuyentes. Ahora mismo tengo varios perfiles que se solapan. En algunos casos he evitado ese solapamiento añadiendo contextos de tipo PACIVE !~ *Vehiculo*, pero en otos casos permito el solapamiento, cosa que no ocurrirá si adopto este sistema de autómata.
Si lo he entendido bien, para cada situación (casa, coche, trabajo) hay que hacer dos perfiles:
A - Un primer perfil que sería similar al "perfil clasico" en cuanto a contextos (antena cercana, conectado a wifi, bluetooth, etc) pero cuyas acciones solo modifican variables generales como %NEWSTATE.
B - Un segundo perfil cuyo contexto sería la variable %STATE, pero que sería igual al perfil clásico en cuanto a tareas (acciones concretas que queremos ejecutar al entrar o salir de esa situación).
Y luego hay un perfil general de control (el
Switch State que has exportado completo) para controlar cualquier cambio de situación, que es el que también enlaza los perfiles de tipo A con los de tipo B.

Cita: Originalmente Escrito por
ruco1980
En mi caso yo trabajo "en la calle" y no puedo establecer algo fijo

Supongo que te podrías hacer un perfil de trabajo atendiendo a horarios y días, o bien por la programación del calendario, como ha explicado Maid.