Ledfoo: LED knight_rider - oder dark / off - oder usleep

brauchte sowas gerade für unser emergency script, der wunsch war kurz vor dem reboot, also nach allen Fehlgeschlagenen Versuchen noch ein bisschen knight raider zu spielen um stark visuelles Feedback zu haben was - in der Theorie - den „support“ im Fehlerfall vereinfacht. ist erstmal nur sinnvoll für 841 (weil keine Ahnung was das an anderen Geräten so verursacht an Entgleisung)
wird in diesem Fall halt so aufgerufen : cat /tmp/sysinfo/model|grep -q 841 && ledfoo &

vielleicht interessiert es den ein oder anderen,
zuerst ein usleep derivat gebaut mit lua (das busybox sleep ist nur für sekunden aufwärts zu gebrauchen)

# cat /usr/bin/luasleep
#!/usr/bin/lua
clock = os.clock
function sleep(n)
local t0=clock()
while clock() - t0 <= n do
end
end
sleep(tonumber(arg[1]))

und dann das ledfoo

# cat /usr/bin/ledfoo
#!/bin/sh
# (c) fuzzle/viisauksena cc-by-nc  no-military no-secretservice(and similar)
r="-r"
[ x$1 == x-h ] && echo -e "usage: $0 <option> \n\t$0 -h \t this help \n \t$0 dark \t going dark \n \t$0 light\t going light \n \t$0 1 \t 1to4 \n \t$0 2 \t 4to1 \n \t$0 3 \t blink slow2fast \n \t$0 4 \t knight rider" && exit

#alloff
for line in $(ls /sys/class/leds/); do echo 0 > /sys/class/leds/${line}/brightness; done

if [ x$1 == "xdark" ] ; then exit ; fi
if [ x$1 == "xlight" ] ; then for line in $(ls /sys/class/leds/); do echo 1 > /sys/class/leds/${line}/brightness; done ; exit; fi

#wan straight on
echo 1 > /sys/class/leds/tp-link:green:wan_status/brightness

while true; do
	case $1 in 
             1) r=" ";;
             2) r="-r";;
             3) for x in 7 6 5 4 3 2 2 1 1 1 1 1 1 1 ; do luasleep 0.$x ; $0 light ; luasleep 0.$x; $0 dark; done;exit;;
             4) if [ x$r == "x-r" ]; then r=" "; else r="-r"; fi ;;
        esac
	for line in $(ls $r /sys/class/leds/ |grep lan); 
	do 
		luasleep 0.1
		echo 1 > /sys/class/leds/${line}/brightness 
		luasleep 0.2 && echo 0 > /sys/class/leds/${line}/brightness &
	done
done

als kleiner boni funktioniert auch selbsterklärend
ledfoo dark und ledfoo light… oder mitlerweile ledfoo -h

um im Config mode ein knight rider lauflicht zu haben hilft dieses datei

# cat /lib/gluon/setup-mode/rc.d/S99knightrider 
#!/bin/sh
/usr/bin/ledfoo 4 &

5 Likes

Und dass man selbst schon ganz schön alt ist merkt man, wenn man zu der Animation unbewusst eine Intro-Melodie anstimmt.

Aber ja, sehr schön… Speed könnte aber auch ruhig doppelt so hoch sein.

die geschwindigkeit ist höher, liegt am Video/gif das das so langsam abspielt, ich überleg grad das auch im configmode so zu machen, zumindest nach kurzer Zeit, weil das „Laien“ auch immer nicht sicher benennen und erkennen können. Und aus unbekannten Gründen manche unser Router nach einem Update (?) im Config Mode stecken .(oder jemand hat da doof dran rumgedrückt als es ihnen das Internet zu langsam war)

2 Likes

Eine sehr gute Idee für den Configmode.
Man könnte ja Configmode „nur von links nach rechts“, für einen Fehlerzustand den Knightrider und für Alarm ein Synchrones Strobo-Licht mit ab- und anschwellender Frequenz bauen.

4 Likes

ich hab das script oben geupdatet, das kann nun „Dinge“ - default ist left2right blinking von lan 1-4

# ./ledfoo -h
usage: ./ledfoo <option> 
	./ledfoo -h 	 this help 
 	./ledfoo dark 	 going dark 
 	./ledfoo light	 going light 
 	./ledfoo 1 	 1to4 
 	./ledfoo 2 	 4to1 
 	./ledfoo 3 	 blink slow2fast 
 	./ledfoo 4 	 knight rider

das script selber ist ein while loop, sollte also mit einem & am Ende aufgerufen werden, und benötigt in dieser Form das luasleep hilfsscript um sleep < 1sekunde darzustellen

hier noch für den configmode eine Datei …

# cat /lib/gluon/setup-mode/rc.d/S99knightrider 
#!/bin/sh
/usr/bin/ledfoo 4 &
3 Likes

Könnte man das rein Theoretisch auch auf einem 941N/NDv5 basteln?

Nice sieht es ja schon aus :wink:

sollte genau so gehen, im grunde sollte das immer da gehen wo die symlinks der GPIO in dem Verzeichnis /sys/class/led ordentlich funktioniert, aber ohne garantie, dort könnte bspw. fehlerhaft ein Reset button mit drin sein, und wenn man den triggert … vielleicht ein bisserl zu absurd/abstrakt, aber ich wollts gesagt haben.

1 Like