Battery Guardprogram pozwalający kontrolować zapotrzebowanie na energię, czyli można dowiedzieć się co nam wcina baterię
Parę osób powinno być z niego zadowolone


Od Autora
Zarządzanie energią w Windows Mobile Proffesional a Battery GuardW systemie Windows Mobile Professional wyróżniamy zazwyczaj 9 nazwanych stanów zasilania (
http://msdn.microsoft.com/pl-pl/library/aa930499(en-us).aspx). Są to stany:
On – stan w którym zazwyczaj używamy urządzenie, ekran jest włączony i podświetlony, procesor pracuje pełną parą
Resuming – pierwsze piętnaście sekund po wybudzeniu urządzenia ze stanu Suspend,
BacklightOff – j.w. z tą różnicą, że podświetlenie ekranu jest wyłączone. System przechodzi do tego stanu po ustalonym przez użytkownika czasie (Settings-System-Power) braku aktywności (tegoż użytkownika)
UserIdle – stan do którego system przejdzie, po określonym przez użytkownika czasie braku aktywności (tak jak w przypadku BacklightOff)
Unattended – w tym stanie procesor nadal pracuje normalnie ale elkran i część innych podsystemów jest już wyłączona. W stan ten system przechodzi po określonym czasie znajdowania się w stanie UserIdle ale tylko wtedy, jeśli któryś z uruchomionych programów zarząda tego systemu (np. odtwarzacz muzyki). Stan ten jest osiągany także w pewnych warunkach przez jakiś czas po wybudzeniu urządzenia.
Suspend – stan uśpienia, w którym praca procesora (a więc także wszystkich programów) jest wstrzymana. Należy tu zwrócić uwagę, że moduł GSM, w który większość urządzeń z Windows Mobile Professional jest dzisiaj wyposażona działa niezależnie i jest w pełni zasilany nawet w tym stanie
ScreenOff - stan, w którym wyłączony jest tylko ekran, natomiast reszta systemu jest „w pełni sprawna”
Reboot – stan osiągany podczas restartu systemu operacyjnego
ColdReboot – stan podczas ładowania systemu ze stanu wyłączenia
Z punktu widzenia użytkownika istnieje jeszcze dziesiąty stan stan zasilania a mianowicie jego brak

. Dla zainteresowanych schemat przejść pomiędzy stanami można prześledzić tutaj:
http://msdn.microsoft.com/pl-pl/library/aa929251(en-us).aspx.Jak widać z powyższego opisu widoczną przez użytkownika oznaką stanu zasilania jest wyświetlacz i jego podświetlenie. Z punktu widzenia systemu, wyświetlacz i podświetlenie są dwoma różnymi urządzeniami, które dla porządku nazwiemy sobie modułami.
Takich modułów w naszym urządzeniu PocketPC jest więcej np. kamera (czasami dwie), czytnik kart, karta sieciowa, klawiatura sprzętowa, odbiornik GPS, urządzenie audio i wiele wiele innych.
Czasami jedno (z punktu widzenia użytkownika) urządzenie zdefiniowane jest w systemie przez kilka modułów.
Urządzenia te widoczne są w systemie jako trzy-literowe nazwy kodowe z numerem i znakiem dwukropka, np. cif1: to kamera a wav1: to urządzenie audio. Jak pokazuje BatteryGuard, ilość zarejestrowanych w systemie modułów jest duża i wiedzą tajemną jest co większość z nich oznacza.
Prawdopodobnie nie wszystkie zarejestrowane urządzenia fizycznie muszą występować w danym systemie.
Dla modułu zdefiniowanych jest pięć stanów zasilania (
http://msdn.microsoft.com/pl-pl/library/aa932261(en-us).aspx): Power On – pełne zasilanie
Power Save – tryb oszczędzania energii
Standby – tryb uśpienia z automatycznym wybudzeniem w razie potrzeby użycia
Sleep – tryb uśpienia
Power Off – brak zasilania
Moduły nie mają obowiązku akceptować wszystkich zdefiniowanych stanów z wyjątkiem stanów Power On i Power Off.
Ustawianie stanów nie wspieranych przez moduł skutkuje przejściem w stan jaki moduł uzna za stosowne

.
Po takim wstępie możemy przejść wreszcie do problemu, którym jest zdefiniowanie, co Właście robi Battery Guard.
Pierwszą rzeczą jaką należy sobie uświadomić jest fakt, że tak naprawdę stan wyświetlacza nie jest wyznacznikiem tego w jakim stanie zasilania znajduje się urządzenie. Dlaczego ? Ponieważ to jaki moduł i jak zasilany jest w danym stanie jest kwestią ustawień, które można zmienić.
W Edytorze szablonu zasilania (Power Template Editor) możemy zdefiniować zasilanie poszczególnych modułów dla każdego stanu zasilania urządzenia. Możemy tym wpłynąć na sposób konsumpcji energii. Możemy np. wyłączyć zasilanie kamery w stanie On, jeśli nigdy z niej nie korzystamy.
Główny ekran programu pozwala nam monitorować i ustawiać aktualny stan zasilania modułów. Możemy więc ręcznie wyłączać i włączać poszczególne moduły obserwując jaki ma to wpływ na pobór prądu z baterii. Należy pamiętać, że szablon zasilania jaki mamy aktualnie zastosowany cały czas obowiązuje, czyli po przejściu w inny stan zasilania ulegnie zmianie sposób zasilania modułów. Czyli jeśli wg szablonu kamera w stanie On ma być zasilana, to jeśli ją ręcznie na głównym ekranie wyłączymy, to po wyłączeniu/włączeniu urządzenia kamera ponownie zostanie włączona.
Co ważne, stan poboru prądu i stan baterii jest odświeżany co 2 sekundy ale lista zasilanych urządzeń musi być odświeżana ręcznie.
Uwagi i zalecenia* Przed zmianami w szablonie zasilania zrób jego kopię zapasową,
* Battery Guard zmienia szablon zasilania modułów w systemie i nie musi być uruchomiony, by został on zastosowany,
* Najbardziej istotnymi stanami na których należy się skupić są stany On i Unattended, zwłaszcza ten ostatni, ponieważ często nie wiemy, że nasze urządzenie znajduje się w tym stanie (zależy to od zainstalowanego oprogramowania),
* Uruchomione programy mogą same zmieniać szablon zasilania w celu osiągnięcia założonych funkcjonalności (np. odtwarzanie dźwięku w tle przy pozornie wyłączonym urządzeniu),
* Wszystko co tu przeczytałeś to teoria, w praktyce wszystko zależy od implementacji programowo/sprzętowej Twojego urządzenia,
* Battery Guard się rozwija, dotyczy to zarówno jego funkcjonalności jak i wiedzy autora
*
Twoje doświadczenia w użytkowaniu programu i osiągniętych efektów mogą być przydatne dla innych, podziel się nimi.
->>
więcej