blob: 773e331b73de4cb66accb676cc380b8f2fb7c212 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
#!/bin/bash
#
# LED to trigger map
#
declare -A triggers
##################################################################
# # # #
# LED name # Trigger # Description #
# /sys/class/leds # # #
##################################################################
triggers[pca955x:0]="led-no-alarm" # ENABLE
triggers[pca955x:1]="led-alarm" # ALARM
triggers[pca955x:2]="none" # 10/100MBPS (HW controlled)
triggers[pca955x:3]="none" # LNK/ACT (HW controlled)
triggers[pca955x:4]="vizzini1-tx" # TX (serial)
triggers[pca955x:5]="vizzini1-rx" # RX (serial)
triggers[pca955x:6]="led-sig4" # LINK Quality Green
triggers[pca955x:7]="led-sig3" # LINK Quality Green
triggers[pca955x:8]="led-sig2" # LINK Quality Yellow
triggers[pca955x:9]="led-sig1" # LINK Quality Red
triggers[pca955x:10]="led-cd" # Celullar connectivity
triggers[pca955x:11]="netdev" # Cellular activity
debug() {
[[ "$DEBUG" ]] && builtin echo $@
}
leds_enable() {
cd /sys/class/leds
for led in "${!triggers[@]}"
do
echo ${triggers[$led]} > $led/trigger
debug "LEDS: $led trigger enabled"
done
}
leds_disable() {
cd /sys/class/leds
for led in "${!triggers[@]}"
do
echo "none" > $led/trigger
done
}
led_set_alarm() {
local cmd="$1"
[ x"$cmd" == x"on" ] && mts-io-sysfs store alarm 1
[ x"$cmd" == x"off" ] && mts-io-sysfs store alarm 0
[ x"$cmd" == x"minor" ] && mts-io-sysfs store alarm 2
[ x"$cmd" == x"update" ] && mts-io-sysfs store alarm 100
debug "LEDS: alarm set to $1"
}
led_set_device_ready() {
local cmd="$1"
[ x"$cmd" == x"on" ] && mts-io-sysfs store device-ready 1
[ x"$cmd" == x"off" ] && mts-io-sysfs store device-ready 0
debug "LEDS: device_ready set to $1"
}
led_set_ppp_act() {
cd /sys/class/leds
for led in "${!triggers[@]}"
do
if [[ x"${triggers[$led]}" == x"netdev" ]]; then
echo "ppp0" > $led/device_name
echo "1" > $led/rx
echo "1" > $led/tx
debug "LEDS: ppp activity trigger is set"
fi
done
}
leds_set_brightness() {
cd /sys/class/leds
for led in "${!triggers[@]}"
do
local cmd="$1"
if [[ x"$cmd" == x"on" ]]; then
brightness="255"
elif [[ x"$cmd" == x"off" ]]; then
brightness="0"
fi
if [[ x"${triggers[$led]}" == x"led-alarm" ]]; then
#
# led alarm is inverted
#
if [[ x"$cmd" == x"on" ]]; then
brightness="0"
elif [[ x"$cmd" == x"off" ]]; then
brightness="255"
fi
fi
echo $brightness > $led/brightness
debug "LEDS: $led brightness set to $cmd"
done
}
case $1 in
start)
leds_disable # disable all triggers
leds_set_brightness off # set all leds to off
leds_enable # enable all triggers
led_set_alarm update # update alarm leds with current alarm status
led_set_ppp_act # setup ppp activity led
mtre-leds-monitor & # start push-button monitor
;;
stop)
killall -q mtre-leds-monitor
leds_disable # disable all led triggers
leds_set_brightness off # set all leds to off
;;
alarm-on)
led_set_alarm on # store alarm
;;
alarm-off)
led_set_alarm off # set no alarm
;;
alarm-minor)
led_set_alarm minor # blink oneshot on minor alarm
;;
device_ready)
led_set_device_ready on # indicate device readyness
;;
device_not_ready)
led_set_device_ready off # indicate device readyness
;;
start-test)
leds_disable # disable all triggers
leds_set_brightness on # set all leds to on
;;
stop-test)
leds_disable # disable all led triggers
leds_set_brightness off # set all leds to off
leds_enable # enable all triggers
led_set_alarm update # update alarm leds with current alarm status
led_set_ppp_act # restore ppp activity settings
;;
*)
echo "Usage: $0 <start|stop|alarm-on|alarm-off|alarm-minor|device_ready|device_not_ready|start-test|stop-test>"
exit 2
;;
esac
|