Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

CeRunAppAtTime + probuzeni zarizeni + zapis na kartu

Buthrakaur (61)|1.3.2006 09:59
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...
RStein (2012)|1.3.2006 11:34
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.
Buthrakaur (61)|1.3.2006 11:44
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?
beecher (9270)|1.3.2006 11:50
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. ;)
RStein (2012)|1.3.2006 12:23
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);

Buthrakaur (61)|1.3.2006 12:37
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 (2012)|1.3.2006 12:48
Na WM 2003 + je mozne pouzit RequestPowerNotifications - ale predpoklada to existenci MessageQueue.

A teoreticky je mozne vsechno :)
Buthrakaur (61)|1.3.2006 14:39
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...