xref: /freebsd/share/man/man4/led.4 (revision 500ae5be17d1ec2173046b6687ec770f8d0213fc)
174240656SPoul-Henning Kamp.\" Copyright (c) 2003 Sergey A. Osokin <osa@FreeBSD.org>
274240656SPoul-Henning Kamp.\" All rights reserved.
374240656SPoul-Henning Kamp.\"
474240656SPoul-Henning Kamp.\" Redistribution and use in source and binary forms, with or without
574240656SPoul-Henning Kamp.\" modification, are permitted provided that the following conditions
674240656SPoul-Henning Kamp.\" are met:
774240656SPoul-Henning Kamp.\" 1. Redistributions of source code must retain the above copyright
874240656SPoul-Henning Kamp.\"    notice, this list of conditions and the following disclaimer.
974240656SPoul-Henning Kamp.\" 2. Redistributions in binary form must reproduce the above copyright
1074240656SPoul-Henning Kamp.\"    notice, this list of conditions and the following disclaimer in the
1174240656SPoul-Henning Kamp.\"    documentation and/or other materials provided with the distribution.
1274240656SPoul-Henning Kamp.\"
1374240656SPoul-Henning Kamp.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
1474240656SPoul-Henning Kamp.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1574240656SPoul-Henning Kamp.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1674240656SPoul-Henning Kamp.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
1774240656SPoul-Henning Kamp.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1874240656SPoul-Henning Kamp.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1974240656SPoul-Henning Kamp.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2074240656SPoul-Henning Kamp.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2174240656SPoul-Henning Kamp.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2274240656SPoul-Henning Kamp.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2374240656SPoul-Henning Kamp.\" SUCH DAMAGE.
2474240656SPoul-Henning Kamp.\"
2574240656SPoul-Henning Kamp.\" $FreeBSD$
2674240656SPoul-Henning Kamp.\"
2774240656SPoul-Henning Kamp.Dd November 3, 2003
2874240656SPoul-Henning Kamp.Dt LED 4
2974240656SPoul-Henning Kamp.Os
3074240656SPoul-Henning Kamp.Sh NAME
3174240656SPoul-Henning Kamp.Nm led
3281f403e4SPoul-Henning Kamp.Nd API for manipulating LED's, lamps and other announciators.
3374240656SPoul-Henning Kamp.Sh SYNOPSIS
3474240656SPoul-Henning Kamp.In dev/led/led.h
3574240656SPoul-Henning Kamp.Bd -literal
3674240656SPoul-Henning Kamptypedef void led_t(void *priv, int onoff);
3774240656SPoul-Henning Kamp.Ed
3874240656SPoul-Henning Kamp.Ft dev_t
39121b0769SPoul-Henning Kamp.Fo led_create
40121b0769SPoul-Henning Kamp.Fa "led_t *func"
41121b0769SPoul-Henning Kamp.Fa "void *priv"
42121b0769SPoul-Henning Kamp.Fa "char const *name"
43121b0769SPoul-Henning Kamp.Fc
4474240656SPoul-Henning Kamp.Ft void
45121b0769SPoul-Henning Kamp.Fo led_destroy
46121b0769SPoul-Henning Kamp.Fa "dev_t dev"
47121b0769SPoul-Henning Kamp.Fc
4874240656SPoul-Henning Kamp.Sh DESCRIPTION
4974240656SPoul-Henning KampThe
5074240656SPoul-Henning Kamp.Nm
5174240656SPoul-Henning Kampdriver provides generic support for handling LEDs, lamps and other
5274240656SPoul-Henning Kampannounciators.
5374240656SPoul-Henning Kamp.Pp
5474240656SPoul-Henning KampThe hardware driver must supply a function to turn the announciator on and off
5574240656SPoul-Henning Kampand the device
5674240656SPoul-Henning Kamp.Va name
5774240656SPoul-Henning Kampof the announciator relative "/dev/led/".
5874240656SPoul-Henning KampThe
5974240656SPoul-Henning Kamp.Va priv
6074240656SPoul-Henning Kampargument is passed back to this on/off function and can be used however
6174240656SPoul-Henning Kampthe hardware driver sees fit.
6274240656SPoul-Henning Kamp.Pp
6374240656SPoul-Henning KampThe lamp can be controlled by opening and writing ascii strings to the
6474240656SPoul-Henning Kamp"/dev/led/bla" device.
6574240656SPoul-Henning Kamp.Pp
6674240656SPoul-Henning KampIn the following we will use this special notation to indicate the resulting
6774240656SPoul-Henning Kampoutput of the announciator:
6874240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
6974240656SPoul-Henning Kamp.It Ic *
7074240656SPoul-Henning KampThe announciator is on for 1/10th secound.
7174240656SPoul-Henning Kamp.It Ic _
7274240656SPoul-Henning KampThe announciator is off for 1/10th secound.
7374240656SPoul-Henning Kamp.El
7474240656SPoul-Henning Kamp.Pp
7574240656SPoul-Henning KampState can be set directly, and since the change happens immediately,
7674240656SPoul-Henning Kampit is possible to flash the announciator with very short periods and
7774240656SPoul-Henning Kampsynchronize it with program events.
7874240656SPoul-Henning KampIt should be noted that there is a non-trivial overhead, so this may
7974240656SPoul-Henning Kampnot be usable for benchmarking or measuring short intervals.
8074240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
8174240656SPoul-Henning Kamp.It Ic 0
8274240656SPoul-Henning KampTurn the announciator off immediately.
8374240656SPoul-Henning Kamp.It Ic 1
8474240656SPoul-Henning KampTurn the announciator on immediately.
8574240656SPoul-Henning Kamp.El
8674240656SPoul-Henning Kamp.Pp
8774240656SPoul-Henning KampFlashing can be set with a given period.  The pattern continues endlessly.
8874240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
8974240656SPoul-Henning Kamp.It Ic f
9074240656SPoul-Henning Kamp_*
9174240656SPoul-Henning Kamp.It Ic f1
9274240656SPoul-Henning Kamp_*
9374240656SPoul-Henning Kamp.It Ic f2
9474240656SPoul-Henning Kamp__**
9574240656SPoul-Henning Kamp.It Ic f3
9674240656SPoul-Henning Kamp___***
9774240656SPoul-Henning Kamp.It Ic ...
9874240656SPoul-Henning Kamp.It Ic f9
9974240656SPoul-Henning Kamp_________*********
10074240656SPoul-Henning Kamp.El
10174240656SPoul-Henning Kamp.Pp
10274240656SPoul-Henning KampThree high-level commands are available:
10374240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
10474240656SPoul-Henning Kamp.It Ic d%d
10574240656SPoul-Henning Kampnumbers.  Each digit is blinked out at 1/10th second, zero as
10674240656SPoul-Henning Kampten pulses.  Between digits a one second pause and after the last
10774240656SPoul-Henning Kampdigit a two second pause after which the sequence is repeated.
10874240656SPoul-Henning Kamp.It Ic s%s
10974240656SPoul-Henning Kampstring.
11074240656SPoul-Henning KampThis gives full control over the announciator.
1119491306aSPoul-Henning KampLetters 'A' ... 'J' turns the announciator on for from 1/10th to one full
11274240656SPoul-Henning Kampsecond.
1139491306aSPoul-Henning KampLetters 'a' ... 'j' turns the announciator off for 1/10th
114500ae5beSPoul-Henning Kampto one full second.
115500ae5beSPoul-Henning KampUnless terminated with a '.', the sequence is immediately repeated.
11674240656SPoul-Henning Kamp.It Ic m%s
11774240656SPoul-Henning Kampmorse.
11874240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
11974240656SPoul-Henning Kamp.It Ic '.'
12074240656SPoul-Henning Kampbecomes _*
12174240656SPoul-Henning Kamp.It Ic '-'
12274240656SPoul-Henning Kampbecomes _***
12374240656SPoul-Henning Kamp.It Ic ' '
12474240656SPoul-Henning Kampbecomes __
12574240656SPoul-Henning Kamp.It Ic '\en'
12674240656SPoul-Henning Kampbecomes ____
12774240656SPoul-Henning Kamp.El
12874240656SPoul-Henning Kamp.Pp
12974240656SPoul-Henning Kamp.El
130121b0769SPoul-Henning KampThe sequence is repeated after a one second pause.
13174240656SPoul-Henning Kamp.Sh EXAMPLES
13274240656SPoul-Henning KampA 'd12' flashes the lamp
13374240656SPoul-Henning Kamp.Bd -literal -offset indent
13474240656SPoul-Henning Kamp*__________*_*______________________________
13574240656SPoul-Henning Kamp.Ed
13674240656SPoul-Henning Kamp.Pp
13774240656SPoul-Henning KampA 'sAaAbBa' flashes
13874240656SPoul-Henning Kamp.Bd -literal -offset indent
13974240656SPoul-Henning Kamp_*_**__*
14074240656SPoul-Henning Kamp.Ed
14174240656SPoul-Henning Kamp.Pp
14274240656SPoul-Henning Kamp/usr/games/morse -l "Soekris rocks" > /dev/led/error
14374240656SPoul-Henning Kamp.Sh FILES
14474240656SPoul-Henning Kamp.Bl -tag -width /dev/led/*
14574240656SPoul-Henning Kamp.It Pa /dev/led/*
14674240656SPoul-Henning Kamp.El
14774240656SPoul-Henning Kamp.Sh SEE ALSO
14874240656SPoul-Henning Kamp.Xr morse 6
14974240656SPoul-Henning Kamp.Sh HISTORY
15074240656SPoul-Henning KampThe
15174240656SPoul-Henning Kamp.Nm
15274240656SPoul-Henning Kampdriver first appeared in
15374240656SPoul-Henning Kamp.Fx 5.2 .
15474240656SPoul-Henning Kamp.Sh AUTHORS
15574240656SPoul-Henning Kamp.An -nosplit
15674240656SPoul-Henning KampThis software was written by
15774240656SPoul-Henning Kamp.An Poul-Henning Kamp
15874240656SPoul-Henning Kamp.Aq phk@FreeBSD.org .
15974240656SPoul-Henning Kamp.Pp
16074240656SPoul-Henning KampThis manual page was written by
16174240656SPoul-Henning Kamp.An Sergey A. Osokin
16274240656SPoul-Henning Kamp.Aq osa@FreeBSD.org
16374240656SPoul-Henning Kampand
16474240656SPoul-Henning Kamp.An Poul-Henning Kamp
16574240656SPoul-Henning Kamp.Aq phk@FreeBSD.org .
166