BLifePlugin - описание
?дея создания
?дея пришла после безвременной гибели BatPlug, который внезапно стал считать время примерно в 4 раза медленнее, чем оно идёт на самом деле. Победить проблему я не смог, а ХР делать из-за этого показалось удовольствием ниже среднего. К тому же, логика работы BatPlug примитивна, а хотелось бы учесть статистику использования телефона.
В итоге родился BatteryLife plugin (BLifePlugin).
Совместимость
Предлагаемый плагин предназначен для работы на смартфонах под управлением Windows Mobile 2003 (SE) и моложе. Проверялось на T-Mobile SDA и I-Mate SP5m. Нет повода, чтобы не работать на WM2002, но возможны проблемы с цветами (непопадание в цвет, выставленный в настройках в home screen, т.к. API WM2002 не предоставляет требуемых возможностей). Если кто-то проверит на 200-м моторе - буду благодарен!
Общее описание
Плагин по ходу своей работы собирает и сохраняет статистику разряда батареи. Путём хитрых подсчётов выясняется остаточное время работы телефона при текущем заряде и времени суток. Плагин начинает более-менее адекватно предсказывать время уже после пары суток использования. Дальше - точнее.
Пока нет никакой накопленной статистики, время оценивается “как у всех”: линейно исходя из текущего разряда и прошедшего времени.
Файл со статистикой растёт со скоростью примерно 90 байт в сутки или 31 килобайт в год (при самых худших условиях - 432 байта в сутки или 154 килобайта в год). Это видится не таким страшным объёмом, поэтому текущая версия не отрезает “хвост”. Пусть растёт.
Первая страница
В режиме ожидания: “28%, hrs: 15.2 (0.4)”.
Здесь выводится текущий процент заряда, оставшееся время работы до достижения TargetDischargePercent процентов и время работы с предыдущего сброса статистики в файл.
В режиме зарядки: “89%, hrs: 55.2/0.5 ch, 0.3 rem, 27°C”.
Здесь текущий процент заряда и оставшееся время работы, как и в режиме ожидания, затем прошедшее время с начала заряда, оставшееся время до достижения 100% и температура батарейки.
По окончании зарядки: “100%, hrs: 62.2/Charged 73% in 1.7 hrs”.
Здесь после “/” выводится время, за которое заряд поднялся на указанное количество процентов.
Вторая страница содержит график среднего расхода батареи.
Управление плагином
Нажатие джойстиком на строке плагина выводит about о программе и подробную инфомацию о батарейке (температура, напряжение, ток разряда и т.д.). Всё.
Screenshots
Строка плагина - самая нижняя.
Настройки
Задаются прямо в теге с плагином (не внутри). В тестовом home screen (BatteryLifePlugin.home.xml), который устанавливается из дистрибутива, некоторые из нижеследующих параметров уже заданы.
StatFilename - имя файла со статистикой. По умолчанию (если не задан в настройках) - “\Storage\My Documents\BLifePlugin.dat”. Я лично сразу поместил этот файл на карту памяти.
Добавление от 28.01.2007: … а теперь вернул файл обратно во внутреннюю память. Дело в том, что I-Mate sp5m, который сменил мой старый T-Mobile SDA, имеет странность: при загрузке телефона плагину не всегда флеш-карта бывает доступна. Видимо, драйвер флешки не успевает стартовать до старта плагина.
RefreshTimeout - период (в миллисекундах) принудительного обновления содержимого окошка плагина. По умолчанию - “600000″ (10 минут). Менять на меньшее значение особого смысла нет: информация, которую вы видите на экране, с очень большой вероятностью, актуальна, т.к., помимо принудительного, обновление происходит всякий раз, когда происходит перерисовка плагина.
MaxHistoryDays - количество дней, за которые будет учитываться история. По умолчанию - “30″.
FlushTimeoutHours - период (в часах) принудительного сохранения статистики. По умолчанию - “8760″ (1 год). Помимо принудительного, сохранение происходит в начале зарядки батареи, при завершении работы плагина (в частности, при корректном выключении смартфона, смене home screen’а или цветовой схемы) и в некоторых других ситуациях. Поэтому нет особого смысла устанавливать меньшее значение
MinPercent - минимальный процент заряда, при котором учитывается и сохраняется снятая статистика. По умолчанию - “20″. Выбрано 20% заряда, т.к. при меньших значениях точность определения заряда падает. К тому же, лично я, если позволяют условия, обычно при значениях ниже 20 принудительно разряжаю батарею “фонариком” и ставлю телефон на зарядку. Этим не только продляется срок службы батареи, но и не происходит снижения её ёмкости.
TargetDischargePercent - процент заряда, до которого рассчитывается остаточное время работы. При дальнейшем понижении плагин будет всё время выводить 0 часов. По умолчанию - “0″.
height - стандартный параметр многих плагинов. Минимальная высота плагина в пикселях, может быть автоматически увеличена, если выводится длинный текст. По умолчанию - “20″. Для устройств на WM5 рекомендуется выставить в “25″.
HighCPULoadPercent - уровень загрузки CPU, который считается высоким. Рассчитывается как среднее за RefreshTimeout. При превышении строка плагина будет подсвечиваться цветом HighCPULoadBgColor. По умолчанию - “20″.
HighCPULoadBgColor - цвет фона строки плагина, когда процессор загружен выше HighCPULoadPercent. Может задаваться как в абсолютных величинах (”#RRGGBB”), так и в цветах из схемы (”COLOR_ALERTTITLE”). По умолчанию - “#800000″ (красный цвет половинной интенсивности).
font-face, font-size, font-weight, fgcolor, bgcolor, padding-left, padding-right, padding-top - стандартные параметры плагинов. Читаются как из настроек плагина, так и из тега default.
Планы
- Поддержать все стандартные параметры плагинов. Сейчас плагин смотрится не очень хорошо на кастомизированных homescreen’ах.
- Проигрывание звуковых файлов при разряде ниже одного настраиваемого порога и заряде выше другого.
- Сделать учёт дня недели при вычислении остаточного времени работы.
Обсуждения
Обсуждение плагина на форумах riot.ru.
Предложения
Если будут предложения по развитию плагина, то пишите их в форуме, присылайте по адресу support[-at-]accosto[punto]com или просто оставляйте здесь комментариями. Спасибо!
Hello,
I have tried your plugin but how can I activate it? I am using facade and it doesnt appears under the menu plugin…. sorry im newbie, thanks
Комментарий от gianni — February 6, 2007 @ 1:42 am
Very nice plugin. I don’t use plugins for my homescreen except for the SMS plugin. But your plugin is worth adding to my xml file.
BTW i took the liberty of posting your app in my blog: http://oldsap.blogspot.com/2007/02/blifeplugin-freeware-smartphone.html
Комментарий от oldSAP — February 6, 2007 @ 8:59 am
Hi gianni, try editing your xml file (homescreen file) and adding this:
Комментарий от oldSAP — February 6, 2007 @ 10:36 am
1. Added small FAQ to the main page.
2. I haven’t tried to integrate the plugin into Facade yet…
Комментарий от admin — February 17, 2007 @ 3:13 pm
nice plugin, got it working, but how do i change the font? it’s bigger than the rest of the fonts on the homescreen. i have t-mobile sda using the wireless homescreen.
please reply Cc to my email pls. thx aris@modelpromote.com
Комментарий от aris — February 21, 2007 @ 6:24 am
i’m testing BlifePlugin on my Oé XDA Graphite… unfortunately, there seem to be some problems:
this is my line in homescreen xml:
° plugin doesn’t seem to be writing any history data, whether i leave the default or specify a file (in phone memory). Power off & remove battery…Plugin starts from scratch, no history.
°Charging phone, plugin displays “AC/not charging 0.0°C”.
Maybe i’m missing something? Anyone care to try some troubleshooting?
cheers,
Tii.
Комментарий от Tii — June 13, 2007 @ 3:07 pm
[...] how much time is left and whether you need to minimize device usage to keep the power. There is a great tool that calculates remaining battery life time based on battery usage statistics but it shows the time on you home (today) screen. If you want to [...]
Уведомление от gpsVP 0.2.3 - monitoring your battery - gpsVP - GPS map for WM Smartphone - GPS software for Windows mobile for smartphone — July 7, 2007 @ 1:01 pm
Good plugin but on my Samsung i320 shows wrong temperature (like other programs - 214885196.8°C). But when I enter *#0228# it shows exact temperature. Can I fix it myself?
Комментарий от S@nchYESS — April 12, 2008 @ 3:50 pm
“Charging phone, plugin displays “AC/not charging 0.0°C”.”
+1
Комментарий от S@nchYESS — April 12, 2008 @ 10:11 pm