[Windows Mobile Apps and Games] ZuinigeRijder:
BattClock3 Test version

I have made a test version of BattClock3. Although I tested already some things, I did not test everything yet. So use it at your own risk.

I left out all translations, just copy the unpacked zip file somewhere on your phone or memory card and run battclock and/or battconfig. Best is not to add it to autostart, because if your phone freezes because of battClock......

Because I still working on a change:

* 4 separate BattClock area's, each area can contain max 3 info items

this test version is not documented. So you must already know a bit of BattClock configuration and sometimes just guess ;)

Here is the huge changelog for this Test version:

*NEW* Wifi/Mobile internet monitor

# Because of possibly conflicting settings and the total redesign I decided to store the settings in a new subkey: HKCU\Software\ZuinigeRijder\BattClock3

If you used an earlier version of BattClock, you need to redo your settings. The positive effect is that you can switch back to a version before 3.0, using the old settings.

Improvements and new features:

# When battery is charging and the battery is 100% alternate the stripe between the configured high and background color each second to better indicate it is fully charged

# Added option to show current CPU Frequency, thanks to NetRipper (great on HD2). Only supported phones: Leo/Raphael/Diamond/Topaz/Rhodium/Blackstone/Whitestone

# Added option to execute a command when the BattClock is pressed ("BattClockPressCommand")

# Added possibility to indicate which numeric info to log to the registry instead a maximum of 6 ("LogToRegistry1" .. "LogToRegistryN"). Note that this is usefull if you want to react with other programs on these registry keys, e.g. Mortscript or HomeScreen++.

# Added possibility to indicate which numeric info to log to the file instead of zero or all ("LogToFile1" .. "LogToFileN")

# Added minimum elapsed seconds setting before you log to the log file ("LogToFileSeconds"). So only log file updates will be done when there is a change in one of the log items AND the minimum number of seconds have been elapsed. This can keep the log file smaller.

# Added possibility to show all numeric info as stripe instead of a limited set, registry key Stripe has been changed into StripeInfo ("Stripe1Info" .. "StripeNInfo").

# Number of RegKeys to monitor increased from 3 to 6 ("RegKey1".."RegKey6"), default added showing unread email count, Uptime Clock and Uptime ClockSession

# Added battery milliWatt value

# Added usage statistics since startup of BattClock, "MinutesDisplayOn", "MinutesStandby", "MinutesUptime" and "MinutesCall"

# Added option to have a multiplier for an Info value ("InfoMultiplier1".."InfoMultiplierN"), e.g. to convert a value from seconds to hours, convert from Bytes to KB or MB, etc.

# Added the possibility to specify the number of Rows and Columns ("BattClockInfoRows", "BattClockInfoColumns"), so items can be shown in a tabular fashion (previous it was possible to show the items in rows only or columns only, now a combination is possible), e.g. 3x2, 2x4

# Log, Debug and Reg files are now created in the same directory as were BattClock is installed. So if you install BattClock on your memory card, it will not take memory away from your phone memory.

# Reused translations texts between BattConfig screens, so they need to be translated only once.

Number of content items which can be displayed increased from 6 to 12:

# "BattClockInfo1".."BattClockInfo12"

# "FontName1".."FontName12"

# "FontType1".."FontType12"

# "FontSize1".."FontSize12"

# "FontSizeLandscape1".."FontSizeLandscape12"

# "ClockForeground1".."ClockForeground12"

Improved ease and more ergonomic configuration in several ways:

# Pressing a content item shows a list of all available content items, for easier selection (otherwise you need to press +/- several times)

# Sometimes smaller +/- buttons, so more space is available for the texts

# +/- buttons are now sometimes left and right of the configuration item

# When there is enough space on the settings screen, moved the label above the +"value"-

# Text fonts a little bit smaller, so there is more room for translated text.

# Reordered the items to display, so they are better grouped together

Stripes in Landscape and stripes from right to left. Stripes Width and Height have been changed into X2 and Y2. The positions can now be negative: X, X2, Y, Y2.

# X and/or X2 negative: measure from the right (great for landscape)

# X2 < X: draw battstripe from right to left, instead of left to right

Vertical stripes when height is bigger than width, (Y2 - Y) > (X2 - X):

# Y and/or Y2 negative: measure from the bottom (great for landscape subclassing DesktopExplorerWindow)

# Y2 < Y: draw battstripe from bottom to top instead of top to bottom

Added option to monitor Wifi, possibility to display/log/stripe:

# WifiConnected, indication if Wifi is connected, yes or no

# WifiKBitsPerSecond, current speed in Kbits per second

# WifiKBytesReceived, number of KiloBytes received for the current session

# WifiKBytesSent, number of KiloBytes sent for the current session

# WifiKBytes, number of KiloBytes received and sent for the current session

# WifiConnectTime, connect time in seconds for the current session

# WifiKBytesReceivedTotal, number of KiloBytes received for all the monitored sessions

# WifiKBytesSentTotal, number of KiloBytes sent for all the monitored sessions

# WifiKBytesTotal, number of KiloBytes received and sent for all the monitored sessions

# WifiConnectTimeTotal, connect time in seconds for all the monitored sessions

Added option to monitor Mobile data (GSM/GPRS/3G/HDSPA), possibility to display/log/stripe:

# MobileConnected, indication if Mobile data is connected, yes or no

# MobileKBitsPerSecond, current speed in Kbits per second

# MobileKBytesReceived, number of KiloBytes received for the current session

# MobileKBytesSent, number of KiloBytes sent for the current session

# MobileKBytes, number of KiloBytes received and sent for the current session

# MobileConnectTime, connect time in seconds for the current session

# MobileKBytesReceivedTotal, number of KiloBytes received for all the monitored sessions

# MobileKBytesSentTotal, number of KiloBytes sent for all the monitored sessions

# MobileKBytesTotal, number of KiloBytes received and sent for all the monitored sessions

# MobileConnectTimeTotal, connect time in seconds for all the monitored sessions

Although BattClock was already leightweight (small in memory, almost no CPU usage), improved performance in several areas:

# Do the computation in a workerThread instead of the UI Thread, to make the phone as responsive as possible

# Only Log to Registry when configured

# Use global variables instead of function calls, to improve CPU usage even more

# Avoid the number of checks as much as possible (global boolean helper variables), so only the code paths are executed which are configured and CPU usage improves.

# Decode Background image only once and use Bitmap from there on

# Because of the introdution of helper variables and new possibilities the Memory Usage is slightly higher, although still very very small, only 2 Kb in Memory

Feedback is appreciated :)

*EDIT* New BattCLock3 Test version with fixes.

*EDIT2* Added correct BattCLock3 Test version with fixes.