bd(7M) STREAMS Modules bd(7M)NAMEbd - SunButtons and SunDials STREAMS module
SYNOPSIS
open("/dev/bd", O_RDWR)
DESCRIPTION
The bd STREAMS module processes the byte streams generated by the Sun‐
Buttons buttonbox and SunDials dialbox. The buttonbox generates a
stream of bytes that encode the identity and state transition of the
buttons. The dialbox generates a stream of bytes that encode the iden‐
tity of the dials and the amount by which they are turned. Both of
these streams are merged together when a host has both a buttonbox and
a dialbox in use at the same time.
SunButtons reports the button number and up/down status encoded into a
one byte message. Byte values from 0xc0 to 0xdf indicate a transition
to button down. To obtain the button number, subtract 0xc0 from the
byte value. Byte values from 0xe0 to 0xff indicate a transition to
button up. To obtain the button number, subtract 0xe0 from the byte
value.
Each dial sample in the byte stream consists of three bytes. The first
byte identifies which dial was turned and the next two bytes return the
delta in signed binary format. When bound to an application using the
window system, Virtual User Input Device ("VUID") events are generated.
An event from a dial is constrained to lie between 0x80 and 0x87.
A stream with the bd pushed streams module configured in it can emit
firm_events as specified by the protocol of a VUID. bd understands the
VUIDSFORMAT and VUIDGFORMAT ioctls (see reference below), as defined
in /usr/include/sys/bdio.h and $OPENWINHOME/include/xview/win_event.h.
All other ioctl() requests are passed downstream.
The bd streams module sets the parameters of the serial port when it is
first opened. No termio(7I) ioctl () requests should be performed on a
bd STREAMS module, as bd expects the device parameters to remain as it
set them.
IOCTLS
VUIDSFORMAT These are standard VUID ioctls.
VUIDGFORMAT
BDIOBUTLITE The bd streams module implements this ioctl to enable
processes to manipulate the lights on the buttonbox.
The BDIOBUTLITE ioctl must be carried by an
I_STR ioctl to the bd module. For an explanation of
I_STR see streamio(7I). The data for the BDIOBUTLITE
ioctl is an unsigned integer in which each bit repre‐
sents the lamp on one button. The macro LED_MAP in
<sys/bdio.h> maps button numbers to appropriate bits.
Source code for the demo program x_buttontest is pro‐
vided with the buttons and dials package, and may be
found in the directory /usr/demo/BUTTONBOX. Look at
x_buttontest.c for an example of how to manipulate the
lights on the buttonbox.
FILES
/usr/include/sys/bdio.h
/usr/include/sys/stropts.h
$OPENWINHOME/share/include/xview/win_event.h
SEE ALSObdconfig(1M), ioctl(2), x_buttontest(6), x_dialtest(6), streamio(7I),
termio(7I)
SunButtons Installation and Programmers Guide
SunDials Installation and Programmers Guide
WARNINGS
The SunDials dial box must be used with a serial port.
SunOS 5.10 19 Feb 1992 bd(7M)