GridPad Application Development
From the Original Pages
Click a page to enlarge · Alt-click to open the full issue
Editor’s Note: Mary Ricci is a programmer for Distributed Micro Systems, Inc. (DMS) where she develops pen-based software for the GridPad. She can be contacted at DMS, 433 Airport Blvd., Suite 434, Burlingame, CA. 94010.
The following article describes a pen-based application developed by DMS that runs on Grid Systems’ GridPad. DMS developed the application for the San Francisco Department of Building Inspection, which is using the application for collecting data during building inspections.
Distributed Micro Systems (DMS) has developed a turnkey pen-based system that uses the GridPad for data collection for the City and County of San Francisco Department of Building Inspectors. The project’s objective was to streamline and automate the inspection process by reducing necessary paperwork. The need for the project was hastened by the October 19, 1989 Loma Prieta earthquake that seriously damaged hundreds of buildings, potentially overwhelming the building inspection department’s ability to examine structures in a timely and safe manner.
Building the Application
The application we designed is a GridPad-based pen-centric program that presents forms on the front end and uses database and communications systems on the back. The electronic forms were based on the paper forms the building inspectors already used. We designed them using the GridPad API tools. For the database, we used C-Tree, an off-the-shelf C database engine from FairCom (Columbia, MO). C-Tree is a portable data file management system that provides variable length records, fixed and variable length key fields, high-speed B+ trees, and dynamic space reclamation.
Communications was implemented using the LapLink file transfer software from Traveling Software (Bothell, WA). Among other things, LapLink lets us automate repetitive transfers using a batch transfer function. Additionally, it keeps a log of files, providing an audit trail.
The system was coded entirely in C. Since this was the ninth GridPad application our group has developed, we also used a number of our own standard tools and techniques. For instance, we’ve devised a method for re-compiling C-Tree for RAM card optimization, as well as techniques for automatically resetting the database during the data download process.
What the Program Does
The program is typically used as follows. At the beginning of each day, an administrative assistant downloads inspection and scheduling data to each of the 20 district GridPads. The building inspectors pick up a GridPad and head out to perform their inspections. Inspectors enter data via forms displayed on the GridPad. The main program itself is a series of forms pertaining to the myriad of city ordinances that can have violations cited during an inspection. Each violation is dealt with separately and has standard wording associated with it.
Although handwriting recognition on the GridPad is good, it takes a good deal of time to enter lengthy passages. Consequently, we streamlined the data entry routines in an effort to keep them quick and clean. Each violation has a pop-up window. Inside each pop-up window is a group of words and phrases that make up sentences. There is a “button” behind each word or phrase that, when touched (at times singly, other times in a sequence), creates a sentence that’s displayed at the top of the window. There is also an area in each window for handwriting any data specific to the property not covered by the standard sentence.
Building inspectors often need to make notes that don’t actually fit into a violation format. To do this, we created a “notes” window. The full screen is a bit-image field that captures handwriting and hand-drawn images. It can be redisplayed and accept more handwriting from any other form which pertains to the same property. The window is saved to a PCX file and can be referred back to at any time during the day.
After a violation has been entered on a form, the system prompts the inspector to enter a signature before exiting. There is a signature button which pops up a signature entry form. The signature is entered in a framed bit-image entry field and is saved out to a PCX file. The signature can be redisplayed, cleared, or entered again if the user so desires. One signature is needed for each violation notice that is to be sent to the property owner.
At the end of the day, the inspector drops off his/her GridPad for a data transfer to the department’s network. During the transfer, the data is sorted and the network’s database is updated. Next, violation notices are printed using Wordperfect and the saved inspector’s signature appears at the end of the letter. The inspector performs all forms entry in the field. There is no need to fill out forms back in the office, thereby allowing more inspections to be performed each day. After the upload is complete, the GridPads are ready to be loaded with the data needed for the next day’s work.
Conclusion
In general, the development process was straightforward. The design and implementation of the forms naturally involved interaction with the Department of Building Inspection and the use of off-the-shelf tools eliminated many potential problems. The trickiest part of the process was handling the PCX files used for signature capture. One often overlooked element that greatly aided the development process was the help of other GridPad programmers via the Grid BBS. Our questions were answered and problems solved almost immediately by Grid and non-Grid programmers.
While no one is looking forward to the next great earthquake in San Francisco, the use of GridPads in the field will unquestionably put building inspectors in a better position to handle the increased workload.
Transcribed from Pen-Based Computing, Volume 1, Number 4 — August 1991. Pages 12, 13.