User Tools

Site Tools


411report

loci

montage

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.

The source is available! Google Code project for loci

Overview : How it works

live

how it works live

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.

  1. The GPS receiver has to have a location fix
  2. loci on Windows Mobile reads the NMEA sequence from the GPS receiver from bluetooth emulated serial port
  3. loci on Windows Mobile gets the longitude and latitude and converts them into WGS 84
  4. loci on Windows Mobile uses integrated web browser passing the coordinates as arguments to connect to the loci.web application
  5. the loci.web php client checks the mysql database for all points near the location submitted.

in development

how it was developed

The components

logi gateway for windows mobile

loci gps fix

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.

loci website

website from within pda

All the data is stored on the website. This part of the project was written using PHP with a MySQL database.

parts

search.php

Searches the database for nearby coords. Also allows you to make new entries. It also allows you to edit, and delete old ones.

edit.php

This does the MySQL processing for editing a database entry.

add.php

This does the MySQL processing for adding a database entry.

delete.php

This does the MySQL processing for deleting a database entry.

MySQL

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 ;

GPS Emulator

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.

  1. Coordinates are selected using google maps and written to a text file on the web server.
  2. the gps emulator reads that text file off the web
  3. Generates nmea sequences form the coordinates in that text file outputs to serial

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.

411report.txt · Last modified: 2016/03/21 07:25 (external edit)