mirror of https://github.com/Lapikud/Viido.git
parent
1a0b4f774a
commit
6b5e0c778e
1 changed files with 168 additions and 0 deletions
@ -0,0 +1,168 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
PROJECTOR_HOSTNAME='projektor' |
||||||
|
|
||||||
|
display_help() |
||||||
|
{ |
||||||
|
echo "Usage: $0 [option...] <command> <setting> [<parameter>]" >&2 |
||||||
|
echo |
||||||
|
echo " -h, --help Show this message" |
||||||
|
echo " -f, --force" |
||||||
|
echo |
||||||
|
echo "Commands:" |
||||||
|
echo " get <setting>" |
||||||
|
echo " set <setting> <on|off>" |
||||||
|
echo " switch <setting>" |
||||||
|
echo |
||||||
|
echo "Settings:" |
||||||
|
echo " power" |
||||||
|
echo " mute" |
||||||
|
echo " freeze" |
||||||
|
echo |
||||||
|
echo "Examples:" |
||||||
|
echo " get mute" |
||||||
|
echo " set freeze on" |
||||||
|
echo " switch power" |
||||||
|
exit 1 |
||||||
|
} |
||||||
|
|
||||||
|
send_request() |
||||||
|
{ |
||||||
|
D="" |
||||||
|
for a in $@ |
||||||
|
do |
||||||
|
D="$D%$a" |
||||||
|
done |
||||||
|
URL="http://$PROJECTOR_HOSTNAME/cgi-bin/pjctrl.cgi.elf?D=$D" |
||||||
|
echo $(curl -s $URL | sed 's/\[//; s/\]//' | xargs -d ',') |
||||||
|
} |
||||||
|
|
||||||
|
get_power() |
||||||
|
{ |
||||||
|
STATUS=(`send_request 06 00 85 00 00 01 01 87`) |
||||||
|
echo ${STATUS[7]} |
||||||
|
} |
||||||
|
|
||||||
|
set_power() |
||||||
|
{ |
||||||
|
if [[ $1 -eq 1 ]]; |
||||||
|
then |
||||||
|
STATUS=`send_request 05 02 00 00 00 00` |
||||||
|
else |
||||||
|
STATUS=`send_request 05 02 01 00 00 00` |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
switch_power() |
||||||
|
{ |
||||||
|
STATUS=`get_power` |
||||||
|
if [[ $STATUS -eq 1 ]]; |
||||||
|
then |
||||||
|
STATUS=`set_power 0` |
||||||
|
else |
||||||
|
STATUS=`set_power 1` |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
get_mute() |
||||||
|
{ |
||||||
|
STATUS=(`send_request 06 00 85 00 00 01 03 89`) |
||||||
|
echo ${STATUS[5]} |
||||||
|
} |
||||||
|
|
||||||
|
set_mute() |
||||||
|
{ |
||||||
|
if [[ $1 -eq 1 ]]; |
||||||
|
then |
||||||
|
STATUS=`send_request 05 02 10 00 00 00 13` |
||||||
|
else |
||||||
|
STATUS=`send_request 05 02 11 00 00 00 13` |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
switch_mute() |
||||||
|
{ |
||||||
|
STATUS=`get_mute` |
||||||
|
if [[ $STATUS -eq 1 ]]; |
||||||
|
then |
||||||
|
STATUS=`set_mute 0` |
||||||
|
else |
||||||
|
STATUS=`set_mute 1` |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
get_freeze() |
||||||
|
{ |
||||||
|
STATUS=(`send_request 06 00 BF 00 00 01 02 C2`) |
||||||
|
echo ${STATUS[14]} |
||||||
|
} |
||||||
|
|
||||||
|
set_freeze() |
||||||
|
{ |
||||||
|
if [[ $1 -eq 1 ]]; |
||||||
|
then |
||||||
|
STATUS=`send_request 06 01 98 00 00 01 01 00` |
||||||
|
else |
||||||
|
STATUS=`send_request 06 01 98 00 00 01 02 00` |
||||||
|
fi |
||||||
|
echo $STATUS |
||||||
|
} |
||||||
|
|
||||||
|
switch_freeze() |
||||||
|
{ |
||||||
|
STATUS=`get_freeze` |
||||||
|
if [[ $STATUS -eq 1 ]]; |
||||||
|
then |
||||||
|
STATUS=`set_freeze 0` |
||||||
|
else |
||||||
|
STATUS=`set_freeze 1` |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
# options |
||||||
|
while : |
||||||
|
do |
||||||
|
case "$1" in |
||||||
|
-h | --help) |
||||||
|
display_help |
||||||
|
exit 0 |
||||||
|
;; |
||||||
|
-f | --force) |
||||||
|
echo "Nothing to force, man" |
||||||
|
shift |
||||||
|
;; |
||||||
|
--) |
||||||
|
shift |
||||||
|
break |
||||||
|
;; |
||||||
|
-*) |
||||||
|
display_help |
||||||
|
exit 1 |
||||||
|
;; |
||||||
|
*) |
||||||
|
break |
||||||
|
;; |
||||||
|
esac |
||||||
|
done |
||||||
|
|
||||||
|
# commands |
||||||
|
case "$1" in |
||||||
|
get | set | switch) |
||||||
|
FNAME="$1_$2" |
||||||
|
if [[ `type -t $FNAME` == '' ]] |
||||||
|
then |
||||||
|
echo "Invalid parameter for $1" |
||||||
|
display_help |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
OPT=`sed 's/on/1/; s/off/0/' <<< $3` |
||||||
|
$FNAME $OPT |
||||||
|
;; |
||||||
|
*) |
||||||
|
echo 'Invalid command' |
||||||
|
display_help |
||||||
|
exit 1 |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
Loading…
Reference in new issue