CeRunAppAtTime + probuzeni zarizeni + zapis na kartu
Napsal jsem si takovou jednoduchou aplikaci na zalohovani souboru a registru a dalsi aplikaci, ktera slouzi jako "planovac uloh". Planovac spousti zalohovani v zadanych casovych intervalech, vysledny soubor se zalohou se uklada na kartu.
Problem ale nastane v okamziku, kdy je zarizeni (Symbol MC50, PPC2003SE) vypnute - planovac zarizeni probudi a spusti zalohovani, ale pokud je zarizeni vypnute vic nez cca 5 minut, tak se nepodari zapsat soubor se zalohou na kartu, resp. zapise se jenom prvnich par bytu a potom dojde k IOException. Pokud je PPC vypnute kratsi dobu, tak se soubor zapise na kartu bez problemu. Pokud nastavim zalohovani do RAM, tak taky vsechno probehne bez problemu i kdyz je PPC vypnute >5min...
nesetkal jste se s timhle problemem nekdo? muze to byt problem konkretniho PPC nebo je potreba pri probuzeni nejak kartu aktivovat? vygooglit se mi bohuzel nic nepodarilo...
Problem ale nastane v okamziku, kdy je zarizeni (Symbol MC50, PPC2003SE) vypnute - planovac zarizeni probudi a spusti zalohovani, ale pokud je zarizeni vypnute vic nez cca 5 minut, tak se nepodari zapsat soubor se zalohou na kartu, resp. zapise se jenom prvnich par bytu a potom dojde k IOException. Pokud je PPC vypnute kratsi dobu, tak se soubor zapise na kartu bez problemu. Pokud nastavim zalohovani do RAM, tak taky vsechno probehne bez problemu i kdyz je PPC vypnute >5min...
nesetkal jste se s timhle problemem nekdo? muze to byt problem konkretniho PPC nebo je potreba pri probuzeni nejak kartu aktivovat? vygooglit se mi bohuzel nic nepodarilo...
Obavam se, ze to nema tolik spolecneho s programovanim.
Na mem MDA II
1) Jedna SD karta nebyla obcas pristupna - aplikace vyhazovaly podivne chyby, i kdyz se karta tvarila, ze je vse v poradku.
2) Druha SD nepravidelne prestala byt dostupna.
3) Treti SD karta funguje bez problemu.
Jen jako perlicka na zaver - SD karta z bodu 2 funguje beze vsech problemu na MDA Compact.
Existuji nejake hacky na prodlouzeni intervalu po probuzeni (treba kvuli budiku), ale je to alchymie.
Na mem MDA II
1) Jedna SD karta nebyla obcas pristupna - aplikace vyhazovaly podivne chyby, i kdyz se karta tvarila, ze je vse v poradku.
2) Druha SD nepravidelne prestala byt dostupna.
3) Treti SD karta funguje bez problemu.
Jen jako perlicka na zaver - SD karta z bodu 2 funguje beze vsech problemu na MDA Compact.
Existuji nejake hacky na prodlouzeni intervalu po probuzeni (treba kvuli budiku), ale je to alchymie.
no, asi to nakonec s programovanim nesouvisi, ale myslel jsem, jestli neni po probuzeni potreba jeste volat nejakou API funkci pro spravnou inicializaci karty nebo tak neco... jestli to funguje/nefunguje nahodne, tak to mam opravdu radost - dalsi z rady PPC speku :mad:
zkusim jeste pokusovat s vyckanim par sekund po probuzeni pred zapisem na kartu a uvidim - da se nejak zjistit, jestli zarizeni pred spustenim moji aplikace bylo uspane nebo jestli bylo normalne zapnute?
zkusim jeste pokusovat s vyckanim par sekund po probuzeni pred zapisem na kartu a uvidim - da se nejak zjistit, jestli zarizeni pred spustenim moji aplikace bylo uspane nebo jestli bylo normalne zapnute?
Problem je s uspavanim PDA. Kdyz se PDA vypne, tak se odpoji vsechny nepotrebne zarizeni (display, dotykovka, komunikace, storage karty apod.), aby se setrilo proudem... Po probuzeni je potreba pockat nejakou dobu, nez se vse zpet spravne zinicializuje, tj. ja bych poseckal tak pulminuty a pak az neco provadel...
Nebo bych si stahnul Sprite Backup a zjistil, jak ten to dela (tedy spise jak dlouho ceka)... :)
BTW Neni to spek PPC, je to jejich vlastnost. A rozhodne to neni nahodna funkce. Tj. receno, holt PPC neni PC. ;)
Nebo bych si stahnul Sprite Backup a zjistil, jak ten to dela (tedy spise jak dlouho ceka)... :)
BTW Neni to spek PPC, je to jejich vlastnost. A rozhodne to neni nahodna funkce. Tj. receno, holt PPC neni PC. ;)
Beecher: Ano - problemk je s uspavanim PDA, bohuzel ruzne karty a ruzna zarizeni se chovaji ruzne na stejne "soimuly" a to je to, co vetsinu lidi vcetne me dost toci.
Detekovat spusteni zarizeni muzete pres WakeUp udalost
CeRunAppAtEvent("\\MyWakeUpP.exe", NOTIFICATION_EVENT_WAKEUP);
Detekovat spusteni zarizeni muzete pres WakeUp udalost
CeRunAppAtEvent("\\MyWakeUpP.exe", NOTIFICATION_EVENT_WAKEUP);
beecher: interval si vychytam, ale jak rika RStein - nemuzu si byt jisty, ze to jinde nebude haprovat. v tom prave vidim tu nedomyslenost :mad:
rstein: o tomhle vim, ale myslel jsem, jestli neexistuje nejake elegantnejsi reseni... Takhle se teda jeste budu muset zaregistrovat na wakeup, pri zapnuti si ulozit cas (treba do registru) a pri spusteni app_run_at_time se podivat, jak je to dlouho od posledniho spusteni a podle toho urcit, jestli bylo zarizeni potreba probudit nebo ne. Nemuze u tohohle dojit k soubehu? Myslim tim, ze by app_run_at_time aplikace precetla info z registru driv, nez by je tam stihla wakeup aplikace zapsat... ciste teoreticky :)
rstein: o tomhle vim, ale myslel jsem, jestli neexistuje nejake elegantnejsi reseni... Takhle se teda jeste budu muset zaregistrovat na wakeup, pri zapnuti si ulozit cas (treba do registru) a pri spusteni app_run_at_time se podivat, jak je to dlouho od posledniho spusteni a podle toho urcit, jestli bylo zarizeni potreba probudit nebo ne. Nemuze u tohohle dojit k soubehu? Myslim tim, ze by app_run_at_time aplikace precetla info z registru driv, nez by je tam stihla wakeup aplikace zapsat... ciste teoreticky :)
Na WM 2003 + je mozne pouzit RequestPowerNotifications - ale predpoklada to existenci MessageQueue.
A teoreticky je mozne vsechno :)
A teoreticky je mozne vsechno :)
hmm...tak jsem si zaregistroval jeste ten wakeup a vysledek je ten, ze se napred spusti aplikace s AppRunAtTime a az po chvili AppRunAfterWakeup, takze budu muset najakou kratkou chvili pockat po spusteni AppRunAtTime, aby zatim stihla probehnout aplikace povesena na wakeup :/// ve vysledku by to ale snad takhle melo fungovat...