CellID & Rxlev & GPS - 8525, TyTN, MDA Vario II, JasJam General

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

Related

Yet Another CellID Application

yes, but based on a flexible set of methods
-Using RIL (GSMTestMode)
-Using RIL_GetCellTower
-Using RIL Notifications
-Using RIL (fieldtest) -> reply structure has to be found
-Using offset method (few structures included)
-Using COM port
The project is based on:
-cellguardian.dll and cellguardian.xml : How to get CELLID on devices
-cell2latlon.dll and cellDb.xml : Calculate lat/lon using CELLID
-gsmcelluloz.exe : the main exe
-gsmcellulozCF.exe : the same, as PoC, in CF, but very simple
http://usuc.dyndns.org/tv/gsm/gsmcelluloz/
DEBUG mode creates a lot of log in \Temp
The device method configuration is in a file called "cellGuardian.xml"
Offset version works only with the "ALL" parameter (I don't know what defines the offset, which component version?)
Many things should be incomplete (like documentations )
Here is a google map (result from logging) made using a GSMTestode compatible device:
http://usuc.dyndns.org/tv/gsm/releve_poly.php
I'll write a quick documentation on how using cellguardian.dll (the brain from the cellid-getting), and cellguardian.xml.
I'm also working in antenna position interpolation but it's an harder process... (for now the cell2latlon works but uses a very simple barycentric algorithm)
Sample walk:
http://usuc.dyndns.org/tv/gsm/testParcours.php
Have fun, I hope to have some fieldtest compatible device log in order to decrypt the structure
If your device is still not working... Tell me!
The source will be released as soon as the modaco challenge will be finished (I hope to win a device with cellguardian.dll... or a sticker )
Did not work for me Tornado with Crossbow-Rom, i think you may ask maniac for the Offsets, he created CellProfileSwitcher, an very useful SmartPhoneTool with a huge list of compatible devices.
In Combination with your Tool it may be useful to create my own "CellMap", to see my Homezone or some other kind of zones, switched by CPS,yea.
But the Screenshots looks nice,...
Thank your for another nice way to waste my time with my lovely Phone,hehe...but i need the offsets...dont know how...
Have you tried "Find offset" in the 8FFB0000-8FFC0000 range?
8FDC0000-8FDD0000
8F1D0000-8F1E0000
8A3B0000-8A3C0000
8A4B0000-8A4C0000
8C0D0000-8C0E0000
Are other possible ranges.
The result will be contained in a file located on \Temp
Possible structures (if you define your configuration in cellguardian.xml)
TORNADO
TYPHOON
IPAQ
MPX220
WIZARD
Offset method will be activated once you'll have removed other options (COMPORT...) from the config file.
Remember that as long as I don't know what defines the offset, the only version that works is "ALL". This field will be used once I'll be quite sure the component version defines really the offset.
I hope to improve it, but also to let a chance to the user to configure it by himself.
Quick help page
I made a quick help page to help ppl finding the offset until I find some cleaner way to find it...
http://usuc.dyndns.org/tv/gsm/help/
After this, just modify \Program Files\cellguardian.xml
and replace
<device name="HTC Tornado">
<OEMID>Qtek 8310</OEMID>
<method type="RILHTC1"></method>
<method type="RILTOWER"></method>
<method type="COMPORT"><port>COM9:</port></method>
</device>
Click to expand...
Click to collapse
by
<device name="HTC Tornado">
<OEMID>Qtek 8310</OEMID>
<method type="OFFSET">
<offset version="ALL" structure="TORNADO">YOUROFFSET</offset>
</method>
</device>
Click to expand...
Click to collapse
Where YOUROFFSET is the offset you found (try the adresse ranges I suggested above)
Let me be your tester
Hello!
I have found your excellent project and I am going to test it and share with you results. My phone is smartphone - HTC S310 (know also as HTC Oxygene, SPV C100).
When I am launching the application I get error:
Cannot load \Program Files\GSMCelluloz\CellGuardian.dll:0x7e126
Is your app suitable for smartphones? I have downloaded the
GSMCelluloz_SP5_R.CAB.
Maybe I should use:
GSMCelluloz_WM5_R.CAB?
What offsets sould I put to test my phone and which method?
Best greetings and congratulations for your job!
RA
Solved
abramq said:
When I am launching the application I get error:
Cannot load \Program Files\GSMCelluloz\CellGuardian.dll:0x7e126
Click to expand...
Click to collapse
Hi again!
The problem was because I've installed app on card, not on device memory.
Cell searching works excellent, on my phone works GSMTestMode method (I am going to find out the differences between methods, but don't know where).
By the way - user interface for smartphone (non-touch display) looks like not fnished - 'backspace' keys doesn't work and it is difficult to leave edit mode too.
Will test it more and make some enhancement
Best greetings and please keep working
JA
P.S.
What Compact Framework needs the CellulozCF? I have the 2.0 and the app doesn't work (I get the unexpected error: Microsoft.AGI.CommonMISC.HandleAr() in System.Windows.Forms.Control._InitInstance.
I think the best cell id application from all times ever would be that which can change phone profile depending from location. I saw someone here is trying to do it, but will not be free, so no use. An app like that will eclipse all other... it will be like the next step in mobile evolution. Probably japanese already have it.
You are outDated...this idea is really old...lookat maniacs Homepage;
Maniacs SmartPhoneTools
...but for now not useable on devices without TiOmapProcessor
But PhoneAlarm by PocketMax supports different [email protected],too.. but cost money and hard to configure,no learningfunction,no neighbourcells and you have to add every Cell one by one...
but youre right,too; Actions by Locations are always missed in Apps with Notifications or ProfileChangingFunction.

Get Cell ID program

Hi all,
Here is the program to show the current CellID and Rxlev.
1) the cell database 2G.txt & 3G.txt should be placed to the root dir.
2) the site info. & SC are selected from the txt file base on the CellID
If you got any bugs, please report, I will try my best to improve (if I can) ....
sorry, I am not a professional programmer ....
More information that I only test it on HTC P3600i phones, it should be work on Hermes ....
Ок, I have idea.
Lets develop Today Plugin that display Cell ID and comment (Cell ID 20001 "Home" or 200201 "Work")
So, we get GPS-Cell!
P.S.: On my Wizard I have a problem - program work - when start - "Program will be closed" and too many error messages
P.P.S. Before error i see BS info - program work - but 1 or 2 sec only...
Good Idea, I wish to have such a Today Plugin.
i have same problem:
Error says: Install NETCFv35.Messages.EN.wm.cab
Kpyto said:
Ок, I have idea.
Lets develop Today Plugin that display Cell ID and comment (Cell ID 20001 "Home" or 200201 "Work")
So, we get GPS-Cell!
P.S.: On my Wizard I have a problem - program work - when start - "Program will be closed" and too many error messages
P.P.S. Before error i see BS info - program work - but 1 or 2 sec only...
Click to expand...
Click to collapse
The Capture Screen
The program crashes in my device too (SPV m700 / HTC 3600)
Seems cool, by the way. Reminds Celltrack on tornado...
The 2g.txt & 3g.txt must copy to c:\
eg. c:\2g.txt , c:\3g.txt
sourecode
Hi,
This looks really good!!! .
I've been trying to do this myself for the last few days as a mini project and I keep ending up down dead ends! Could you possibly send me the source code or perhaps some hints on how to get started!!!!
Thanks !!!!
Can you get me sourecode? I am learning about this.so,help me!
sourecode mail to me?Ok. [email protected]
frank8080 said:
Hi all,
Here is the program to show the current CellID and Rxlev.
1) the cell database 2G.txt & 3G.txt should be placed to the root dir.
2) the site info. & SC are selected from the txt file base on the CellID
If you got any bugs, please report, I will try my best to improve (if I can) ....
sorry, I am not a professional programmer ....
Click to expand...
Click to collapse
Amazing work Frank!
I'm writting an open source app named RemoteTracker (http://forum.xda-developers.com/showthread.php?t=394203) and I would like to use your code inside this project. If you agree please contact me.
Cheers,
Joubert

[Updated November 09] Route Tracker

Route Tracker
With Route Tracker you can create routes and add several route points containing text and/or images from your current position. If gps is available it will take the current longitude, latitude and altitude. Without a gps module information of the current cell id and the location area code are saved.
For each route a report can be created which can be saved as a html file.
prerequisites:
PocketPC with .net compact framework 2.0 and SQL Compact Server 2005 (already installed in WM6 professional)
(tested on a WM6 professional device without gps)
known issues:
after uninstall the db and the images will not be deleted
getting MyLocation can time out
timer greater than ~15 seconds doesn't word when device is in suspend mode
in the view form only the map type for default route maps is working
next features:
automatic point adding by distance (every x meters)
more robust MyLocation
geo game (show taken image and try to find the place on the map)
Any comments are appreciated.
version 1.0.5
new view showing the whole route in one image using Google Maps (markers or path)
this view can be saved to an image file
check its settings form for parameters
version 1.0.4
new setting: Use Google's MyLocation for report GMaps and for exporting to kml. On devices without gps the cell id information will be used to get an approximate location. (default on and will use internet connection!)
version 1.0.3
new report "GMaps" using google maps (will try to use internet connection!)
updated date set to last saved route point
additional setting: Flash on Saving (flash on main screen)
version 1.0.2
additional settings: check gps, vibrate on saving
saving settings: seconds, minutes and vibrate on saving
show time with date in the grid
version 1.0.1
A report can be saved to kml for viewing in google maps.
In Menu/Auto Report... timed saving can be activated.
Thanks,
heliosdev
Anybody tried?
Would be interesting to know if the gps information gets stored and if there are any issues on devices with qwerty hardware keyboard (regarding screen rotation).
Thanks!
New version is up. If you have difficulties with the gps data, try to start gps with another app and after having enough sat fixes try Route Tracker.
Nice now this app work, but here some ideas:
A Sign that shows a record was made
Start Time on the main screen
Show Cell ID or GPS is used
Other Ideas will follow
Thanks for the input! New version is up.
very cool! i will be certainly using it.
nir36 said:
very cool! i will be certainly using it.
Click to expand...
Click to collapse
me too. will report back feedback. thanks.
heliosdev said:
Anybody tried?
Would be interesting to know if the gps information gets stored and if there are any issues on devices with qwerty hardware keyboard (regarding screen rotation).
Thanks!
Click to expand...
Click to collapse
It works on my Diamond without any problem.
Great but here some Ideas:
Show the last position time in the grid (Last position time saved at
Vibrate is good, but better would it if you make a flashing dot on the main screen because if you use it in a carholder its not so go.
(Or you can add vibrate too under settings)
And Upload direct the cab file, its easier to use!
Thx and work on!
didn't work on my vogue - got a net framework error.
@all
thanks for your input!
@fredcatsmommy
what is the error message saying? Can you go to menu/settings and press the 'Check GPS' button?
heliosdev said:
@fredcatsmommy
what is the error message saying? Can you go to menu/settings and press the 'Check GPS' button?
Click to expand...
Click to collapse
okay, here's the message I get when trying to run RouteTracker (which does not open at all):
Error
RouteTracker.exe
MissingMethodException
File or assembly name
'System.Data.SqlServerCe,
Version=3.0.3600.0, Culture=neutral,
PublicKeyToken=3BE235DF1C8D2AD3',
or one of its dependencies, was not
found.
Well, it looks like sql is not installed on your device! I've seen cooked roms which removed this to save some space...
What .net version do you have installed? (run /Windows/cgacutil.exe)
heliosdev said:
Well, it looks like sql is not installed on your device! I've seen cooked roms which removed this to save some space...
What .net version do you have installed? (run /Windows/cgacutil.exe)
Click to expand...
Click to collapse
I'm using the ppckitchen to cook a custom rom and have included both sql, 3.5 supposed to be included and I also select .netcf 2. Maybe that's a problem, but I've not ever gotten that message with any of the other programs I use that require .netcf. When I run /Windows/cgacutil.exe it says 2.0.7045.0
Will this work with .NET 3.5 or only 2.0?
I get this error using the ROM in my sig and SQLce 3.5 added.
Code:
An unexpected error has occurred in RouteTracker.exe.
Select Quit and then restart this program, or select Details for more information.
File or assembly name 'System.Data.SqlServerCe, Version=3.0.3600.0, Culture=neutral, PublicKeyToken=3BE235DF1C8D2AD3', or one of its dependencies, was not found.
Here a new Idea
Make a Today Plugin that shows CELL ID, LAC, MCC, MNC or GPS and a count down. It shows new recorde made in xx.xx.xx (ex. 00:00:10 = 10 sek.)
Well, I'm using C# .net and I'm not sure if this can be used for today plugin development.
Btw, new version is up!
new version is up!
Tests with devices without gps are appreciated! (internet connection needed)
(report GMaps and save report (in Report form) to kml and view it with google maps/earth on desktop)
Nice,
works fine!
But can you set a dot on mylocation?
Like here http://cellid.schlapa.net
Also show the cellID data on the Gmaps Screen.
Thx wait for next versions ...
Dtrieb
Hi thanks for this app!!!!
Is it possible to get bigger screen shots ?
Thanks dude

Cell id Command line

Hi All,
Is there a tool which can get Cell id and LAC from command line for it to be used by other apps
Say I have script (mortscript)
Then I can call <Cellid APP> and get Cellid location where the device is
Then take action based on the Cell id.
Idea is to track the phone and let the owner know where all the phone on a web page.
I go from HOME -> LOC1 -> LOC2 ->Office (everyday)
Incase phone shows a path HOME -> LOC1 -> LOCX -> <UNKNOWN> .. the send a TEXT(SMS)/update page etc ... to alert the users.
Kind of way to make your phone secure.
Any suggestion if it can be done with any exiting tools and mortscript etc ...
http://www.xs4all.nl/~itsme/projects/xda/tools.html
has something called riltest ...
riltest - dumps all kinds of info from the phone via ril
But the zip files does not have this file... Could any one let me know if this file is available any where else.
Ok Got a riltest from Another forum which does similar ... ALMOST....
what it can do is dump all to a LOG file ... I am using a Mortscript
1. Run the app
2. make app to dump logs
3. get the details from the file.
4. close the app.
Now loop this for with a sleep ...
But still looking for better way.. Attached is the file for anyone who is looking for similar stuff.
Hi,
I too was looking for something in this line and ended up writing it myself.
Props to this chap for the code to get me started:
http://dalelane.co.uk/blog/?p=241
Basically you call 'RilCmdLine.exe' with a parameter indicating what field you want. It returns the field as an int to MortScript (I think you need MortScript 4.3b1 or above?).
Supports LAC, Country Code and Cell Tower ID.
The zip includes a test mortscript - you may just need to edit the path to RilCmdLine.exe
(Source code on request. I may even support it )
Hope this helps!
onion
Hi
Thanks for the exe file. However I am unable to see any result when I run the exe/mscr on my mobile (HTC 3300 WM6). I did edit the path also executed from cmd line on mobile.
Also Mortscript RunWait and Run will not return any results as per the Mortscript doc. So the result has to be redirected to a file.
Could you please check and let me know if the exe is required to be executed with different parameters.
Thanks
What version of Mortscript are you running?
I had to upgrade to 4.3b2 to get the return code from the exe.
Get it here
http://www.sto-helit.de/index.php?module=download&action=view&entry=125
In the notes for b1 mentioned the return code functionality being added.
Hope this sorts it for you
Perfect !! Thats works perfectly ... I updated to MortScript you have suggested.
Excellent Work !! ... Really good. Thanks man
Will it be possible that if I don't pass any Command line parameter ... Can I get all the values... Like CELL ID, LAC etc ..
Glad you like it
Unfortunately you can get all the values at once (at the minute you can only return numbers from the exe, so there is no way to separate them).
My original idea is something along what you suggest - if I get that working I will post a new exe up here.
Thanks
Thanks onionfx! This is just what I was looking for as well. Trying to do something similar to what wishme said. ;-) The common profile switchers out there are not very useful to me because I'm more of in a rural area, and cell towers are farther apart, so my home and work cellid overlap sometimes, so I want to also take into account signal strength to see if I can fine tune it better. Will probably use Mortscript since it's the only thing I've learnt to code with for Windows Mobile.
I'm bookmarking this page to see if you eventually get the prog to output all in one line (and reduce the CPU churn of calling the same prog several times).
BTW, how about also returning nearby cells in order of signal strength? That would be awesome to fine-tune your location even more!
Good work!
Cesar
Doing some thinking about this
I can't see any way of returning all the values at once.
The C code can only return an int in the range -2,147,483,648 to 2,147,483,647 and my CellID and LAC are 5 digits each so if they ever started with a digit greater than 2 I couldn't return it.
The 2 best options I think are writing another exe that dumps the data either to a file, or to the registry in a similar way as riltest above, but without the UI part.
Then write a script that could be included, and which has nice subs to access each parameter (or you are free to write your own script calls to do this).
I'm tending to the file as I imagine reading from the registry is a bit slower than reading the file (in one go and storing all the params as variables)?
Also I can do less damage if I use a dedicated file!
Anybody got any better ideas, or has a good reason to use the registry?
Goodnight
Are we talking about GSM signal strength
REGISTRY entry: HKLM\System\State\Phone\Signal Strength (DWORD value)
More here: http://wiki.modaco.com/index.php/Windows_Mobile_5_Registry_Tweaks
Also is it possible to get all other the cellids at any point not the one phone is connected to ? I have not see any app providing this info.
Except for Google maps on mobile (without GPS) it uses triangulation technique to get the Latitude and longitude of a location with all cell id locations available. for this method to work we requires atleast 3 cell id.
Does RILCELLTOWERINFO gives details about other towers also ?
I wonder what the requirements are for the command line tool?
It locks up when I run it on my MotoQ smartphone.
onionfx said:
Supports LAC, Country Code and Cell Tower ID.
The zip includes a test mortscript - you may just need to edit the path to RilCmdLine.exe
(Source code on request. I may even support it )
Click to expand...
Click to collapse
I can't get this to work. I get "-1" for all 3 values. Anyone offer any reasoning as to why this may be? I believe my ROM includes .Net framwork, but I'm not sure how to check.
Thanks
onionfx said:
Basically you call 'RilCmdLine.exe' with a parameter indicating what field you want. It returns the field as an int to MortScript (I think you need MortScript 4.3b1 or above?).
Supports LAC, Country Code and Cell Tower ID.
The zip includes a test mortscript - you may just need to edit the path to RilCmdLine.exe
(Source code on request. I may even support it )
Hope this helps!
onion
Click to expand...
Click to collapse
Excellent work! Thank you!
Thanks onionfx for your contribution. I might need it for a use similar to the one described by wishme.

[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