@WadDad,
you can try the following script:
Code:
--------------------
#!/bin/sh
# Enabling some useful piCorePlayer functions
. /var/www/cgi-bin/pcp-functions
. /var/www/cgi-bin/pcp-lms-functions
WDIR=/home/tc/lux
# if the measured value is below MIN_THRESHOLD then the display is set to
MIN_BRIGHTNESS
MIN_THRESHOLD=1
MIN_BRIGHTNESS=20 # minimum display brightness if piCorePlayer is running
MIN_BRIGHTNESS_OFF=10 # minimum display brightness if piCorePlayer is
switched off
# if the measured value is above MAX_THRESHOLD then the display is set to
MAX_BRIGHTNESS
MAX_THRESHOLD=400
MAX_BRIGHTNESS=255 # maximum display brightness if piCorePlayer is
running
MAX_BRIGHTNESS_OFF=150 # maximum display brightness if piCorePlayer is
switched off
# Calculation of some variables
# a) if piCorePlayer is running
LUX_RANGE=$(echo "$MAX_THRESHOLD-$MIN_THRESHOLD" | bc)
BRIGHTNESS_RANGE=$(echo "$MAX_BRIGHTNESS-$MIN_BRIGHTNESS" | bc)
STEPSIZE=$(echo "scale=2 ; $LUX_RANGE/$BRIGHTNESS_RANGE" | bc -l | cut -f1
-d\.);
# b) if piCorePlayer is switched off
BRIGHTNESS_RANGE_OFF=$(echo "$MAX_BRIGHTNESS_OF-$MIN_BRIGHTNESS_OFF" | bc)
STEPSIZE_OFF=$(echo "scale=2 ; $LUX_RANGE/$BRIGHTNESS_RANGE_OFF" | bc -l |
cut -f1 -d\.);
# time interval between two measurements
INTERVAL=5
# Let's wait until pCP is up & running
sleep 20
while true; do
# Measuring the current LUX value
LUX=$($WDIR/lux)
# Determining state of piCorePlayer (on/off)
REQUEST=$(pcp_lms_build_request "$NAME" "status -")
RESULT=$(pcp_lms_build_result result "power")
PCP_STATE=$(pcp_lms_json_request)
# Calculating the target brightness of the display
# a) if piCorePlayer is running
if [ $PCP_STATE -eq "1" ]; then
if [ $LUX -lt $MIN_THRESHOLD ]; then
TRGT=$MIN_BRIGHTNESS
elif [ $LUX -gt $MAX_THRESHOLD ]; then
TRGT=$MAX_BRIGHTNESS
else
TRGT=$(echo "$MIN_BRIGHTNESS+(($LUX-$MIN_THRESHOLD)/$STEPSIZE)" | bc -l | cut
-f1 -d\.);
fi
# b) if piCorePlayer is switched off
elif [ $PCP_STATE -eq "0" ]; then
if [ $LUX -lt $MIN_THRESHOLD ]; then
TRGT=$MIN_BRIGHTNESS_OFF
elif [ $LUX -gt $MAX_THRESHOLD ]; then
TRGT=$MAX_BRIGHTNESS_OFF
else
TRGT=$(echo "$MIN_BRIGHTNESS_OFF+(($LUX-$MIN_THRESHOLD)/$STEPSIZE_OFF)" | bc
-l | cut -f1 -d\.);
else
# error
exit 1
fi
# Setting the brightness value of the display
echo $TRGT > /sys/class/backlight/rpi_backlight/brightness
# Uncomment for debugging & testing
# echo $LUX
# echo $TRGT
# Wait some seconds before the next calculation
sleep $INTERVAL
done
--------------------
The script defines new variables (ending with "_OFF") for the use case
when pCP is switched off. These new variables are later used to
calculate the display brightness when pCP is not running. Hence, you can
play with these variables to get the result your are looking for.
------------------------------------------------------------------------
jd68's Profile: http://forums.slimdevices.com/member.php?userid=30795
View this thread: http://forums.slimdevices.com/showthread.php?t=112460
_______________________________________________
unix mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/unix