From 02ac4c9bdcc6d6f13fd4ac4c8f77332f5f787d64 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 24 Feb 2017 21:07:48 +0000 Subject: [PATCH] implemented lounge color control --- command_watcher.sh | 5 ++--- light.sh | 44 +++++++++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/command_watcher.sh b/command_watcher.sh index 341f454..27874cc 100755 --- a/command_watcher.sh +++ b/command_watcher.sh @@ -3,8 +3,7 @@ COMMAND_FILE=/tmp/command lounge_light() { - COLOR=$1 - echo "not implemented" #FIXME + ./light.sh $1 } lounge_light_toggle() { @@ -23,7 +22,7 @@ while true; do lounge_light_toggle ;; lounge_light*) - lounge_light "$(echo "$COMMAND " | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)" + lounge_light "$(echo "$line " | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)" ;; *) echo "ERROR; available commands:" >&2 diff --git a/light.sh b/light.sh index df5f0c3..59ffe84 100755 --- a/light.sh +++ b/light.sh @@ -5,26 +5,32 @@ touch $TMPFILE LIGHT_STATE=$(cat $TMPFILE) [ -z "$LIGHT_STATE" ] && LIGHT_STATE=0 -STATE_0="a\x00\x03\x00\x00\x00;000000000000000000" -STATE_1="a\x00\x03\xff\xff\xff;255255255255255255" -STATE_2="n\x00\x02\x01\x00;170000070150000050" +if [ -z "$1" ]; then + STATE_0="a\x00\x03\x00\x00\x00;000000000000000000" + STATE_1="a\x00\x03\xff\xff\xff;255255255255255255" + STATE_2="n\x00\x02\x01\x00;170000070150000050" -LIGHT_STATE=$(( $LIGHT_STATE+1 )) -case $LIGHT_STATE in - 0) - STATE=$STATE_0 - ;; - 1) - STATE=$STATE_1 - ;; - 2) - STATE=$STATE_2 - ;; - *) - STATE=$STATE_0 - LIGHT_STATE=0 - ;; -esac + LIGHT_STATE=$(( $LIGHT_STATE+1 )) + case $LIGHT_STATE in + 0) + STATE=$STATE_0 + ;; + 1) + STATE=$STATE_1 + ;; + 2) + STATE=$STATE_2 + ;; + *) + STATE=$STATE_0 + LIGHT_STATE=0 + ;; + esac +else + COLOR_A="$(echo $1 | sed "s/\(..\)\(..\)\(..\)/\\\x\2\\\x\1\\\x\3/g")" + COLOR_B="$(echo $1 | while read -N2 code; do printf "%03d" $((16#$code)); done)" + STATE="a\x00\x03$COLOR_A;$COLOR_B$COLOR_B" +fi for i in {1..5}; do echo -en "$(echo "$STATE" | cut -d";" -f1)" > /dev/udp/172.23.92.15/49152 &