Can't View all of RIL getcelltowerinfo data - Touch GSM General

I am unable to get values except LAC and CID using RIL.dlls RIL_getCellTowerInfo. All what i am able to see in other structure values is 0.
I have Windows Mobile 6 in HTC Touch (elf). I am creating application in C#.

Related

Implementing own fieldtest-like application

fieldtest.exe is widely-known engineering application showing network parameters. however it has quite user-unfriendly interface, so i was wondering how fieldtest is getting all these values (i.e. which methods from which dll), so it could be possible to write own fieldtest-like application. anyone is aware of methods fieldtest.exe uses to display all network-related data?
You may start with ril.dll interface. I suggest you to look into the fieldest.exe file for strings. It should be easy to disassemble it.

TimeZoneInformation hacking ...

I know how to hack the TimeZones in Windows OS family (98 to XP). But I am having dificult to do the same in WM6.
This is what I found:
1) HKLM\Time has a TimeZoneInformation value (binary). It seems to be the active time zone rules (set by SDK functions).
2) HKLM\Software\Microsoft\Clock has some values I don't understand.
3) I am brazilian and I am using "GMT-3 Brasilia". I cannot find that text in the registry. Not ever "GMT". Is it hardcoded?
I want to change the "GMT?????????" rules. In Windows, everything is in the registry. In WM, I don't know.
Any hints are welcome.
Júlio
The timezones in WM have a bit of a different structure.
1) The HKLM\Time TimeZoneInformation is the active time zone. It is a structure described here (you need some understanding of C/C++ data types to fully understand this).
2) The HKLM\Software\Microsoft\Clock just holds the settings for the clock app and is irrelevant in this case.
3) The timezones are listed by code, not names. Here is the full table. Note however that usually they are not stored in registry but only in the wince.nls file (that contains defaults for all regional settings). Only when a change to the timezone information is made it is placed in registry with the code as the key name.
levenum said:
Only when a change to the timezone information is made it is placed in registry with the code as the key name.
Click to expand...
Click to collapse
Items 1 and 2 are Ok. I am familiar with TimeZoneInformation structure.
But focusing on item 3: wince.nls is binary and not writeable. What change should I do? Could you explain the quoted text?
Cheers.
Júlio

CellID & Rxlev & GPS

The program updated. free to use ...
Hi all, I write a simple program for Telecom. Engineeger:
1) It can show CellID, Rxlev & LAC
2) base on the database (txt file), show cell site info.
3) GPS function
4) Open log file to record
The Log file format in :
Latidute,Longitude,CurrentTime,CellID,Rxlev
And you need to copy the files 2G.txt,3G.txt & site.txt to the root directory.
the text file at the main program directory ( eg. program file\fieldtestv1.2\).
Note:
Only test at my HTC P3600i phone, not sure for others ...
And sorry for my poor english ..
New Version ,It's surprised,But My PPC(model:O2 atom Life) Cell Id is Error。
Picture :
I have this error on my "Tornado" smartphone (WM 6.1).Why ?
By default, the program will read the files "2G.txt", "3G.txt", "site.txt" & "SiteNo.txt" when startup. so if you missing one of file , it will show the error message. you should create the 4 txt file to the root directory.
If you are a telecom engineer, you may entry the field data to each txt file or just create a empty file, it should be work !!!
that's a brilliant program.
btw what's the file format for the SiteNo.txt and is there a way to change the frequency of the log file to every minute or 30 seconds.
It would be great if you could do the site info match using the cellid ( CI ) and LAC. due to certain telco would recycle the cellid due to the 65536 limit.
Few more suggestion for the Log file.
1. Log file can be saved to storage card
2. BCCH info from the cells not from the txt file included in the log file
3. Logging frequency i.e 10 secs , 30 secs , 1 minute
4. LAC included in the log file
It is actually 8 to 10 db more when compared with an actual test tools.
bravo it's a good program.
Almost works, it crashes when i hit start or update, on my 8525 with ATT Wm6, files attached.
How do you read CELL ID ?
It is in the registry? where ?
could you show some code how to get cellid? which serial port to be opened?
On My HTC9000 PPC, I couldn't open COM2, No Com ports could be send AT
Cmd successfully
Some source code here ...
public static CELLINFO GetCellTowerInfo()
{
IntPtr res = IntPtr.Zero;
res = RIL_GetCellTowerInfo(hRil);
if ((System.Int32)res > 0)
{
rilCmd.CmdId = (System.Int32)res;
rilCmd.CmdType = RIL_CMD_TYPE.CELLTOWERINFO;
......................
.......................
if (!RIL.isInitialized)
RIL.Initialize();
RIL.CELLINFO CID = RIL.GetCellTowerInfo();
I have just started using this program as I am a telecommunications engineer.
I have emailed Frank for assistance and he has been most helpful.
The TXT files must be placed in the / directory - ie the "My Device" directory.
I have also noticed that if I use 2G or 3G mode on my phone, the program only looks in the 2G.txt file.
Try on my Hermes, on 3G band it shows only Cell ID, other failed, on 2G it shows MCC-MNC, Cell ID and LAC, but not signal level neither SC? Just reporting
Unsure why this is not receiving signal level, but the program does not yet have the functionality to extract BCCH/PSC.
All this program tries to match is the CellID - you need to have the BCCH/PSC in 2G.txt or 3G.txt
I am currently speaking with the developer to see if he wants some assistance to work on this program (i can test) - I am using a Touch Diamond
Thanks!
Dear Frank8080,
Thank you for your cellid sample program. I download and try it. This program run into my cht9100 very fine. I need one program to get cellid on wm6. Can you email your source code to me ? Thank you very much!
Does it work on wm2003 for my 818?
It does NOT work on O2 Atom, windows mobile 6 ...
hmmm... It crashed in my atom wm5.0.
Thanks for the bug reporting:
1) For the program can't read 2G or 3G txt, due to the program read the txt file base on the MNC(Network Code), so it seens that I need to add a setup page to fix the problem.
2) For can't decode the signal level (erwinpiero), I have tested on Dopod 838 Pro, it works ok. But I don't know why it's not work on your 838Pro.
3)For BCCH/PSC decoding, I still try ....
I am a mobile engineer in HongKong and the program just developed for my team use to perform the field measurement of the daily operation, so the most of function just base on the needs of my job. So if any other information you need, you may email to me, I will try to add the extra function to the program.
Hi frank, Top program, well done!! it's running on my TyTN II fine.
Could you post up some examples of how the 4 txt files should be built and a "few" examples of the info they should contain.
Also I see you're using RIL ... does your program update the CellID etc whilst the phone is "In Call". I have used CellTrack before and once "in call" the phone never updates apart from the RX level.
Thanks!!
Phil
Hi,
I haven't tried this sw, but I will do it soon (as soon as I have a PDA).
Just wondering if is possible to select what variables should be on the log (e.g.: active set, the cells that are being measured)...
thanks

[Q] WM6 registry file(s) structure

I need some papers on WM 6 registry structure, especially which file(s) is it held in on hard drive, how is such a file built and what limits registry data types have (e.g. max string length, allowed characters, multi string separator, etc.). Where can I find it? I was looking at MSDN, but couldn't find that detailed information.
Windows Mobile 6.0 is a superset of Windows CE 5.0. The registry can be split across more than one file.
http://msdn.microsoft.com/en-us/library/ms886080.aspx

[Q] for "jwoegerbauer" about installing "autorun" manually

hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
antdavison said:
hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
Click to expand...
Click to collapse
Adding an SD-Autorun feature to your GPS (which is running WinCE 6.0) indeed makes sense, because the app you start via "Autorun" simply overlaps default app as was intended by OEM. Means, it doesn't hurt anything.
Now to your questions:
1. ceSD2577.exe (extracted from MioPocket 4.0 FV package) must be installed on your GPS's nandflash in <nandflash-folder>.
2. With a Windows registry editor ( use CeRegEditor ) you simply import to your GPS's registry a .REG-file you created with Notepad with contents as following:
Code:
Windows Registry Editor Version 5.00
[COLOR="Red"]<-CR Carriage Return[/COLOR]
[HKEY_LOCAL_MACHINE]
[HKEY_LOCAL_MACHINE\init]
"Launch255"="<nandflash-folder>\ceSD2577.exe" [COLOR="Red"] <- <nandflash-folder> here is placeholder for the folder you created[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
3. On SD-card in its root create folder 2577, and put there the package containing "Autorun.exe","Autorun.mscr" & Mortscript.exe
4. If SD-card is left in GPS, everytime GPS is booted and SD-card gets initialzed, then Autorun.exe present in folder \2577 of SD-card will be executed.
thank you so much
for taking time to reply soooo quickly ... i did not really understand the launch and dependency indices, but your MP4fv code was, and suggested regedit will, be very useful ...
check out my raster maps on youtube if you have time ... new zealand government have just released hi-res (< 1m) aerial orthophotos for 95% of the country for the cost of the hard drive they send it to you on, so could be porting these to iGo Primo for years
thanks again, I am very grateful
works flawlessly, you are a genius ... thank you
the OEM menu is now totally invisible until i exit iGoPrimo
just need to make some matching green-theme splash screens for power up and iGoPrimo loading screen, and my life will be perfect
so i am looking for some "green theme" Apical menu bitmaps, the menu looks like the attached image
the 800x480 menu files i am looking for are
residentflash2-bin-Main-Fore2-*.bmp
residentflash2-bin-Main-Animate2-*.bmp
residentflash2-bin-Main-MainLayer2-*.bmp
and maybe any *.ini file relating to GPSAni*.bmp
mine (AT12/atlasVI) are all archived into a single *.bin file, which i cannot unarchive, but in earlier versions of this shell (maybe AT10/atlasV), they are separate files ... these files will give me enough menu elements to make some matching splash screens for power-on and igoPrimo load .... i don't need to modify the apical menu itself
davison[dot]antony[at]gmail[dot]com
----
hi-res aerial orthophotos in igoPrimo (150km x 130km area, <1m per pixel resolution)
youtube[dot]com/watch?v=urX3rERYZf4
understanding the launch and dependancy indices
from
austech[dot]info/gps/31080-gps-launching-program-6.html
source is
blogs[dot]msdn[dot]com/b/mikehall/archive/2007/01/04/ce-6-0-booting-processes-with-command-line-options.aspx
==================================================================================
CE based devices have a couple of options for booting applications at startup.
1. The Registry.
The first option is to use the registry to launch processes during the boot process of the device, the registry key for launching applications is HKEY_LOCAL_MACHINE\Init - the registry approach has a couple of drawbacks - the first issue is that there is a dependency chain within the boot process, processes are started and need to signal back to the o/s that the process has launched (using the SignalStarted API) so that other dependent processes can also start - here's how this looks in a snippet from a device registry.
[HKEY_LOCAL_MACHINE\init]
"Launch20"="device.dll"
"Depend20"=hex:0a,00
"Launch30"="gwes.dll"
"Depend30"=hex:14,00
"Launch50"="explorer.exe"
"Depend50"=hex:14,00, 1e,00
Take a look at the "Launch50" line, this launches "explorer.exe", the standard Windows CE shell that looks somewhat similar to the Windows desktop shell - The Explorer process has dependencies on hex:14 (20 decimal) and hex:1e (30 decimal), this maps directly to the Launch20 and Launch30 processes - explorer.exe will not be started until the processes associated with Launch20 and Launch30 are started and have signaled the o/s that that have started, an application started through the registry must call SignalStarted to allow any dependent applications to also launch - an application launched through the registry gets its launch number (50 in the case of the Explorer shell) passed as a command line parameter - this is of course passed as a string, not a number, the SignalStarted API needs to pass a DWORD value as its parameter, so a process would use SignalStarted similar to the following.
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// Do some work here...
SignalStarted(_wtol(lpCmdLine));
The second drawback is that processes launched through the HKLM\init registry key cannot be passed any additional command line options beyond the launch key value which is then passed to SignalStarted by the launched application.
2. Startup Folder
The second option is to drop your application (or a shortcut to an application) in the operating system Startup folder (this is only implemented in the Windows Explorer shell) - The code that walks the Startup folder looking for processes to start can be found here - C:\WINCE600\PUBLIC\SHELL\OAK\HPC\EXPLORER\MAIN\exp lorer.cpp - take a look at the ProcessStartupFolder() function, it should be fairly easy to lift this code and implement your own startup folder code.
The advantage of using the Startup folder is that the applications don't need to know about the boot sequence of the o/s, don't need to be aware of the launch dependency chain, and could (if a shortcut is used) be passed command line options.
The downside of using the Startup folder is that all processes within the startup folder are launched at the same time - there isn't a dependency chain, or time delta betweeen processes launching - this could be an issue in some circumstances - let me give you an example - you may want to boot a CE device image and then connect to that device image from VS 2005 (so you can deploy/debug some managed or native applications), if you were to launch ConManClient2 and CmAccept from the startup folder you would have three minutes to configure VS 2005 with the correct IP address and then connect VS 2005 to the device - you might want to delay the launch of ConmanClient2 and CmAccept until the device has a valid and active IP address.
3. (did I say there were a couple of options?) SvcStart Services Sample.
John Spaith posted on the launch issue back in December 2004 - John wrote a sample called SVCSTART whose sole purpose in life is to start other applications with a delay period that can be configured through the registry - this sample was initially added to the CE product back at CE 4.1 and is still available today in CE 6.0 - C:\WINCE600\PUBLIC\SERVERS\SDK\SAMPLES\SERVICES\SV CSTART - it could be a little fiddly to get this built/added to your o/s image if you are just getting started with CE 6.0 development.
4. Project Socrates - AutoLaunch
To assist students taking part in the ImagineCup 2007 competition (and also to make it easier for any developer to launch applications on their device with delay, command line options, and also waiting until the device has a valid IP address) Jim Wilson and I have developed a simple application called AutoLaunch - the AutoLaunch application comes in a handy Sub-Project form so can easily be added to an existing CE 6.0 workspace. The functionality is similar to the SvcStart sample written by John Spaith but does have a couple of minor differences - the first is that the AutoLaunch program is launched through the HKLM\Init registry keys (much like any typical startup process) - the registry keys for adding AutoLaunch to the startup sequence are included in the sub-project .reg file, so you don't need to worry about this.
The second difference is that the AutoLaunch process waits until the device has a valid IP address before launching any processes - the reason why this is useful is that we wanted students to use their reference boards without needing a second monitor, keyboard or mouse (in effect the device is booting headless even though the CE desktop or launch application is being displayed) - in this case we want to launch the CE Remote Display application (CERdisp.exe) on the device with the command line "-c" (connect) which then broadcasts the device IP address/name to a listening desktop CE Remote Display application.
The CE Remote Display application can be found in the CE 6.0 catalog by searching for "cerdisp", the SYSGEN for the component is (strangely enough) SYSGEN_CERDISP. The desktop CE Remote Display application can be found here - C:\WINCE600\PUBLIC\COMMON\OAK\BIN\I386\cerhost.exe [NOTE: The CE Remote Display application is not the same as RDP/Remote Desktop, although RDP is supported as a client side application on CE 6.0 (SYSGEN_RDP)].
In the sample below we're launching the CE device side Remote Display application (cerdisp) with the command line "-c" to start connected, with a timeout of 0x1388 (5000ms, 5 seconds), and also starting the CE command prompt (cmd.exe) with a delay of 0x1f40 (8000ms, 8 seconds) - it would of course be trivial to also add ConmanClient2 and CmAccept to the launch process list.
[HKEY_LOCAL_MACHINE\Startup]
"Process1"="cerdisp -c"
"Process1Delay"=dword:00001388
"Process2"="cmd"
"Process2Delay"=dword:00001f40
Here's how the desktop CERHost.exe application looks when the device boots and runs the "cerdisp -c" command - notice the name of the device and the device IP address are both displayed in the Remote Host application (the IP address being displayed here is very useful for plugging into the VS 2005 Device Properties dialog!).
And to round off the blog post here's the Remote Display application running on my Vista desktop showing the CE 6.0 desktop - note that I can now use my desktop mouse and keyboard to remotely control the CE 6.0 device!
Using AutoLaunch and the CE Remote Display for hands on labs/training that use reference boards instead of the Device Emulator may be quite useful!
antdavison said:
works flawlessly, you are a genius ... thank you
Click to expand...
Click to collapse
Glad to hear this. Thank you.

Categories

Resources