PeekPoket is a free open source application ( [url removed, login to view] ) that reads signal strenght from Wifi spots around your PDA/mobile.
This is my first offer in getafreelancer.com. For private use I would like to do simple VC++ tasks:
* Remove 1 option from OPTIONS tab (FONT SIZE) and add, instead, a new combo called "ALGORITHM". It will have 2 options "LATERATION" (default) and "MIN-MAX".
* Read all RSS (signal powers) from peekpocket data structure (see files: [url removed, login to view] and [url removed, login to view] to learn structs and array used) and check which Wifi are in my own database. My database would be a TXT file (or SQL database) like 2nd attachment.
* We have to guess distance through 'n'-factor with: distance = 1 / [log (-RSSI/(10*n)) ]
If there are 3 MAC coincidences my app should check ALGORITHM used. We'll only implement "lateration" for now.
Lateration: Knowing 3 points and their distances we get a location point (x,y) ( [url removed, login to view]:Trilateration ) very easy.
If there are only 2 coincidences we'll get 2 points (x,y) (2-circle intersection algorithm).
If there are only 1 coincidence result point will be the Access point location and radius = distance.
[Instead of implementing all that 3 cases you can do 3-circle intersection algorithm, but I think this would be much harder]
* Add a 3rd tab to application where it would load a floor map (BMP file). Kind of: (see attachment)
You have to draw a dot in such coordinates (x,y). Maybe you can add 'zoom' option to this tab?
NOTE: Application is for PocketPC/WindowsMobile so it uses Compact .NET Framework