alohl669
25/05/13, 01:25:16
Bueno, leyendo y aprendiendo de los tutoriales de variables me fije en una idea de lo mas interesante que decidí llevar a cabo por mi cuenta y riesgo. El caso es que muy poquito a poco ha ido tomando forma y, por muy tonta que parece es de las que mas lineas me esta ocupando xD.
La cosa consiste en que una vez apagado el despertador, el móvil, en una frase te da los buenos días dándote un par de datos para comenzar el día. Parece una chorrada, pero solo el hecho de leer la hora en lenguaje coloquial ya tiene su miga.
Voy a dejar este hilo como principal de la idea e iré dejando aquí las soluciones y las lineas que ya tengo escritas, para ir ampliando cosas concretas las publicaré y preguntaré aparte pues por separado también tienen su utilidad(eso no quita que las siga recopilando aquí después).
Para ello tengo dos perfiles, pero ambos son idénticos salvo por la diferencia de que el segundo se fija en mi calendario laboral para no tener que usar despertador... así que por ahora(y dado que el segundo no acaba de convencerme del todo) voy a ir construyendo solo sobre el primero que es sobre el que se sustenta todo.
Voy a tratar de dar un aspecto claro. Las aclaraciones las pondré entre paréntesis y si algo no lleva comillas y las pongo lo indicaré.
[PERFIL]
Modo Noche Trabajo
[CONTEXTO]
Cualquier aplicación de despertador que uséis
[Tarea de Entrada]
Durmiendo
[Tarea de Salida]
Despertar
------------------------------------------
-------------Durmiendo-------------
------------------------------------------
Establecer variable %Durmiendo Valor SI (esta Variable la tengo para evitar desastres con otros perfiles, Aunque por ahora no la usa ningún otro, me gusta anticiparme)
Modo Silencioso Encendido (se encuentra en ajustes de audio)
Establecer variable %Silencio Valor SI (esta Variable la tengo para evitar desastres con otros perfiles, así evito silenciarlo dos veces si otro perfil lo requiere)
Realizar Tarea Contabilizar Tiempo Comienzo (esta es una tarea de la que hablaremos mas tarde)
------------------------------------------
------------------------------------------
-------------Despertar----------------
------------------------------------------
Realizar tarea Restablecer (se trata de una tarea que uso cada vez que enciendo el móvil y salgo de modos muy específicos, algo así como una puesta a punto)
IF %Encasa ~ SI
- IF %WIFII ~ *WLAN_XXX* ("si variable del sistema, información de wifi, contiene la SSID de mi Red)
- - Realizar tarea Dar Los Buenos Dias (esta es una de las importantes que vamos a crear)
- ELSE
- - Pop-Up (configurar al gusto)
- END IF
ELSE
- Pop-Up (configurar al gusto)
END IF
Ok, la idea de esta tarea es la siguiente, al ser una tarea de salida lo principal es Restablecer y dejar limpio el teléfono, por eso llama a una tarea externa que se encargará de ello(dejando el volumen, gps, wifi, etc a nuestro gusto. Recomiendo que cada uno use la suya propia, pero si alguien tiene dudas puedo dejarla escrita).
Después, el resto de la tarea esta diseñado para atender 3 circunstancias: duermo en mi casa; en la casa de alguien conocido o en algún lugar(que pueda ser vacaciones, festival de música etc)
La variable %Encasa, es una variable propia que he creado, esta variable queda activa cuando el móvil esta conectado a una red wifi cualquiera, por lo que doy por hecho que todas las casas que conozco tienen wifi y que ademas lo comparten conmigo, y como no voy a dormir en el trabajo no me complico mas.
Lo gordo e importante en este caso esta cuando duermo en mi propia casa, pues en el resto de circunstancias le pido que me deje un pop-up para que nadie ajeno se despierte o me mire raro al escuchar el móvil xD. Por eso indico IF %WIFII ~ *WLAN_XXX* (PD la variable %WIFII contiene muchísima información, de ahí lo de los asteriscos.)
------------------------------------------
------------------------------------------
-------Dar Los Buenos Dias--------
------------------------------------------
Realizar Tarea Establecer Hora Escrita
Realizar Tarea Contabilizar Tiempo Final
Establecer Variable %Dormilon Valor " " (nada de comillas, se trata de un espacio para que no lea NADA)
Establecer Variable %Dormilon Valor vago de mierda IF %TIMEfinal>9.00 (podría sustituirse por dormilón o por algo menos Soez)
Esperar 0,1,0, 0 (comando Tarea->Wait-> 1 segundo)
Decir Buenos días %Dormilon. %AMPM, default:default (mensaje hablado que depende de si has dormido mas de 9 horas y de la hora en lenguaje coloquial en ese momento y con el motor TTS predeterminado)(el resultado, si duermes 7 horas hasta las 6.45 de la mañana seria algo así como "Buenos días . Son las 7 menos cuarto de la mañana")
Vale, aquí nos encontramos con el corazón del perfil. Básicamente esperamos que de esta frase salga todo lo necesario. Por el momento solo te da 2 datos, la hora y si has dormido mas de 9 horas. Lo que intentaremos con el tiempo es que ademas nos diga el tiempo y que tareas hay programadas en el calendario(festivos, cumpleaños, libranzas etc)
------------------------------------------
------------------------------------------
----Establecer Hora Escrita------
------------------------------------------
establecer variable %hora, valor %TIME
Seccion de variable %hora desde 1, longitud 2 almacenar en %hora1
Seccion de variable %hora desde 4, longitud 2 almacenar en %hora2
If %hora2>30
- establecer variable %hm11 valor %hora1+1(calcular)
- establecer variable %hm12 valor %hora2-30(calcular)
- establecer variable %hm22 valor 30-%hm12(calcular)
- establecer variable %hm22 valor cuarto If %hora2=45
- establecer variable %hm10 valor %hm11
- establecer variable %hm10 valor %hm11-12 if %hm11>12(calcular)
- establecer variable %horaescrita valor Son las %hm10 menos %hm22
- establecer variable %horaescrita valor Son la una menos %hm22 if %hm10=01
Else if %hora2=30
- establecer variable %hm11 valor %hora1
- establecer variable %hm11 valor %hora1-12 if %hora1>12(calcular)
- establecer variable %hm11 valor 12 if %hora1=00
- establecer variable %horaescrita valor Son las %hm11 y media
- establecer variable %horaescrita valor Son la una y media if %hm11=01
Else
- establecer variable %hm11 valor %hora1
- establecer variable %hm11 valor %hora1-12 if %hora1>12(calcular)
- establecer variable %hm11 valor 12 if %hora1=00
- establecer variable %hm12 valor y %hora2
- establecer variable %hm12 valor y cuarto if %hora2=15
- establecer variable %hm12 valor en punto if %hora2=00
- establecer variable %horaescrita valor Son las %hm11 %hm12
- establecer variable %horaescrita valor Son la una %hm12 if %hm11=01
End If
establecer variable %AMPM valor %horaescrita de la mañana
establecer variable %AMPM valor %horaescrita de la tarde if %hora1>11
Esta es de la que mas orgulloso estoy(basicamente porque es la mas larga xD) simplemente traduce a lenguaje coloquial la hora y la deja escrita para que la variable %AMPM sea leida como "son la una menos cuarto de la mañana" en lugar de decir "son las 23.45"
------------------------------------------
------------------------------------------
Contabilizar Tiempo Comienzo
------------------------------------------
Establecer Variable %TIMEfinal Valor %TIME
Podría haberme ahorrado esta tarea si, pero nunca sabes si la vas a necesitar en un futuro, así que la dejo como tarea y punto. Se usa la variable %TIMEfinal para esta tarea y la siguiente, Total, para que crear mas variables de las necesarias?
------------------------------------------
------------------------------------------
Contabilizar Tiempo Final
------------------------------------------
Seccion de Variable %TIMEfinal desde 1, longitud 2, almacenar en %time0
Seccion de Variable %TIMEfinal desde 4, longitud 2, almacenar en %tm0
Establecer Variable %timea Valor %TIME
Seccion de Variable %timea desde 1, longitud 2, almacenar en %time1
Seccion de Variable %timea desde 4, longitud 2, almacenar en %tm1
IF %time0>%time1
- Establecer Variable %time01 Valor 24-%time0 (calcular)
- Sumar a Variable %time01 Valor %time1
- Establecer Variable %timefinal Valor %time01
ELSE
- Establecer Variable %timefinal Valor %time1-%time0 (calcular)
END IF
IF %tm0>%tm1
- Establecer Variable %tm01 Valor 60-%tm0 (calcular)
- Sumar a Variable %tm01 Valor %tm1
- Establecer Variable %tmf Valor %tm01
- Restar de Variable %timefinal Valor 1
ELSE
- Establecer Variable %tmf Valor %tm1-%tm0 (calcular)
END IF
Establecer Variable %TIMEfinal Valor %timefinal.%tmf
Establecer Variable %TIMEfinal Valor %timefinal.0%tmf IF %tmf<10
La tarea Contabilizar Tiempo Comienzo Coge la hora de la variable del sistema %TIME que es algo asi como 5.45. Aqui, en la tarea Contabilizar Tiempo Final lo que hacemos es coger esa hora, separarla en variables internas y hacer lo mismo con la hora actual. De ese modo, comparamos por separado y hacemos la operacio de diferencia para que al final de la tarea se vuelva a construir una hora legible.
Es decir, al comienzo tenemos 5.45 y al final tenemos 8.00. El resultado seria 8-5 (%time0<time1 se ejecuta else) = 3
Despues 45 seria mayor que 00 por lo que %tm0>%tm1 60-45=15; %tm01=15---- %tm01-%tm1=15+00=15 etc etc
El resultado de la diferencia de horas seria 3.15
Por tanto, si nos remontamos a Dar Los Buenos Dias, la Variable %Dormilon solo se quedaria en un espacio al no superar 9.00
------------------------------------------
Y hasta aqui tengo hecho. Veamos si con el tiempo podemos llegar a completar el ejemplo que hay en el tutorial.
Como no, insto a los expertos que reporten mejoras si las ven. Para los que quieran conocer un poco por encima hasta donde quiero llegar que se lean el tutorial de las variables, ya que ahí esta el ejemplo muy muy simplificado.
Un saludo y espero que poco a poco se llegue a cumplimentar el perfil y mas.
La cosa consiste en que una vez apagado el despertador, el móvil, en una frase te da los buenos días dándote un par de datos para comenzar el día. Parece una chorrada, pero solo el hecho de leer la hora en lenguaje coloquial ya tiene su miga.
Voy a dejar este hilo como principal de la idea e iré dejando aquí las soluciones y las lineas que ya tengo escritas, para ir ampliando cosas concretas las publicaré y preguntaré aparte pues por separado también tienen su utilidad(eso no quita que las siga recopilando aquí después).
Para ello tengo dos perfiles, pero ambos son idénticos salvo por la diferencia de que el segundo se fija en mi calendario laboral para no tener que usar despertador... así que por ahora(y dado que el segundo no acaba de convencerme del todo) voy a ir construyendo solo sobre el primero que es sobre el que se sustenta todo.
Voy a tratar de dar un aspecto claro. Las aclaraciones las pondré entre paréntesis y si algo no lleva comillas y las pongo lo indicaré.
[PERFIL]
Modo Noche Trabajo
[CONTEXTO]
Cualquier aplicación de despertador que uséis
[Tarea de Entrada]
Durmiendo
[Tarea de Salida]
Despertar
------------------------------------------
-------------Durmiendo-------------
------------------------------------------
Establecer variable %Durmiendo Valor SI (esta Variable la tengo para evitar desastres con otros perfiles, Aunque por ahora no la usa ningún otro, me gusta anticiparme)
Modo Silencioso Encendido (se encuentra en ajustes de audio)
Establecer variable %Silencio Valor SI (esta Variable la tengo para evitar desastres con otros perfiles, así evito silenciarlo dos veces si otro perfil lo requiere)
Realizar Tarea Contabilizar Tiempo Comienzo (esta es una tarea de la que hablaremos mas tarde)
------------------------------------------
------------------------------------------
-------------Despertar----------------
------------------------------------------
Realizar tarea Restablecer (se trata de una tarea que uso cada vez que enciendo el móvil y salgo de modos muy específicos, algo así como una puesta a punto)
IF %Encasa ~ SI
- IF %WIFII ~ *WLAN_XXX* ("si variable del sistema, información de wifi, contiene la SSID de mi Red)
- - Realizar tarea Dar Los Buenos Dias (esta es una de las importantes que vamos a crear)
- ELSE
- - Pop-Up (configurar al gusto)
- END IF
ELSE
- Pop-Up (configurar al gusto)
END IF
Ok, la idea de esta tarea es la siguiente, al ser una tarea de salida lo principal es Restablecer y dejar limpio el teléfono, por eso llama a una tarea externa que se encargará de ello(dejando el volumen, gps, wifi, etc a nuestro gusto. Recomiendo que cada uno use la suya propia, pero si alguien tiene dudas puedo dejarla escrita).
Después, el resto de la tarea esta diseñado para atender 3 circunstancias: duermo en mi casa; en la casa de alguien conocido o en algún lugar(que pueda ser vacaciones, festival de música etc)
La variable %Encasa, es una variable propia que he creado, esta variable queda activa cuando el móvil esta conectado a una red wifi cualquiera, por lo que doy por hecho que todas las casas que conozco tienen wifi y que ademas lo comparten conmigo, y como no voy a dormir en el trabajo no me complico mas.
Lo gordo e importante en este caso esta cuando duermo en mi propia casa, pues en el resto de circunstancias le pido que me deje un pop-up para que nadie ajeno se despierte o me mire raro al escuchar el móvil xD. Por eso indico IF %WIFII ~ *WLAN_XXX* (PD la variable %WIFII contiene muchísima información, de ahí lo de los asteriscos.)
------------------------------------------
------------------------------------------
-------Dar Los Buenos Dias--------
------------------------------------------
Realizar Tarea Establecer Hora Escrita
Realizar Tarea Contabilizar Tiempo Final
Establecer Variable %Dormilon Valor " " (nada de comillas, se trata de un espacio para que no lea NADA)
Establecer Variable %Dormilon Valor vago de mierda IF %TIMEfinal>9.00 (podría sustituirse por dormilón o por algo menos Soez)
Esperar 0,1,0, 0 (comando Tarea->Wait-> 1 segundo)
Decir Buenos días %Dormilon. %AMPM, default:default (mensaje hablado que depende de si has dormido mas de 9 horas y de la hora en lenguaje coloquial en ese momento y con el motor TTS predeterminado)(el resultado, si duermes 7 horas hasta las 6.45 de la mañana seria algo así como "Buenos días . Son las 7 menos cuarto de la mañana")
Vale, aquí nos encontramos con el corazón del perfil. Básicamente esperamos que de esta frase salga todo lo necesario. Por el momento solo te da 2 datos, la hora y si has dormido mas de 9 horas. Lo que intentaremos con el tiempo es que ademas nos diga el tiempo y que tareas hay programadas en el calendario(festivos, cumpleaños, libranzas etc)
------------------------------------------
------------------------------------------
----Establecer Hora Escrita------
------------------------------------------
establecer variable %hora, valor %TIME
Seccion de variable %hora desde 1, longitud 2 almacenar en %hora1
Seccion de variable %hora desde 4, longitud 2 almacenar en %hora2
If %hora2>30
- establecer variable %hm11 valor %hora1+1(calcular)
- establecer variable %hm12 valor %hora2-30(calcular)
- establecer variable %hm22 valor 30-%hm12(calcular)
- establecer variable %hm22 valor cuarto If %hora2=45
- establecer variable %hm10 valor %hm11
- establecer variable %hm10 valor %hm11-12 if %hm11>12(calcular)
- establecer variable %horaescrita valor Son las %hm10 menos %hm22
- establecer variable %horaescrita valor Son la una menos %hm22 if %hm10=01
Else if %hora2=30
- establecer variable %hm11 valor %hora1
- establecer variable %hm11 valor %hora1-12 if %hora1>12(calcular)
- establecer variable %hm11 valor 12 if %hora1=00
- establecer variable %horaescrita valor Son las %hm11 y media
- establecer variable %horaescrita valor Son la una y media if %hm11=01
Else
- establecer variable %hm11 valor %hora1
- establecer variable %hm11 valor %hora1-12 if %hora1>12(calcular)
- establecer variable %hm11 valor 12 if %hora1=00
- establecer variable %hm12 valor y %hora2
- establecer variable %hm12 valor y cuarto if %hora2=15
- establecer variable %hm12 valor en punto if %hora2=00
- establecer variable %horaescrita valor Son las %hm11 %hm12
- establecer variable %horaescrita valor Son la una %hm12 if %hm11=01
End If
establecer variable %AMPM valor %horaescrita de la mañana
establecer variable %AMPM valor %horaescrita de la tarde if %hora1>11
Esta es de la que mas orgulloso estoy(basicamente porque es la mas larga xD) simplemente traduce a lenguaje coloquial la hora y la deja escrita para que la variable %AMPM sea leida como "son la una menos cuarto de la mañana" en lugar de decir "son las 23.45"
------------------------------------------
------------------------------------------
Contabilizar Tiempo Comienzo
------------------------------------------
Establecer Variable %TIMEfinal Valor %TIME
Podría haberme ahorrado esta tarea si, pero nunca sabes si la vas a necesitar en un futuro, así que la dejo como tarea y punto. Se usa la variable %TIMEfinal para esta tarea y la siguiente, Total, para que crear mas variables de las necesarias?
------------------------------------------
------------------------------------------
Contabilizar Tiempo Final
------------------------------------------
Seccion de Variable %TIMEfinal desde 1, longitud 2, almacenar en %time0
Seccion de Variable %TIMEfinal desde 4, longitud 2, almacenar en %tm0
Establecer Variable %timea Valor %TIME
Seccion de Variable %timea desde 1, longitud 2, almacenar en %time1
Seccion de Variable %timea desde 4, longitud 2, almacenar en %tm1
IF %time0>%time1
- Establecer Variable %time01 Valor 24-%time0 (calcular)
- Sumar a Variable %time01 Valor %time1
- Establecer Variable %timefinal Valor %time01
ELSE
- Establecer Variable %timefinal Valor %time1-%time0 (calcular)
END IF
IF %tm0>%tm1
- Establecer Variable %tm01 Valor 60-%tm0 (calcular)
- Sumar a Variable %tm01 Valor %tm1
- Establecer Variable %tmf Valor %tm01
- Restar de Variable %timefinal Valor 1
ELSE
- Establecer Variable %tmf Valor %tm1-%tm0 (calcular)
END IF
Establecer Variable %TIMEfinal Valor %timefinal.%tmf
Establecer Variable %TIMEfinal Valor %timefinal.0%tmf IF %tmf<10
La tarea Contabilizar Tiempo Comienzo Coge la hora de la variable del sistema %TIME que es algo asi como 5.45. Aqui, en la tarea Contabilizar Tiempo Final lo que hacemos es coger esa hora, separarla en variables internas y hacer lo mismo con la hora actual. De ese modo, comparamos por separado y hacemos la operacio de diferencia para que al final de la tarea se vuelva a construir una hora legible.
Es decir, al comienzo tenemos 5.45 y al final tenemos 8.00. El resultado seria 8-5 (%time0<time1 se ejecuta else) = 3
Despues 45 seria mayor que 00 por lo que %tm0>%tm1 60-45=15; %tm01=15---- %tm01-%tm1=15+00=15 etc etc
El resultado de la diferencia de horas seria 3.15
Por tanto, si nos remontamos a Dar Los Buenos Dias, la Variable %Dormilon solo se quedaria en un espacio al no superar 9.00
------------------------------------------
Y hasta aqui tengo hecho. Veamos si con el tiempo podemos llegar a completar el ejemplo que hay en el tutorial.
Como no, insto a los expertos que reporten mejoras si las ven. Para los que quieran conocer un poco por encima hasta donde quiero llegar que se lean el tutorial de las variables, ya que ahí esta el ejemplo muy muy simplificado.
Un saludo y espero que poco a poco se llegue a cumplimentar el perfil y mas.