|
Winter Quarter 1996 Document Author: Project Sponsors: |
CyberGuide Team:
Matt Howser (Architect/Programmer/Manager) |
Figure 1: Sample architecture drawing (CyberGuide)
CyberGuide is a hand-held tour guide system conceived and designed to be as flexible and interactive as possible. It can be broken up into several distinct components, each of which is required for full functionality. Figure 1 shows the distinct parts which make up the complete CyberGuide system, leaving one part blank for enumeration by another team.
The database component is the heart of the system, serving data to most of the rest of the system. The component reads from the database on the local (or remote) disk and sends the data to the interface and the display. The display can then send a query back to the database based on user input.
The interface is the control structure between the database and the user display. It manages the data requested by the user and sends it to the display. This component knows how to interpret user requests and translate them into data pulls from the database.
The display is the main part from the user's perspective. It displays the map and any information about projects requested by the user. The map is read from a pre-written *.INI file which lists the important characteristics of the room. Utilizing the map, the user can select what information he wants pulled from the database or where he wants to go next.
In using the system, the user will look at the map read from the INI file, and decide which project to select. The CyberGuideForm will provide him lists to select from, whether it be a list of projects or staff. It will also display a short abstract to help inform the user of what he is looking at. The one selected looked-up by the LookupForm, which will grab data from the database for use by the User.
The serial link, while a very important component of CyberGuide, is being implemented separately by another team. This will be seamlessly integrated through the magic of object-oriented development at the proper time. Currently, it is planned that the link will provide position information and possibly a two-way link to a remote server. The actual implementation of this remains to be seen.
Because of the object-oriented nature of Delphi, the design specification will be presented in object model format. See also the Prototype documentation for additional information.
function TCyberDb.get_project_summary {Returns the summary of the specified project}
function TCyberDb.get_project_title {Returns the title of the specified project}
function TCyberDb.get_project_abstract {Returns the abstract of the specified project}
function TCyberDb.get_project_staff {Returns all staff on project}
function TCyberDb.get_projects {Returns all projects of a staff member}
function TCyberDb.get_all_projects {Returns all projects in database}
function TCyberDb.get_all_staff {Returns all staff in database}
function TCyberDb.get_project_info_source {Returns a TDataSource for ProjectInfo}
function TCyberDb.get_staff_source {Returns a TSourse for staff}
procedure TCyberGuideForm.SelectStaff {Bring up a list of staff to select project}
procedure TCyberGuideForm.ProjectNameDblClick {Display current project's abstract}
function TLookupForm.DisplayProjects {set Lookup for projects}
function TLookupForm.DisplayStaff {set Lookup for staff}
This is the main CyberGuide screen. As you can see, the map occupies the upper part of the display, with the control occupying the rest of the screen. The zoom, move and rotate keys all allow the user to manually manipulate the map display. In addition, he can pull up a list of projects or staff using the labeled buttons. The text appears in the boxes directly below the map.
This is the project list screen brought up when the user clicks the "Projects" button. It lists all the projects in the database and allows the user to select the one he wants more information on. Clicking the staff tab brings up the staff listing, which is similar to the project listing.