[ 9110 page ]
This page is meant to serve as a repository for my freeware
applications for Symbian devices - as usual, they come with no warranty
and no promise of support. ;-)
Proof-of-concept CPU monitoring
I wrote this program as I am not currently aware of any other attempts at providing CPU usage monitoring for Symbian. Even though this may not seem quite as important on a system that is typically not used for heavy multi-tasking, I still found it useful in development to be able to check for any time consuming background processes that may be accidently triggered by careless use of timers and drain the battery.This application is very bare-bones (built on the foundations of the HelloWorld sample from the SDK). As most CPU monitors, it is self-calibrating, i.e. it assumes that the lowest ever CPU usage it has seen is considered as "0%", even though this may already include some background activity by the system itself. This explains why CPU usage with CPUMon in the foreground will go up to about 1% after you have switched back to another application at least once - it has then experienced the system's performance without the load of updating its own graphics and made that its new baseline for performance.
One possibilty to make it more useful is to set it as the Preferred Application in the Extras menu, so you can always switch back to it by hitting Ctrl-Extras after profiling another application in the foreground.
The application esentially uses two timers at different priorities, one that fires up to 100 times a second at "Idle" priority, and one at "High" that checks once per second how many times the Idle timer was called (only the most important bits shown, of course):
iIdle = CPeriodic::NewL(CActive::EPriorityIdle);A possible enhancement would be to use a CHeartbeat instead of a CPeriodic, to deal with cases where the timer does not get called for more than a second because of very high levels of activity.
iPeriodic = CPeriodic::NewL(CActive::EPriorityHigh);
iIdle->Start(10000, 10000, TCallBack(Idle, this));
iPeriodic->Start(1000000, 1000000, TCallBack(Update, this));
CExampleAppUi::DoIdle()
{
iCount++;
}
CExampleAppUi::DoUpdate()
{
if(iCount>iMaxValue) iMaxValue = iCount;
cpu_usage = (iMaxValue - iCount)*100/iMaxValue;
iCount = 0;
}
Development links
- Nokia
- In addition to Forum Nokia, there is now another completely seperate set of discussion boards with a much better interface at Nokia Knowledge Network. Why they would keep up two offerings in parallel is anybody's guess.
- Nokia's classic Symbian developer section on Forum Nokia. [Note: registration required.]
- This article on Forum Nokia [account required] describes how to connect the 9210 emulator to an NT RAS server.
- There is also a specific section of Forum Nokia that is dedicated to Nokia development in the Americas (e.g. with the upcoming 9290 Communicator for GSM1900 networks).
- Symbian
- Symbian's own Symbian Developer Network
- The C++ and Java newsgroups on Symbian's news server.
- Symbian now makes an early Alpha of OPL for Crystal available - only for "Professional" members, though.
- This seems to look like the definitve answer from Symbian on the RAS question.
- Ari Kemppainen's EPOC page, for example with "BattleShips" from Professional Symbian Programming migrated to EPOC v6 crystal.
- A group working on a Linux version of various EPOC SDKs, including the 9210 Crystal one.
- The Simple RAS project provides a way to connect Nokia's SDK emulators to the Internet via RAS, with the help of a Linux box.
- Helpful tips describing all the steps necessary to get Java apps onto the 9210 can be found here.
- More information on everybody's favourite subject - getting an EPOC Emulator to connect to Windows NT RAS...
Applications for the Win32 emulator
While Geos allows using the same binary for both the phone and the PC-based emulator, the fact that EPOC devices typically do not use x86 CPUs makes it necessary to compile seperate versions for emulator and final device. As the phones are not available yet, I tried to collect a few links to applications that can be used on the Win32 emulator for the Nokia 9210 "Crystal" SDK. The SDK is available from Nokia through an order form at Forum Nokia.
- The beta version of a SyncML client from Nokia. This lets you to test the 9210's synchronization behavior against your SyncML server, if you happen to have one around... [Note: requires a Forum Nokia account.]
- An engine for 3D graphics, together with a three-dimensional pool game - already looks quite impressive in its current state.
General EPOC/9210 links
- A Dutch mailing list for the 9210.
- Here you can subscribe to Nokia Germany's 9210 newsletter.
- My-Communicator.com has a detailed review of the device and lots of information on released and upcoming software products. Even better now it has been moved to a server with fast conenctions outside Poland.
- Felix Brodmann's pages
- The TUCOWS repository of EPOC shareware, freeware and demos. Most of it has originally been written for the Psion PDAs, but almost anything on this page would be an immediate candidate for a 9210 port...
- EpocCity - news and views from around the EPOC world...
- The ER6 spinoff from epochelp.com is also quickly becoming a good collection of 9210 resources. Most of the information can be found under the "Crystal" subsection.
- A Benelux Symbian User Group (Symbianvereniging Benelux)