freebsd-dev/share/man/man4/led.4

166 lines
4.4 KiB
Groff
Raw Normal View History

.\" Copyright (c) 2003 Sergey A. Osokin <osa@FreeBSD.org>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd November 3, 2003
.Dt LED 4
.Os
.Sh NAME
.Nm led
2004-06-21 17:42:49 +00:00
.Nd API for manipulating LED's, lamps and other annunciators.
.Sh SYNOPSIS
.In dev/led/led.h
.Bd -literal
typedef void led_t(void *priv, int onoff);
.Ed
.Ft dev_t
2003-11-03 17:55:02 +00:00
.Fo led_create
.Fa "led_t *func"
.Fa "void *priv"
.Fa "char const *name"
.Fc
.Ft void
2003-11-03 17:55:02 +00:00
.Fo led_destroy
.Fa "dev_t dev"
.Fc
.Sh DESCRIPTION
The
.Nm
driver provides generic support for handling LEDs, lamps and other
2004-06-21 17:42:49 +00:00
annunciators.
.Pp
2004-06-21 17:42:49 +00:00
The hardware driver must supply a function to turn the annunciator on and off
and the device
.Va name
2004-06-21 17:42:49 +00:00
of the annunciator relative "/dev/led/".
The
.Va priv
argument is passed back to this on/off function and can be used however
the hardware driver sees fit.
.Pp
The lamp can be controlled by opening and writing ascii strings to the
2003-11-03 17:55:02 +00:00
"/dev/led/bla" device.
.Pp
In the following we will use this special notation to indicate the resulting
2004-06-21 17:42:49 +00:00
output of the annunciator:
.Bl -tag -width Ds -offset indent -compact
.It Ic *
2004-06-21 17:42:49 +00:00
The annunciator is on for 1/10th second.
.It Ic _
2004-06-21 17:42:49 +00:00
The annunciator is off for 1/10th second.
.El
.Pp
State can be set directly, and since the change happens immediately,
2004-06-21 17:42:49 +00:00
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.
.Bl -tag -width Ds -offset indent -compact
.It Ic 0
2004-06-21 17:42:49 +00:00
Turn the annunciator off immediately.
.It Ic 1
2004-06-21 17:42:49 +00:00
Turn the annunciator on immediately.
.El
.Pp
Flashing can be set with a given period. The pattern continues endlessly.
.Bl -tag -width Ds -offset indent -compact
.It Ic f
_*
.It Ic f1
_*
.It Ic f2
__**
.It Ic f3
___***
.It Ic ...
.It Ic f9
_________*********
.El
.Pp
Three high-level commands are available:
.Bl -tag -width Ds -offset indent -compact
.It Ic 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.
.It Ic s%s
string.
2004-06-21 17:42:49 +00:00
This gives full control over the annunciator.
Letters 'A' ... 'J' turns the annunciator on for from 1/10th to one full
second.
2004-06-21 17:42:49 +00:00
Letters 'a' ... 'j' turns the annunciator off for 1/10th
to one full second.
Unless terminated with a '.', the sequence is immediately repeated.
.It Ic m%s
morse.
.Bl -tag -width Ds -offset indent -compact
.It Ic '.'
becomes _*
.It Ic '-'
becomes _***
.It Ic ' '
becomes __
.It Ic '\en'
becomes ____
.El
.Pp
.El
2003-11-03 17:55:02 +00:00
The sequence is repeated after a one second pause.
.Sh EXAMPLES
A 'd12' flashes the lamp
.Bd -literal -offset indent
*__________*_*______________________________
.Ed
.Pp
A 'sAaAbBa' flashes
.Bd -literal -offset indent
_*_**__*
.Ed
.Pp
/usr/games/morse -l "Soekris rocks" > /dev/led/error
.Sh FILES
.Bl -tag -width /dev/led/*
.It Pa /dev/led/*
.El
.Sh SEE ALSO
.Xr morse 6
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 5.2 .
.Sh AUTHORS
.An -nosplit
This software was written by
.An Poul-Henning Kamp
.Aq phk@FreeBSD.org .
.Pp
This manual page was written by
.An Sergey A. Osokin
.Aq osa@FreeBSD.org
and
.An Poul-Henning Kamp
.Aq phk@FreeBSD.org .