From 13c93e37fb7522d535095971845ec188068cce76 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 8 Jul 2019 20:41:30 +0000 Subject: [PATCH] fixed various bugs --- light.sh | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/light.sh b/light.sh index 2439c59..eee0c72 100755 --- a/light.sh +++ b/light.sh @@ -54,36 +54,29 @@ esac set_room_color() { case "$ROOM_NUMBER" in 0) - find "$(dirname "$TMPFILE_PID_BASE")" -name "$(basename "${TMPFILE_PID_BASE}_0")" -exec sh -c 'cat {} | xargs kill; rm -f {}' \; + find "$(dirname "$TMPFILE_PID_BASE")" -name "$(basename "${TMPFILE_PID_BASE}_0*")" -exec sh -c 'cat {} | xargs kill; rm -f {}' \; COLOR="$(echo "$STATE" | cut -d";" -f1 | cut -d"|" -f2)" if [ "${COLOR:0:1}" == "!" ]; then ( R1=$(( RANDOM % 256 )); G1=$(( RANDOM % 256 )); B1=$(( RANDOM % 256 )) R2=$(( RANDOM % 256 )); G2=$(( RANDOM % 256 )); B2=$(( RANDOM % 256 )) - R3=$(( RANDOM % 256 )); G3=$(( RANDOM % 256 )); B3=$(( RANDOM % 256 )) while true; do R1_=$(( RANDOM % 256 )); G1_=$(( RANDOM % 256 )); B1_=$(( RANDOM % 256 )) R2_=$(( RANDOM % 256 )); G2_=$(( RANDOM % 256 )); B2_=$(( RANDOM % 256 )) - R3_=$(( RANDOM % 256 )); G3_=$(( RANDOM % 256 )); B3_=$(( RANDOM % 256 )) - while [ $R1 -ne $R1_ -o $G1 -ne $G1_ -o $B1 -ne $B1_ -o\ - $R2 -ne $R2_ -o $G2 -ne $G2_ -o $B2 -ne $B2_ -o\ - $R3 -ne $R3_ -o $G3 -ne $G3_ -o $B3 -ne $B3_ ]; do + while [ $R1 -ne $R1_ -a $G1 -ne $G1_ -a $B1 -ne $B1_ -a $R2 -ne $R2_ -a $G2 -ne $G2_ -a $B2 -ne $B2_ ]; do DR1=$(sign $(($R1_-$R1))); DG1=$(sign $(($G1_-$G1))); DB1=$(sign $(($B1_-$B1))) DR2=$(sign $(($R2_-$R2))); DG2=$(sign $(($G2_-$G2))); DB2=$(sign $(($B2_-$B2))) - DR3=$(sign $(($R3_-$R3))); DG3=$(sign $(($G3_-$G3))); DB3=$(sign $(($B3_-$B3))) - R1=$(($R1+$DR1)); G1=$(($G1+$DG1)); B1=$(($B1+$DB1)) - R2=$(($R2+$DR2)); G2=$(($G2+$DG2)); B2=$(($B2+$DB2)) - R3=$(($R3+$DR3)); G3=$(($G3+$DG3)); B3=$(($B3+$DB3)) - echo "$R1 $G1 $B1 $R1 $G1 $B1 $R2 $G2 $B2 $R2 $G2 $B2 $R3 $G3 $B3 $R3 $G3 $B3" |\ - while read code; do printf "%03d" $code; done > /dev/udp/172.23.92.19/31302 & - sleep .5 + R1=$(($R1+$DR1)); G1=$(($G1+$DG1)); B1=$(($B1+$DB1)); R2=$(($R2+$DR2)); G2=$(($G2+$DG2)); B2=$(($B2+$DB2)) + echo "${GAMMA_LUT[$R1]} ${GAMMA_LUT[$G1]} ${GAMMA_LUT[$B1]} ${GAMMA_LUT[$R2]} ${GAMMA_LUT[$G2]} ${GAMMA_LUT[$B2]}" |\ + while read code; do printf "%03d" $code; done > /dev/udp/172.23.92.19/31302 & + sleep .2 done done ) & PID=$! echo $PID > ${TMPFILE_PID_BASE}_0.$PID else - for i in {1..5}; do (echo -en "$COLOR" > /dev/udp/172.23.92.19/31302 &); sleep .01; done + for i in {1..5}; do (echo -en "$COLOR" > /dev/udp/172.23.92.19/31302 &); sleep .1; done fi ;; 1) @@ -92,9 +85,10 @@ case "$ROOM_NUMBER" in COLOR_B="$(echo "$STATE" | cut -d";" -f1 | cut -d"|" -f2)" if [ "${COLOR_A:0:1}" == "!" ]; then ${COLOR_A:1} >/dev/null 2>&1 & - echo $! > ${TMPFILE_PID_BASE}_1_A + PID=$! + echo $PID > ${TMPFILE_PID_BASE}_1_A.$PID else - for i in {1..5}; do (echo -en "$COLOR_A" > /dev/udp/172.23.92.15/49152 &); sleep .01; done + for i in {1..5}; do (echo -en "$COLOR_A" > /dev/udp/172.23.92.15/49152 &); sleep .1; done fi if [ "${COLOR_B:0:1}" == "!" ]; then ( @@ -103,11 +97,11 @@ case "$ROOM_NUMBER" in while true; do R1_=$(( RANDOM % 256 )); G1_=$(( RANDOM % 256 )); B1_=$(( RANDOM % 256 )) R2_=$(( RANDOM % 256 )); G2_=$(( RANDOM % 256 )); B2_=$(( RANDOM % 256 )) - while [ $R1 -ne $R1_ -o $G1 -ne $G1_ -o $B1 -ne $B1_ -o $R2 -ne $R2_ -o $G2 -ne $G2_ -o $B2 -ne $B2_ ]; do + while [ $R1 -ne $R1_ -a $G1 -ne $G1_ -a $B1 -ne $B1_ -a $R2 -ne $R2_ -a $G2 -ne $G2_ -a $B2 -ne $B2_ ]; do DR1=$(sign $(($R1_-$R1))); DG1=$(sign $(($G1_-$G1))); DB1=$(sign $(($B1_-$B1))) DR2=$(sign $(($R2_-$R2))); DG2=$(sign $(($G2_-$G2))); DB2=$(sign $(($B2_-$B2))) R1=$(($R1+$DR1)); G1=$(($G1+$DG1)); B1=$(($B1+$DB1)); R2=$(($R2+$DR2)); G2=$(($G2+$DG2)); B2=$(($B2+$DB2)) - echo "$R1 $G1 $B1 $R2 $G2 $B2" |\ + echo "${GAMMA_LUT[$R1]} ${GAMMA_LUT[$G1]} ${GAMMA_LUT[$B1]} ${GAMMA_LUT[$R2]} ${GAMMA_LUT[$G2]} ${GAMMA_LUT[$B2]}" |\ while read code; do printf "%03d" $code; done > /dev/udp/172.23.92.16/31302 & # echo -en "255204017255204017" > /dev/udp/172.23.92.16/31302 & sleep .2 @@ -117,7 +111,7 @@ case "$ROOM_NUMBER" in PID=$! echo $PID > ${TMPFILE_PID_BASE}_1_B.$PID else - for i in {1..5}; do (echo -en "$COLOR_B" > /dev/udp/172.23.92.16/31302 &); sleep .01; done + for i in {1..5}; do (echo -en "$COLOR_B" > /dev/udp/172.23.92.16/31302 &); sleep .1; done fi ;; 2) @@ -134,7 +128,7 @@ case "$ROOM_NUMBER" in R=$(( RANDOM % 256 )); G=$(( RANDOM % 256 )); B=$(( RANDOM % 256 )) while true; do R_=$(( RANDOM % 256 )); G_=$(( RANDOM % 256 )); B_=$(( RANDOM % 256 )) - while [ $R -ne $R_ -o $G -ne $G_ -o $B -ne $B_ ]; do + while [ $R -ne $R_ -a $G -ne $G_ -a $B -ne $B_ ]; do DR=$(sign $(($R_-$R))); DG=$(sign $(($G_-$G))); DB=$(sign $(($B_-$B))) R=$(($R+$DR)); G=$((G+$DG)); B=$(($B+$DB)) wget -q --timeout 3 -O- --input-file <(