Journal of the Association for Computing Machinery at UIUC
foo
foo
[ Home ]

BUG@UIUC: The Jason Project

By Matt Wronkiewicz

The Jason Project is the Be Users Group's project for Engineering Open House '99. The Jason Project combines a GPS receiver with the multimedia capabilities of the BeOS. Our system displays position data in real-time and in a variety of formats. The Jason Project is composed of a driver which talks to the GPS hardware, and a set of viewers that turn the position data into useful information for the user. All these applications are designed to be interchangeable, so users can see their positions in several ways at once, or they can plug in a different receiver without restarting the OS or any of the viewers. The interchangeable design also assisted in the development process by breaking down the system into manageable pieces. The result of our work is a system that could not only be used by ommercial developers for mapping and surveying applications, but could also help visually impaired people to navigate on their own.

GPS is an acronym for "Global Positioning System", and was originally developed for the US government for military applications. GPS works by reading signals from a constellation of satellites in earth orbit, and triangulating the position of the receiver. Recently the GPS satellites were made available for public use, resulting in handheld devices that cost less than $200 and plug into your computer.

We wrote several viewers to display position information. One of these viewers shows a scrolling map, along with a compass to show direction. This viewer is extendable to show several maps, including elevation, terrain, cities, and roads. Users can also use this viewer to display trip data for both planning and reporting. Another viewer displays a rotating globe in three dimensions, marking your current position with an arrow and plotting travel routes on the surface of the globe. The viewer also shows satellites orbiting overhead. The system also includes a logger application that allows users to save trip data, then put it in a report or display it on a map. We have planned some additional viewers to assist people with navigation. A viewer that could assist people with visual impairments could take position data and read it out through a speaker. A path could be defined, for example, and the viewer would tell the person if he is straying to the right or left of the path. A map generator application could build maps based on information the user enters. The architecture of the Jason Project allows people to create new viewers without knowing the technical aspects of the GPS system.

The GPS driver is based on the server model of the BeOS. The server model adds OS functions using background applications that are loaded as needed. In Windows, for example, an application that adds to the OS is the Windows Explorer. Our server maintains a connection through the serial port with the GPS receiver, then sends the data it receives to applications which have subscribed to it. To subscribe, an application sends the server a message indicating the type of data it wishes to receive. Some of the types of data available from the GPS are your location, the current time, and the locations of GPS satellites in range. Our server allows multiple applications to access the GPS at the same time, and informs those applications of errors.

Development of the Jason Project loosely followed the Evolutionary Prototyping model with the design centered around a series of applications, each one small and having a specific use. By breaking up the system, and by keeping the interfaces between the applications small and well defined, we were able to assign responsibility for each app to a single person. This made coordination simple, and reduced dependencies on the work of other people. Generally, each person designed one application, following a single communication model, then created a user interface. Once the interface was complete, the application was connected to the server to receive data. Similarly, development on the server began by simply reading out data. After the hardware interface was complete, the parsing and subscription functions were added. The completion of some applications long before others, with no disruption on development, illustrates the success of our model.

You can find the Jason Project at the Be Users Group table at the Engineering Open House, or here. The Be Users Group at the University of Illinois is dedicated to helping new users and developers work with the BeOS. The BeOS is an operating system that runs on today's PCs and Macs, and gives users unprecedented flexibility and power when working with multimedia applications.