|
||
|
#41
|
||||
|
||||
|
Pues hombre, leer el manual de Tasker y/o consultar la ayuda de la aplicación es un buen punto de partida. Eso y el contenido del recopilatorio me han aportado el 99% de mis conocimientos sobre Tasker. El otro 1% es fruto de mi genialidad innata ... ¿o es al revés?
![]() ![]() Ahora en serio. Tú sabes bien que nadie nace enseñado y que el estudio lo es todo. Código:
VelocimetroON/OFF (12) Abortar Tarea Existente A1: Establecer variable [ Nombre:%novel A:- Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A2: Establecer variable [ Nombre:%gps A:10 Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A3: Si (if) [ %par1 ~ on ] A4: Obtener ubicación [ Origen:GPS Cuenta atrás (segundos):%gps Continuar tarea inmediatamente:Encendido Mantener Seguimiento:Encendido ] A5: Si (if) [ %TIMES-%LOCTMS < %gps ] A6: Establecer variable [ Nombre:%vel A:round(%LOCSPD*3.6) Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] A7: Establecer variable [ Nombre:%Velocidad A:%vel Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] Si (if) [ %Velocidad ~ %novel ] A8: Establecer variable [ Nombre:%pas A:1 Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A9: Establecer variable [ Nombre:%pas A:5 Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] Si (if) [ abs(%Velocidad-%vel) > 10 ] A10: Establecer variable [ Nombre:%Velocidad A:%Velocidad+%pas Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] Si (if) [ %Velocidad < %vel ] A11: Establecer variable [ Nombre:%Velocidad A:%Velocidad-%pas Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] Si (if) [ %Velocidad > %vel ] A12: Else A13: Establecer variable [ Nombre:%Velocidad A:%novel Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A14: Fin si (End if) A15: Esperar [ MS:200 Segundos:0 Minutos:0 Horas:0 Días:0 ] A16: Ir a acción [ Tipo:Número Acción Número:4 Etiqueta: ] A17: Else A18: Detener Ubicación [ Origen:GPS ] A19: Establecer variable [ Nombre:%Velocidad A:%novel Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A20: Fin si (End if) La tarea está diseñada para interrumpirse a sí misma en función del parámetro %par1 que se le pase. Con %par1=on se activa el GPS y se calcula la velocidad, y con %par1=off (o cualquier otra cosa) se desactiva el GPS y se deja de calcular. En A1 se asigna el símbolo que se usará para indicar que no se puede medir la velocidad. En A2 se asigna el tiempo de cuenta atrás para la obtención de datos por GPS. La parte A3-A16 (%par1=on) es la que hace todo el trabajo. La parte A17-A20 (%par1=off) es la que desactiva el GPS y no creo que requiera muchas aclaraciones. En A4 se activa el GPS y en A5 se comprueba si los datos obtenidos son más viejos que el tiempo de cuenta atrás (%gps=10). Si son viejos saltamos a A13 indicándolo en el valor de %Velocidad. En A15 hacemos una pequeña espera y en A16 repetidos el bucle de adquisición de datos. La parte "interesante" está entre A6 y A11, que se ejecuta siempre que obtenemos datos fiables del GPS. En A6 ponemos la velocidad actual en k/m y la guardamos en una variable local/temporal. En A7 asignamos el resultado anterior a %Velocidad si previamente no tenía valor. En A8 y A9 calculamos cómo tienen que ser los pasos (%pas) para hacer el ajuste gradual de la velocidad. Por defecto será 1 a no ser que la diferencia entre la velocidad anterior y la nueva sea superior a 10 en cuyo caso %pas=5. En A9 he usado la función matemática abs() que devuelve el valor absoluto de una operación. Eso hace que el resultado de la resta mida la diferencia relativa entre ambas velocidades sin importar si el resultado es positivo o negativo. Y para finalizar esta parte, en A10 y A11 se suma/resta el paso calculado anteriormente a %Velocidad dependiendo de las circunstancias. Creo que no se puede hacer más simple. ![]() Una cosa más. Esta tarea no soluciona el tema de los cortes de señal pero casi prefiero que haga lo que hace para tener indicación visual de que no se puede calcular la velocidad porque no se reciben datos. Cualquier solución a esa situación implica "engañar" al usuario retrasando esa indicación, pero si tienes mucho interés en el tema podemos mirar una forma de hacerlo.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
|
|
#42
|
||||
|
||||
|
Sencillamente me parece magistral. Creo entenderte bien cuando dices que es preferible "sacrificar" los posibles cortes de señal en favor de esta tarea para "no liarla". De la 8 a la 11... Uff, es lo que yo sacaria despues de mucho tiempo leyendo todo sobre Tasker (siempre he leido a saltos y buscando cosas determinadas) y practicando mucho. De la 8 a la 11 he tenido que darme un paseo, tio... Me dado hasta dolor de cabeza. Que sí, que se que mejor no se puede explicar, pero déjame leerlo mas veces
![]() Este fin de semana no uso el coche. Asi que me pondre a mirar lo que me has comentando de las prioridades y entender bien lo de las propiedades de las tareas, siempre lo he usado un poco a lo loco, vamos, probando. Y no es lo sensato. Ganas tengo ya de probar tu tarea en el coche. Por la ventana va muy bien, pero los vecinos ya me miran mal... Edito: Repasando tus "enseñanzas"... Inicio sesion Modo Coche. Tu tarea y varias acciones = problemas. Posible solución = tu tarea con %priority+1 y mis acciones en una tarea con -1. ¿Que te parece, maestro? Lo voy a probar ("Adelante, pequeño saltamontes")
Última edición por emiegna Día 12/05/18 a las 20:41:19. |
|
#43
|
||||
|
||||
|
Bueno, ya he estado observando bien la tarea, y he estado repasando tus indicaciones.
1. En Realizar tarea estaba equivocado. Como funciona correctamente, por ejemplo en el inicio de sesion de Modo Coche, es en primer lugar mi conjunto de acciones y luego un Realizar tarea (tu tarea) con prority-1. Y en otras tareas, igualmente. Va perfecto. No hay conflictos. 2. He observado que ya no hay cortes del GPS. Creo que es debido a que en la acción Obtener ubicación tenemos marcada la casilla Continuar tarea inmediatamente. En las primeras tareas que se probaron tampoco habia cortes y también teníamos activada la casilla. En cuanto se ha dejado de marcar han surgido los cortes ocasionales. 3. La tarea con velocidad gradual funciona perfectamente. Tan solo que cuando se acelera rápido o se frena mas o menos bruscamente tarda un poco en llegar a la velocidad real. Por ejemplo, voy a 15 y me pongo a 0 en 2 o 3 segundos. El velocimetro entonces marca 10 (aproximadamente) y va reduciendo el valor hasta llegar a 0 cuando llevo unos segundos realmente a 0. Quizas la clave esté en la accion 9 (%pass 5). Tengo que probar. También es cierto que me he fijado en el velocimetro que tiene Waze o bien el velocimetro digital del coche de mi mujer y no lo hacen gradualmente, sino a saltos. Quizás por algo evitan los pasos de forma gradual, ¿no? |
|
#44
|
||||
|
||||
|
Tan solo que cuando se acelera rápido o se frena mas o menos bruscamente tarda un poco en llegar a la velocidad real. Por ejemplo, voy a 15 y me pongo a 0 en 2 o 3 segundos. El velocimetro entonces marca 10 (aproximadamente) y va reduciendo el valor hasta llegar a 0 cuando llevo unos segundos realmente a 0.
![]() Por todo ello es habitual que exista cierta demora en el cálculo de la velocidad, demora que típicamente puede estar entre 1 y 2 segundos. Yendo en coche puedes reducir la velocidad real desde 15 a 0 en dos segundos, pero el GPS normalmente no va a mostrar la reducción progresiva. O bien lo hacen en dos saltos como Waze, o bien usan trucos adicionales de programación -como ha hecho Willy- para acabar mostrando una variación más progresiva pero que es algo simulado que no se basa en mediciones reales intermedias. En todo caso, mostrar una variación progresiva no va a evitar la demora, e incluso puede que la incremente levemente la demora, dependiendo de la programación. Emiegna, me parece que puedes darte por contento con la tarea obtenida, especialmente porque ya no ves cortes en la señal GPS y porque también parece que has arreglado todos los problemas de prioridades. Quizá todavía se pueda mejorar alguna cosa adicional, pero creo que las posibles mejoras solo podrían estar relacionadas con la interface (la escena y la forma de mostrar los datos). Sospecho que el dato de la velocidad ya no vas a mejorarse de forma significativa. Por lo que dices funciona bastante bien y no es peor que Waze u otros sistemas digitales basados en GPS. Felicitaciones, campeón. ![]() Para terminar, te hago una petición. Edita el primer post y en el título... quita los signos de interrogación. "Crear velocímetro sin root" ya no debe ser una pregunta sino una afirmación.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
|
#45
|
||||
|
||||
|
Pues sí, Caravantes... Tienes toda la razón. Ya con la programación de WillyWeb se consigue lo mismo que con Waze y velocímetros digitales y encima visualmente parece aun más real que aquellos. Lo del segundo del GPS es el límite, y ahi no se puede hacer nada. Por eso Waze funciona asi. Normal.
Estoy mas que satisfecho. Y desde luego he aprendido bastante con WillyWeb. Es increible. Por mi está más que solucionado. No esperaba tanto. Gracias WillyWeb, y a ti Caravantes
|
|
#46
|
||||
|
||||
![]() ![]() ![]() Código:
A9: Establecer variable [ Nombre:%pas A:floor(abs(%Velocidad-%vel)/2) Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] Si (if) [ abs(%Velocidad-%vel) > 3 ] Supongamos que das un frenazo y pasas de... 30 a 0 ... 15 ... 8 ... 4 ... 2 ... 1 ... 0 ... ajustado en poco más de un segundo. 50 a 0 ... 25 ... 13 ... 7 ... 4 ... 2 ... 1 ... 0 ... ajustado en poco menos de segundo y medio. 120 a 80 ... 100 ... 90 ... 85 ... 83 ... 82 ... 81 ... 80 ... ajustado en poco menos de segundo y medio. Acelerando sería lo mismo ... si es que puedes acelerar a ese ritmo. ![]() Y me parece que todavía quedan un par de cartuchos.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#47
|
||||
|
||||
|
La tarea ha terminado siendo "Velocímetro con ajuste gradual".
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#48
|
||||
|
||||
|
Sustituyo la accion 9. Una duda, ¿no es mejor round en lugar de floor? Por el tema del redondeo que me explicaste.
Cambio el título del post. Es mas descriptivo con relación a lo que finalmente se ha llegado. Te cuento mañana con la acción 9 sustituida. Al final te vas a tener que poner en contacto con Waze (Google). Yo te represento... |
|
#49
|
||||
|
||||
![]() Con round el valor de %pas valdría uno más en ciertos casos y el ajuste no se comportaría siempre igual. De todas formas tengo otra solución que ahorra una acción. Prueba eso y si funciona a tu gusto probamos el penúltimo cartucho.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#50
|
||||
|
||||
|
Vale
![]() Pero que te quede claro que tal como está ya es una obra de arte Te cuento mañana. Edito: Por cierto, quería preguntarte... Con el valor 3 de abs(%Velocidad-%vel) > 3 se podría jugar? Es decir, si pongo mayor valor (5), los pasos de ajuste a mas velocidad aun serán mas grandes? Última edición por emiegna Día 14/05/18 a las 19:46:28. |
|
#51
|
||||
|
||||
|
No. Ese 3 determinar el número de pasos finales que se ajustarán de uno en uno. El cartucho que te he comentado antes va en esa dirección. Si puedes/quieres prescindir de ese ajuste "fino" la operación se puede hacer de otra manera y ahorrar una acción.
Y los pasos ya son razonablemente grandes (la mitad de la diferencia de velocidad). Ten en cuenta que con un frenazo de 50 a 0 el primer paso es de 25... ¿quieres más?
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) Última edición por WillyWeb Día 14/05/18 a las 22:50:32. |
|
#52
|
||||
|
||||
|
Ok. Entiendo ahora lo del 3.
WillyWeb. A falta de la prueba de mañana yo ya lo veo literalmente perfecto. ¿Tu que harias/decidirias? |
|
#53
|
||||
|
||||
|
Prueba esa versión y mañana te pongo la otra. Se ahorra una acción y el ajuste es un poco más rápido a costa de reducir ligeramente ese efecto tan gradual. Luego tú decides con cuál te quedas.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) Última edición por WillyWeb Día 14/05/18 a las 23:06:27. |
|
#54
|
||||
|
||||
|
Está perfecto, WillyWeb. Ya lo he probado. Sigue el efecto gradual, pero es mas rápido (saltos) en frenazos y acelerones. Aunque algo me dice que tu te decantarias por quitar una accion a costa de perder un poco ese efecto gradual y lograr el ajuste antes. Este último caso sería un punto intermedio entre el "efecto Waze" y "tu efecto gradual"... Asi pensado sería perfecto, eso si.
|
|
#55
|
||||
|
||||
![]() Con la versión actual... Código:
Establecer variable [ Nombre:%pas A:1 Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] Establecer variable [ Nombre:%pas A:floor(abs(%Velocidad-%vel)/2) Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] Si (if) [ abs(%Velocidad-%vel) > 3 ] De 30 a 0 ... 15 ... 8 ... 4 ... 2 ... 1 ... 0 De 50 a 0 ... 25 ... 13 ... 7 ... 4 ... 2 ... 1 ... 0 De 120 a 80 ... 100 ... 90 ... 85 ... 83 ... 82 ... 81 ... 80 Código:
Establecer variable [ Nombre:%pas A:ceil(abs(%Velocidad-%vel)/2) Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] De 30 a 0 ... 15 ... 7 ... 3 ... 1 ... 0 De 50 a 0 ... 25 ... 12 ... 6 ... 3 ... 1 ... 0 De 120 a 80 ... 100 ... 90 ... 85 ... 82 ... 81 ... 80
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#56
|
||||
|
||||
|
Uff, a esto le llamo rizar el rizo... Más no se puede. Efecto gradual y llegar, a la velocidad real antes que en la anterior tarea. Aqui, por ejemplo, tras frenar y quedar parado totalmente llegará a 0 antes, sin perder efecto gradual. Es mas perfecto aun, tio!! A ver si lo puedo probar esta tarde. Ganas tengo ya
Y encima una acción menos, con lo que entiendo la tarea será más rapida. A ver si puedo probarla esta tarde y te cuento.Eres un genio. Es de recopilatorio. Ponlo tu, que es tuyo
|
|
#57
|
||||
|
||||
|
Cuando quites la acción que te sobra recuerda lo que te comenté en el post #41 sobre poner una etiqueta a la acción de "Obtener ubicación" en A4 y saltar a esa etiqueta desde "Ir a acción" en A16. Si no lo haces el bucle ya no será entra los puntos que debe y la tarea dejará de funcionar.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#58
|
||||
|
||||
|
Probado. Me quedo con esta, sin duda. Es el equilibrio perfecto. Que vas despacio, gradual-normal. Que das un aceleron o un frenazo, alcanzas antes la velocidad real a saltos. Es perfecto, WillyWeb. Paténtalo ya!!
![]() Solo una aclaración para quien quiera probarlo... Al quitar la accion de %pas 1 las etiquetas son de la 15 a la 4, claro está. Por si alguien se despista. Está genial!! Y encima ahora que he descubierto (a la vejez) Auto Tools, he puesto el Modo Coche en modo inmersivo y queda más "auténtico" |
|
#59
|
||||
|
||||
|
Ya lo suponía.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
|
|
#60
|
||||
|
||||
|
|
![]() |
Estás aquí
|
||||||
|
||||||