PageRenderTime 18ms CodeModel.GetById 16ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

Plain Text | 59 lines | 41 code | 18 blank | 0 comment | 0 complexity | fb294de2e75aea6fb9259aa582d71249 MD5 | raw file
 1One-shot LED Trigger
 4This is a LED trigger useful for signaling the user of an event where there are
 5no clear trap points to put standard led-on and led-off settings.  Using this
 6trigger, the application needs only to signal the trigger when an event has
 7happened, than the trigger turns the LED on and than keeps it off for a
 8specified amount of time.
10This trigger is meant to be usable both for sporadic and dense events.  In the
11first case, the trigger produces a clear single controlled blink for each
12event, while in the latter it keeps blinking at constant rate, as to signal
13that the events are arriving continuously.
15A one-shot LED only stays in a constant state when there are no events.  An
16additional "invert" property specifies if the LED has to stay off (normal) or
17on (inverted) when not rearmed.
19The trigger can be activated from user space on led class devices as shown
22  echo oneshot > trigger
24This adds the following sysfs attributes to the LED:
26  delay_on - specifies for how many milliseconds the LED has to stay at
27             LED_FULL brightness after it has been armed.
28             Default to 100 ms.
30  delay_off - specifies for how many milliseconds the LED has to stay at
31              LED_OFF brightness after it has been armed.
32              Default to 100 ms.
34  invert - reverse the blink logic.  If set to 0 (default) blink on for delay_on
35           ms, then blink off for delay_off ms, leaving the LED normally off.  If
36           set to 1, blink off for delay_off ms, then blink on for delay_on ms,
37           leaving the LED normally on.
38           Setting this value also immediately change the LED state.
40  shot - write any non-empty string to signal an events, this starts a blink
41         sequence if not already running.
43Example use-case: network devices, initialization:
45  echo oneshot > trigger # set trigger for this led
46  echo 33 > delay_on     # blink at 1 / (33 + 33) Hz on continuous traffic
47  echo 33 > delay_off
49interface goes up:
51  echo 1 > invert # set led as normally-on, turn the led on
53packet received/transmitted:
55  echo 1 > shot # led starts blinking, ignored if already blinking
57interface goes down
59  echo 0 > invert # set led as normally-off, turn the led off