Currently, most platforms define such helpers in their own diag.sh
implementation with almost identical code. By factoring out the
common ground it's possible to simplify maintainability and
homogenize the haptics over multiple platforms (so far as is
reasonably practicable, in a next step).

Signed-off-by: Michael Heimpold <m...@heimpold.de>
---
 package/base-files/files/lib/functions/leds.sh |   49 ++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 package/base-files/files/lib/functions/leds.sh

diff --git a/package/base-files/files/lib/functions/leds.sh 
b/package/base-files/files/lib/functions/leds.sh
new file mode 100644
index 0000000..e591908
--- /dev/null
+++ b/package/base-files/files/lib/functions/leds.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+# Copyright (C) 2013 OpenWrt.org
+
+led_set_attr() {
+       [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2"
+}
+
+led_timer() {
+       led_set_attr $1 "trigger" "timer"
+       led_set_attr $1 "delay_on" "$1"
+       led_set_attr $1 "delay_off" "$2"
+}
+
+led_on() {
+       led_set_attr $1 "trigger" "none"
+       led_set_attr $1 "brightness" 255
+}
+
+led_off() {
+       led_set_attr $1 "trigger" "none"
+       led_set_attr $1 "brightness" 0
+}
+
+status_led_set_timer() {
+       led_timer $status_led "$1" "$2"
+       [ -n "$status_led2" ] && led_timer $status_led2 "$1" "$2"
+}
+
+status_led_set_heartbeat() {
+       led_set_attr $status_led "trigger" "heartbeat"
+}
+
+status_led_on() {
+       led_on $status_led
+       [ -n "$status_led2" ] && led_on $status_led2
+}
+
+status_led_off() {
+       led_off $status_led
+       [ -n "$status_led2" ] && led_off $status_led2
+}
+
+status_led_blink_slow() {
+       led_timer $status_led 1000 1000
+}
+
+status_led_blink_fast() {
+       led_timer $status_led 100 100
+}
-- 
1.7.9.5

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to