[ 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. |