76 lines
1.6 KiB
Bash
76 lines
1.6 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
# (C) 2012 Daniel Golle, Allnet GmbH <dgolle@allnet.de>
|
|
|
|
START=96
|
|
STOP=96
|
|
RSSILEDS_BIN="/usr/sbin/rssileds"
|
|
|
|
SERVICE_DAEMONIZE=1
|
|
SERVICE_WRITE_PID=1
|
|
|
|
start_rssid() {
|
|
local name
|
|
local dev
|
|
local threshold
|
|
local refresh
|
|
local leds
|
|
config_get name $1 name
|
|
config_get dev $1 dev
|
|
config_get threshold $1 threshold
|
|
config_get refresh $1 refresh
|
|
leds="$( cur_iface=$1 ; config_foreach get_led led )"
|
|
SERVICE_PID_FILE=/var/run/rssileds-$dev.pid
|
|
service_start $RSSILEDS_BIN $dev $refresh $threshold $leds
|
|
}
|
|
|
|
stop_rssid() {
|
|
local dev
|
|
config_get dev $1 dev
|
|
SERVICE_PID_FILE=/var/run/rssileds-$dev.pid
|
|
service_stop $RSSILEDS_BIN
|
|
}
|
|
|
|
get_led() {
|
|
local name
|
|
local sysfs
|
|
local trigger
|
|
local iface
|
|
config_get sysfs $1 sysfs
|
|
config_get name $1 name "$sysfs"
|
|
config_get trigger $1 trigger "none"
|
|
config_get iface $1 iface
|
|
config_get minq $1 minq
|
|
config_get maxq $1 maxq
|
|
config_get offset $1 offset
|
|
config_get factor $1 factor
|
|
[ "$trigger" = "rssi" ] || return
|
|
[ "$iface" = "$cur_iface" ] || return
|
|
[ ! "$minq" ] || [ ! "$maxq" ] || [ ! "$offset" ] || [ ! "$factor" ] && return
|
|
echo "none" > /sys/class/leds/$sysfs/trigger
|
|
echo "$sysfs $minq $maxq $offset $factor"
|
|
}
|
|
|
|
off_led() {
|
|
local name
|
|
local sysfs
|
|
local trigger
|
|
config_get sysfs $1 sysfs
|
|
config_get name $1 name "$sysfs"
|
|
config_get trigger $1 trigger "none"
|
|
[ "$trigger" = "rssi" ] || return
|
|
echo "0" > /sys/class/leds/$sysfs/brightness
|
|
}
|
|
|
|
start() {
|
|
[ -e /sys/class/leds/ ] && [ -x "$RSSILEDS_BIN" ] && {
|
|
config_load system
|
|
config_foreach start_rssid rssid
|
|
}
|
|
}
|
|
|
|
stop() {
|
|
config_load system
|
|
config_foreach stop_rssid rssid
|
|
config_foreach off_led led
|
|
}
|