LED(4) | Device Drivers Manual | LED(4) |
led
— API for
manipulating LED's, lamps and other annunciators
#include
<dev/led/led.h>
typedef void led_t(void *priv, int onoff);
struct cdev *
led_create_state
(led_t
*func, void *priv,
char const *name,
int state);
struct cdev *
led_create
(led_t
*func, void *priv,
char const *name);
void
led_destroy
(struct
cdev *);
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 however 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:
State can be set directly, and since the change happens immediately, it is possible to flash the annunciator with very short periods and synchronize 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.
Flashing can be set with a given period. The pattern continues endlessly.
Three high-level commands are available:
d%d
s%s
A
’ ...
‘J
’ turn the annunciator on for from
1/10th to one full second. Letters
‘a
’ ...
‘j
’ turn the annunciator off for
1/10th to one full second. Letters
‘u
’ and
‘U
’ turn the annunciator off and on
respectively when the next UTC second starts. Unless terminated with a
‘.
’, the sequence is immediately
repeated.m%s
.
’_*
’-
’_***
’
’__
’\n
’____
’The sequence is repeated after a one second pause.
A ‘d12
’ flashes the lamp
*__________*_*______________________________
A ‘sAaAbBa
’ flashes
*_*__**_
/usr/bin/morse -l "Soekris rocks" > /dev/led/error
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>.
April 24, 2007 | Debian |