Bristol Wearable Computing

[ Home | Plans | Meetings | Members | Search | Papers | Links | CyberWear | LocoSoft]


Device Manager

Introduction

The device manager operates three sockets on which processes may connect.  These sockets all have known addresses.  That is that the address of each of the three sockets is assumed to be known by all processes that are interested in using device manager functions.

Each of the three sockets have the following functionality

  1. Registration
    Allows device drivers to give information about themselves and the services that they can currently supply to the device manager.
  2. Queries
    Processes can question the device manager to ask about what services are available
  3. Notification
    Processes can ask to be notified when a specific service is either registered or unregstered.

Simple ASCII based protocols are used to communicate over the sockets, although usually it will not be required of a software developer to get to this level as the API's hide these details.

Registration

The protocol for registration is very simple.  ASCII verbs are used to specify the required actions, and responses start with a plus or minus sign to indicate sucess or failure respectively.  Requests and responses are terminated with newline characters, and spaces serve to delimit the data.

The flow diagram to the right shows how processes may register with the device manager.

After the first time that a device driver registers it's name, a unique handle is returned to the driver that must then be used for all subsequent accessing of the device manager.  This approach helps to eliminate problems that might arise if non-unique device names were used to identify each device driver.  There is still however the problem that the socket name must be unique (although UNIX will cause a 'address already in use' error if you attempt to make a socket with a name that already exists.) but this is not such a problem as the socket names could be randomly made, as for temporary files.

 

devman.gif (26899 bytes)

QueriesNotification

Internals

 

 


unicrest.gif (4191 bytes)

The material displayed is provided 'as is' and is subject to use restrictions.
For problems or questions regarding this web contact Cliff Randell.
Last updated: January 14, 2000.
logoep.gif (1404 bytes)
ęCopyright Hewlett-Packard 1997-2000.