[Windows Mobile Apps and Games] stephj:
Check this out.......

I wrote it a few months back whilst digging around in part of the RIL.

Written in Win32 C++ it's lean, mean, rather basic, but it does the job. It requires a phone with GPS, as it calls the Microsoft intermediate GPS driver.

Once it is running, it checks the GPS and phone status every 5 seconds. If the signal strength has changed since the last reading, it writes a record out to \SIGLOG.TXT in the root directory of your device, in the format:-

Latitude,Longitude,Signal Strength,Mobile Country Code, Mobile Network Code,Location Area Code, CellID eg.

0.000000,0.000000,090,0EA,0F,00CF,0000E66C

In this case the 090 is the signal strength, 0 to 100

Latitude and longitude appear as zeros, because I have just run it here in the office, where there is no GPS signal. Zero values also appear in the emulator image. With a proper GPS signal they are filled in with the correct values.

Each time the program is run the log file is overwritten. Rename it , or copy it somewhere else, if you want to keep it.

Notice also, that this file will have a file size of zero bytes whilst the program is running. WinMo caches the output in memory until the output buffer gets full, or the program is closed. You will have to kill it with Task Manager or Settings->System->Memory->Running Programs, unless you have set up your device so that [X] terminates the program.

While it is running, it has the GPS Com port open which starts the GPS circuitry. This will run your battery down faster than usual.

UPDATED Version 1.1.................. 5th August 2010

It has taken a while, but here it is, version 1.1, a much needed improvement on the previous version. Following on from the requests posted below I have managed to include nearly all of them. Here are the differences.

1. Mobile Country Code,Mobile Network Code,Location Area Code, and CellID are now displayed on the main screen, under the CellData heading.

2. When the program starts, the default is to only display the values on the screen, if you want it to log the data to a file, then you have to start it running with StartLog from the menu, and end it with EndLog. Seems logical captain!

3. The default is to write the data to \SIGLOG.TXT in the root directory of your device but this time the data is appended to the end of any existing file, it is no longer overwritten.

4. Use Logfile to open a save dialog box if you want to put it somewhere else. Don't forget to click the 'Save' button in the dialog to accept the new filename. The program will use this location until it is killed, it then reverts back to \SIGLOG.TXT when it is restarted. It is disabled while the log is running.

5. LogOnChange can be checked on and off. When checked it will only write a logfile record when the percentage signal level in the registry changes. When 'Off' it will write a record each time the timer routine is triggered.

6. Also, you can set the timer poll interval to a selection of discreet values from 5 seconds to 10 minutes.

7. It gets a more meaningful icon than the bog standard Windows Application effort. If you just copy the program over the previous version, the program icon will not appear until your device is soft reset. WinMo caches the icons within File Explorer. Whatever the hell for?

Updated: Version 1.2 :

Now reports signal strength values from RIL_GetSignalQuality() under the dB heading, they are the values for SignalStrength, MinSignalStrength and MaxSignalStrength, in that order. These values appear negative because they are in dB. They are also written to the logfile as the three values after the signal strength value from the registry.

The logfile is now:-

Latitude, Longitude, ISO Date, Time, Signal,SigRIL,MinSigRIL,MaxSigRIL, Country, Network, Location, CellID

53.478121,-2.277437,2010-08-11,07:08:37,090,-77,-113,-51,0EA,0F,00CF,0000BE86
53.477617,-2.274503,2010-08-11,07:08:52,100,-69,-113,-51,0EA,0F,00CF,0000BE87
53.470325,-2.243849,2010-08-11,07:25:52,090,-65,-113,-51,0EA,0F,00CF,0000E612

And finally we now have version 1.3......

Decide whether or not to use GPS, it's now your call. Start it and stop it from the menu. The default on program start is that GPS is OFF, you will have to turn it on yourself. With GPS OFF, the date/time displayed/logged is the local system time. When ON the value is the UTC time supplied by the GPS interface.