2013. június 23., vasárnap

Tasker profiljaim (otthoni, éjszakai, munkahelyi, normál)

Középhaladó szint

Az alapelgondolás adott volt: lusta vagyok, állítgassa a profilokat a telefon. Azért van, hogy helyettem dolgozzon.
Eddig erre a célra jó volt a Locale. Azonban a Tasker többet hoz ki a telefonból, úgyhogy lecseréltem. Lett miatta egy kis játék :)

Szempontok:
legyen négy profil
 -Normál
 -Otthoni (fél éves a kislányom, ne ébressze fel senki)
 -Otthoni éjszakai (éjszaka engem se ébresszen fel senki)
 -Munkahelyi (ébresszen fel valaki)

Adottak a következők
 -Otthoni wifi
 -Munkahelyi wifi

Normál esetben elég lenne csak közeli wifi-t beállítani a feltételnek:
wifi near[otthoni] + time[7:00-19:59] -> task[HOME] /kilépő -> task[NORMAL]
wifi near[otthoni] + time[20:00-6:59] -> task[NIGHT] /kilépő ->task[NORMAL]
wifi near[munkahelyi] -> task[WORK] /kilépő ->task[NORMAL]

Ez nekem két szempontból nem felelt meg
 -a wifi jel néhol gyenge, így otthon elindul a normál profil és felébred a lányom, nyűgös lesz, aztán én is.
 -párhozamosan futnak task-ok, ami nem olyan jó a memóriának, akksinak, notibar nem átlátható, stb.

Ezt a tervet szőttem:
Változókat állítgatok pozíciótól függően és ezek állapota fogja meghatározni a profilt.
Például az otthoni wifi és cella is tesz 1-1 -et a %Home változóba. Ha megszűnik létezni a wifi-jel, vagy cella-jel, akkor elvesz 1-1 -et.

 cell near[otthon] + time[7:00-19:59] -> task[_setHome] / task[_unsetHome]
 wifi near[otthon] + time[7:00-19:59] -> task[_setHome] / task[_unsetHome]
 cell near[otthon] + time[20:00-6:59] -> task[_setNight] / task[_unsetNight]
 wifi near[otthon] + time[20:00-6:59] -> task[_setNight] / task[_unsetNight]
 cell near[munkahely] -> task[_setWork] / task[_unsetWork]
 wifi near[munkahely] -> task[_setWork] / task[_unsetWork]

_setHome
variable add[%Home, 1]
variable set[%Night, 0]
variable set[%Work, 0]
perform task[setProfile]

_unsetHome
variable subtract[%Home, 1]
perform task[setProfile]

A _setHome és _unsetHome mintájára kell elképzelni a _setWork, _unsetWork, _setNight és _unsetNight task-okat.

setProfile
if[%Home > 0]
 perform task[HOME]
else if[%Night > 0]
 perform task[NIGHT]
else if[%Work > 0]
 perform task[WORK]
else
 perform task[NORMAL]
end if

A HOME, NIGHT, WORK és NORMAL értelemszerűen az adott profil beállításait tartalmazza. Vagy valami egész mást.

Még egy dolog van. Priorizálni kéne ezt a sok mindent, hogy értelme is legyen annak, amit csináltunk.
 Feltételek: ami cella, az eggyel magasabb, mint ami wifi (legalábbis nekem így lett jó). Ez nálam 9 és 8. A magasabb hajtódik végre először.
 Ahol perform task van, elméletileg ott is kellene állítani, de nekem eddig nem volt gond miatta. Alapértelmezett az 5. Ha a perform task[valami] prioritása magasabb, mint a hívó task-é, akkor előbbi lefut és csak utána folytatódik a szülő.

A fentiek alapján igazán nem nehéz megcsinálni, de azért itt a lehetőség letölteni zipben: Google drive-ból, vagy Dropbox-ból

Jó szórakozást

Nincsenek megjegyzések:

Megjegyzés küldése