Beacon Progress Report

Database, Driver, Generic Client.


From Gaetano
  1. we have two working copies here, one packaged and one not,
  2. Roy Want at PARC still has to check out our code down there and promised it would get done this week,
  3. once that checks out (the only potential glitches are in the addressing scheme) they'll make 500 boards,
  4. boards would get back a week after that and we'd have to find a way to assemple a bunch (a dozen or two are no problem, after that, we'd have to figure something out and I'm looking into it).
Here is what the beacons can do:
  1. broadcast the values of 12 wires at a fixed rate set by ROM,
  2. receive values to place on 12 wires (allow remote-control of arbitrary devices),
  3. they must be plugged into the wall with a cheap adapter.
To be done (early summer):
  1. some straightforward code needs to be written to emulate a serial port so they can be connected to an HP-100,
  2. we need to design a battery enclosure for when its connected to the HP-100.
Bottom line is that by the end of the quarter we should have a bunch of these up and running. I'll keep the pressure on Roy and try to figure out the parts situation.

Database

An initial database for the location information is complete, and it will be used to both register and lookup locations given a TAB ID. The database can be accessed using remote procedure calls (RPC) and the interface to it is:

register_location(string of location name, TAB_ID)

string of location name = lookup_location (TAB_ID)

The database uses the GDBM package for portability and works under both SunOS and Linux. My guess is that it will work on Ultrix and Mach boxes, too.

The beacon device driver (thanks to Geoff Voelker's IRSPY program) now works with the PARC deathstars under SunOS and linux. The port to Ultrix and MACH should be straight forward, which only requires the tty code to be changed a little.

We need to define a set of canonical names for locations within the building. For now I will assume that there will be one beacon per room and people/robots will be located in "Sieg room number".

Driver

The beacons are attached to the host via the RS232 port. The bulk of the code just puts the serial device (tty) into raw mode and sets the baud rate. Then I just put the beacon receiver into asynchronous mode and it waits for beacon messages. This code works with the Xerox PARC IR basestation units and should work with the UW/Xerox beacons. The beacons will periodically transmit an packet containing the IR protocol header and a location identifier.

Generic Client

A generic client using the beacon driver and contacting the location database is being written. Estimated time of completion: 5/1/94.
Marc E. Fiuczynski
$Id: beacon_progress.html,v 1.4 1994/05/10 02:29:07 mef Exp $