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

  • nope
    tag

    Megpróbálom leírni hol tartok. Lényegében a tegnap estéhez képest nem változtattam. (Nincs olyan Profilom, amiben két Context lenne, de olyannal is próbálkoztam már).

    -------------------------------
    1. Profil:
    HOME
    Context: Near GSM

    Enter task: Variable Set %HOME to 1
    Exit task: Variable Set %HOME to 0
    -------------------------------
    2. Profil:
    Time
    Context: Time from 22:00 Till 07:00

    Enter Task: Variable Set %IDOPONT to 1
    Exit task: Variable Set %IDOPONT to 0
    -------------------------------

    3. Profil:
    Context: Variable Value %IDOPONT matches 1

    Enter Task:

    1. If %HOME=0
    __2. Goto No. 6
    3. Else
    __4. Airplane Mode Set On
    __5. Wait Minutes 30
    __6. Airplane Mode Set Off
    __7. Wait Minutes 2
    __8. Goto No. 1
    9. End If

    Exit task:

    Airplane Mode Set Off
    _________________

    A 7. pontban azért nem a cell signalt használtam, mert így 2 perc alatt van ideje letölteni az SMS-eket, esetleges nem fogadott hívásokról az értesítést, mert volt már arra példa, hogy a ki/be kapcsolás miatt ezek elvesztek. Azért az elején ellenőriztetem, hogy ha nem értem volna még haza, akkor ne is kapcsolja be az Airplane-t.

    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. Lehet hogy két Contextet kellene a 3. profilba tennem(?) és az Enter taskból az If/Else feltételeket el is lehetne ebben az esetben hagyni, vagy maradjon benne, hogy minden lehetőségre legyen utasítás?
    Ha két Context van a Profilban azok ÉS vagy VAGY kapcsolatban vannak?

    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

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