#!/bin/bash
# Эта программа читает сканы с клавиатуры компьютера и отправляет их в 30000 порт HDX BD1.
# Сделана на основе
# http://www.networkedmediatank.com/showthread.php?tid=30168&pid=277384#pid277384
# Клавиша "Пробел" заменяет "Enter"
# "Esc" - выход
# IP адрес моего HDX BD1
BD1="192.168.1.61"
get_key() #@ USAGE: get_key var
{
local _v_ _w_ _x_ _y_ _z_ delay=${delay:-.0001}
IFS= read -d '' -rsn1 _v_
read -sn1 -t "$delay" _w_
read -sn1 -t "$delay" _x_
read -sn1 -t "$delay" _y_
read -sn1 -t "$delay" _z_
case $_v_ in
$'\e')
echo Bye
exit 1
;;
*) printf -v ${1:?} "%s" "$_v_$_w_$_x_$_y_$_z_" ;;
esac
}
while true
do
get_key KEY
case $KEY in
' ')
printf "\n" | nc $BD1 30000 -w 1
;;
*)
printf "%s" $KEY
printf "%s" $KEY | nc $BD1 30000 -w 1
;;
esac
done
Пользоваться ей очень просто:
- Скопировать текст программы в файл remote.sh
- Дать ему права на исполнение и запустить:
R - стрелка вправо,
L - стрелка вправо,
U - стрелка вправо,
D - стрелка вправо,
Пробел - Enter,
Esc - выход
и т.д.
К сожалению программисты HDX BD-1 не до конца реализовали данную возможность. Точнее наделали несколько ляпов. Так например, если плеер запустил screen saver, то выключить его можно только с физического пульта.
Или еще недоделка: если запущено проигрывание мультимедия файла из терминала его остановить невозможно.
Но, надеюсь эти недостатки будут устранены в ближайшей прошивке.
PS. Да, чуть не забыл.
Это работает под linux. В windows из коробки такого инструмента нет.
Возможно установка linux shell решит проблему.
Если пользователи windows захотят попробовать, то советую посмотреть на этот обзор: Alternative Command Shells for Windows. А именно на Cygwin и Windows Services for UNIX.
Буду признателен, если по результатам напишите, что получилось.
Обсуждение в форуме.
Комментариев нет:
Отправить комментарий