LED(4)
HOME ||
NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
FILES
SEE ALSO
HISTORY
AUTHORS
led -- API for manipulating LED's, lamps and other annunciators
#include <dev/led/led.h>
typedef void led_t(void *priv, int onoff);
dev_t
led_create(led_t *func, void *priv, char const *name);
void
led_destroy(dev_t dev);
The led driver provides generic support for handling LEDs, lamps and
other annunciators.
The hardware driver must supply a function to turn the annunciator on and
off and the device name of the annunciator relative to /dev/led/. The
priv argument is passed back to this on/off function and can be used how-
ever the hardware driver sees fit.
The lamp can be controlled by opening and writing ASCII strings to the
/dev/led/bla device.
In the following, we will use this special notation to indicate the
resulting output of the annunciator:
* The annunciator is on for 1/10th second.
_ The annunciator is off for 1/10th second.
State can be set directly, and since the change happens immediately, it
is possible to flash the annunciator with very short periods and synchro-
nize it with program events. It should be noted that there is a non-
trivial overhead, so this may not be usable for benchmarking or measuring
short intervals.
0 Turn the annunciator off immediately.
1 Turn the annunciator on immediately.
Flashing can be set with a given period. The pattern continues end-
lessly.
f _*
f1 _*
f2 __**
f3 ___***
...
f9 _________*********
Three high-level commands are available:
d%d Numbers. Each digit is blinked out at 1/10th second, zero
as ten pulses. Between digits a one second pause and after
the last digit a two second pause after which the sequence
is repeated.
s%s String. This gives full control over the annunciator.
Letters `A' ... `J' turn the annunciator on for from 1/10th
to one full second. Letters `a' ... `j' turn the annuncia-
tor off for 1/10th to one full second. Unless terminated
with a `.', the sequence is immediately repeated.
m%s Morse.
`.' becomes `_*'
`-' becomes `_***'
` ' becomes `__'
`\n' becomes `____'
The sequence is repeated after a one second pause.
A `d12' flashes the lamp
*__________*_*______________________________
A `sAaAbBa' flashes
_*_**__*
/usr/games/morse -l "Soekris rocks" > /dev/led/error
/dev/led/*
morse(6)
The led driver first appeared in FreeBSD 5.2.
This software was written by Poul-Henning Kamp <phk@FreeBSD.org>.
This manual page was written by Sergey A. Osokin <osa@FreeBSD.org> and
Poul-Henning Kamp <phk@FreeBSD.org>.