next up previous contents
Next: 3.3 Supported Hardware & Up: 3. Device Overview Previous: 3.1 Device access: data,   Contents

3.2 Interfaces vs. Drivers

In order to support different kinds of hardware, Player makes a distinction between device interfaces and device drivers. A device interface, such as ptz, specifies the format of the data, command, and configuration interactions that a device allows. A device driver, such as sonyevid30, specifies how the low-level device control will be carried out. In general, more than one driver may support a given interface3.2, though not all drivers will support all configuration requests. Thus we extend in Player the analogy of UNIX devices, where, for example, a wide variety of joysticks all present the same ``joystick'' API to the programmer.

As an example, consider the two drivers p2os_position and rwi_position, which control Pioneer mobile robots and RWI mobile robots, respectively. They both support the position interface and thus they both accept commands and generate data in the same format, allowing a client program to treat them identically, ignoring the details of the underlying hardware. They also accept configuration requests in the same format, but not all configuration requests are supported by both drivers. For example, motor power can be toggled from software with Pioneer robots but not with RWI robots. Thus the p2os_position driver supports the configuration request to toggle motor power, while the rwi_position driver does not.

All client/server interaction is done by interface, with no reference to the underlying driver3.3. So, for example, if Player has been configured to control a single position device with index 0 and driver p2os_position (see Chapter 4 for how specify this information), then the client opens and controls the 0th position device. Player could also be configured to control a second position device with index 1 and driver rwi_position; to access it, the client would open the 1st position device.

Details on Player's device interfaces and drivers are given in Chapters 6 & 7, respectively.


next up previous contents
Next: 3.3 Supported Hardware & Up: 3. Device Overview Previous: 3.1 Device access: data,   Contents
2004-06-02