loci is Latin for places. Knowing about places is what loci is about. The eventual goal is to make the user aware of any the information available for a location, as well as contribute their own knowledge about locations.
This shows how loci works in the real world. loci was designed to be as non platform dependent as possible. However, for the scope of my project I only concentrated on getting my particular setup to work.
Let me walk through what has to happen for loci to give a user information about their current location.
The job of this application is to read the GPS location, and then go to the loci website for those coords. This was written in C# within Visual Studio 2005. It can run on Windows Mobile 2003 and up.
All the data is stored on the website. This part of the project was written using PHP with a MySQL database.
Searches the database for nearby coords. Also allows you to make new entries. It also allows you to edit, and delete old ones.
This does the MySQL processing for editing a database entry.
This does the MySQL processing for adding a database entry.
This does the MySQL processing for deleting a database entry.
loci.sql
CREATE TABLE `map` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `lat` double NOT NULL, `lng` double NOT NULL, `msg` varchar(10000) NOT NULL, `cat` varchar(1000) NOT NULL, `title` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
gpsemu.py
Because it is difficult to develop for something that is wholly dependent on GPS without having some way to control the GPS receiver I wrote a GPS Emulator in Python. This is a overview of how it works.
Because it is not possible to read the serial port that data is being written it becomes necessary to use a null-modem cable. c0mc0m is a open source null modem cable that was very useful.