Keresés

Hirdetés

Új hozzászólás Aktív témák

  • nope

    tag

    Sziasztok!

    Egy ideje már használom a Taskert, lehet, egyszerűbb lett volna az életem, ha korábban ráakadok erre a fórumra.
    Néhány látszólag nagyon egyszerű dolgot nem tudtam megoldani.
    Pl. nincs lehetőség arra, hogy minden nap azonos időpontban lefusson egy task. Konkrétan egy widgeten lévő dátumot szerettem volna frissíteni éjfélkor, de csak 12 órás időintervallumot lehet megadni. Mondjuk ez esetben nem gond a 12 óra, de azért ez így nem túl elegáns.

    Amit viszont nem tudtam megoldani, az a notification state hiánya, csak event van. Így egy notif. kezdetét le tudom kérdezni, de a végét (megszűnését) viszont nem. a %NTITLE sajnos nem törlődik, megőrzi az utolsó állapotát a notif. törlése/megszűnése után is.
    A user guide-ban egyetlen helyen van említve egy "Notification Click" event, de részletezve nincs, illetve a Taskerben sem található meg.
    Amit szerettem volna: ha elmulasztott esemény van (email, sms), akkor a notif.-t figyelve időközönként ismételné a riasztást (beállítástól függően vibr. és/vagy hangjelzés).

    Bocs, hogy kipanaszkodtam magam :)

    Üdv:
    Nope

  • nope

    tag

    válasz Teasüti #998 üzenetére

    "Konkrétan egy widgeten lévő dátumot szerettem volna frissíteni éjfélkor, de csak 12 órás időintervallumot lehet megadni.
    Miért pont 12 óra? Talán 12 órás lokalizációval használod a telefonod (csak tipp)? Ez elég fura.

    Nem egészen értem melyik context-ről van pontosan szó. A Time ezt tudja konkrétan, amit elvársz (minden naps aktiválódik, ha nem egyedül van) és 00:00-23:59 közötti intervallumot lehet beállítani vele."

    Akkor az én Taskerem van megborulva?
    New profile -> Time context -> From pipa, 0:00, repeat pipa, every 24 hours, To pipaki, és
    "Error: the hour repeat value should be 1-12"
    Max 12 órát lehet beírni, bármilyen kombinációban próbálom.

    A Tasker hivatalosan megvásárolt (v1.3.3u2), a telefon stock GB, az idő 24 órás formátum. Neked ezek szerint itt elfogad 24 órás időintervallumot is?

    Nope

    PS: a notification click-el még futok pár kört, de a gond tényleg az, hogy pl. emailnél vagy sms-nél a Widgetlockerből egy gombnyomással jutok a kezelő programba, és az tüntetni el a notif.-t.

    [ Szerkesztve ]

  • nope

    tag

    válasz Teasüti #1001 üzenetére

    Köszönöm, így már működik. Mindenáron repeat funkcióval akartam megoldani, és ott max. csak 12 órát fogad el.

    Nope

  • nope

    tag

    válasz bogil99 #1007 üzenetére

    Szia!

    Megpróbálok válaszolni...
    "Viszont valami még mindig nem kerek, mert bár szépen dolgozott, reggel hétkor mégsem kapcsolta vissza magát. Sőt, még 7:30 -kor is alvóban volt (ekkor még otthon voltam), mikor legközelebb ránéztem 8:05-kor (a munkahelyemen) már rendesen be volt kapcsolva a telefon."

    A következők miatt működik így:
    a 3. profil ugye csak az adott időintervallumban indítja a taskot (22.00-07.00), ez eddig rendben van.
    Csakhogy ha a task egyszer már elindult, akkor időponttól függetlenül csak akkor kapcsolja ki az airplane módot, ha elmész otthonról.
    Ugyanis hiába szűnik meg a 3. profil feltétele (%IDOPONT), az enter task végtelen ciklusban fut tovább, és hiába van az exit task, az csak kipacsolja az airp. módot, de az enter taskod fut tovább, és mivel otthon vagy (%HOME=1), így újra ráfut a task 4. sorára.
    Amúgy a helyedben megpróbálnám elkerülni az ilyen ciklusokat (a GOTO parancs használatát), és contextekkel próbálnám megoldani.
    Egyszerű és gyors, bár nem elegáns megoldás, ha az exit taskban leállítod az enter taskot (stop parancs).

    A contextek ÉS kapcsolatban vannak.

    Nope

  • nope

    tag

    válasz bogil99 #1010 üzenetére

    Az adott problémától függetlenül:

    Próbálj meg modulárisan gondolkodni, ez esetben taskokra szétszedni a dolgot. Az időzítést csináld meg contextekben, amelyek adott taskot hívnak. Esetleg azok feltételtől függően másik taskot, és így tovább. A goto parancs már 25 éve is kerülendő volt, illett mindenre külön függvényt (processt, taskot) írni.
    Goto-val kevésbé átlátható, és könnyebb végtelen ciklusba kergetni.
    Ha csak taskokat használsz, akkor feltétel teljesül, task elindul, esetleg indít más taskokat, visszatér, ennyi. Ne legyen olyan task, ami folyamatosan fut (persze ez nem mindig érhető el, de törekedni kell rá).
    A folyamatábra nagyon jó ötlet, és egyszerűbb is vele a munka, ha nincs goto.

    De nem akarlak nagyon megkavarni, csak már nekem is sikerült olyan profile-t írnom, amelyik folyamatosan futott és ette az aksit (konkrétan a Battery Changed event meglehetősen gyakori esemény, volt vele gondom).
    Szóval ahogy átlátod és megérted :)

    Nope

  • nope

    tag

    válasz bogil99 #1010 üzenetére

    Van egy kis időm, így lehetne megírni a konkrét problémád GOTO nélkül:

    1. Profil
    HOME+TIME
    _Context: Near GSM
    _Context: Time from 22:00 Till 07:00

    _Enter Task:
    __Airplane Mode Set On
    __Profile Status Felora Set On
    _Exit Task:
    __Profile Status Felora Set Off
    __Stop Task halfhour // biztonsági lépés, hátha a 2 perces várakozásnál tart a halfhour task
    __Airplane Mode Set Off

    2. Profil
    Felora
    _Context: Time repeat every 30 minute
    __Task halfhour :
    ___Airplane Mode Set Off
    ___Wait Minutes 2
    ___Airplane Mode Set On

    Nope

    [ Szerkesztve ]

  • nope

    tag

    válasz Teasüti #1013 üzenetére

    A goto parancs gykorlatilag a régi basic nyelvből származik ami meglehetősen egyszerű mai szemmel nézve (igen, a Taker is az, de hát nem is programnyelv). Ott még a sorok sorszámozva voltak, és nem volt lehetőség függvény (function) használatára.
    A később programnyelvek némelyike ( pl. C) még meghagyta a goto-t, de a struktúrált programozási technika bizonyította, hogy nincs rá szükség.
    Pl. a Java nyelvben fenntartott szó (azaz változó névnek nem használható), de nincs ilyen parancs.

    Hogy miért ne?
    Pont az ilyen sorszámozott programnyelveknél a legveszélyesebb, mert ha később változtatsz egy kódot, nem tudhatod, hogy valahonnan nincs-e egy ugrás arra a kódrészletre, amit éppen átírsz. Nyilván a Tasker esetén általában nincsenek többoldalas kódok, így átlátható, de egy komolyabb kód esetén, pláne ha többen is dolgoznak rajta, egyszerűen tilos.

    http://en.wikipedia.org/wiki/Go_To_Statement_Considered_Harmful

    Folyamatosan futó task: azért annak is oka van, hogy a beállításokban be lehet állítani a várakoztatott taskok maximális számát (tudom, csak közvetve érinti a párhuzamosan futó taskokat). Ha valamit meg lehet oldani, úgy, hogy ne legyen folyamatosan futó task (a fenti eset jó példa), akkor érdemes úgy megoldani, még ha nem is okoz problémát.
    De végezz el egy tesztet: írj egy végtele ciklust, benne egy jól látható műveletet, pl. a flash ki-be kapcsolása másodpecenként (ha nincs, akkor a fényerő változtatása két fázis között, vagy valami hasonló). Indítsd el, majd kezdd el használni a telefont. Nem kell nagy dolog, menj be a gyári beállításokba, nézegesd a kontaktokat, naptárad, stb. A villogás ritmusa jól láthatóan szétesik, és bár a Tasker prioritása (nagyon helyesen) alacsony, azért ez vice versa is.

    Nope

    [ Szerkesztve ]

  • nope

    tag

    válasz bogil99 #1018 üzenetére

    Kissé túl van bonyolítva, ráadásul a 3 nem megfelelő feltétel esetén háromféleképpen kezeled le (miközben mindegy, hogy nem vagy otthon, és azért nincs airplane, vagy délelőtt van, és azért nincs airplane).

    De ha ragaszkodsz a változókhoz, akkor ajánlanék egy trükköt:
    Mivel akkor akarod airplane-be tenni, mikor otthon vagy (HOME=1), ÉS este van (IDOPONT=1), a többi állapot számodra közömbös (a változók értékei 0,1; 1,0; 0,0), ezért a taskban a következőt csinálnám:

    IF %HOME+%IDOPONT = 2
    ..... airplane mode lekezelése
    else
    ....airplane mode kikapcsolása, task leállítása
    endif

    Mindjárt átláthatóbb.
    Arra kell ügyelni, hogy az IF esetén az egyenlőség rendes egyenlő legyen ( "=", maths: equals).

    Nope

  • nope

    tag

    Van egy hangrögzítőm taskerben megírva, widgetről tudom indítani. Szeretnék készíteni hozzá egy számlálót, de nem nagyon van épkézláb ötletem hozzá.

    Kb. annyira jutottam, hogy csinálok egy scene-t valahova, de ez esetben másodpercenként kellene frissítenem egy textet, abba beleírva az általam valahogy kiszámolt eltelt időt.
    Valami hasonlót már csináltam, mikor a hívásrögzítőt írtam, akkor a pontos időt valahogy az 1970.01.01 óta eltelt másodpercekből (%TIMES) kellett kiszámolni (mert másodpercet nem lehet lekérdezni máshogy, vagy igen?)

    A lényeg, hogy kissé komplikáltnak és leterhelőnek tűnik a feladat nagyságához (kicsinységéhez) képest, és félek, hogy belassítaná a telefont a mp-énti kalkuláció.

    Esetleg ötlet? (vagy egy általam ismeretlen, ámde pont idevágó funkció? :))

    Nope

  • nope

    tag

    válasz Oldman2 #1033 üzenetére

    Ekkora méretnél már érdemes folyamatábrát rajzolni. Legjobb egy erre alkalmas programmal (pl. Visual Paradigm), de ezek kezelése elég komplikált, külön meg kell tanulni. De még a papír-ceruza is sokat segíthet akár.
    Nekem is volt hasonló problémám, aztán mikor elkészült a folyamatábra, akkor derült ki, hogy valami elfelejtett korai próbálkozásom kapcsolgatott dolgokat a háttérben :)

    Azóta minden megvan UML-ben is, így egyszerűbb bővíteni is, hiszen könnyebb találni egy meghívható vagy átírható taskot.

    Sajnos ez az "áttekinthetetlenség" a mobil velejárója, ekkora képernyőméreten nem nagyon lehet többet kihozni belőle.

    Nope

Új hozzászólás Aktív témák