воскресенье, 7 ноября 2010 г.

HDX BD-1. ПДУ из под терминала.

В HDX BD-1 присутствует возможность управления передачей команд через 30000 порт. Учитывая, что у пользователей есть мобильные устройства с интерфейсм wi-fi, это достаточно перспективный способ.
#!/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
Пользоваться ей очень просто:
  1. Скопировать текст программы в файл remote.sh
  2. Дать ему права на исполнение и запустить:
$ chmod +x remote.sh $ ls -la remote.sh -rw-r--r-- 1 akhromov akhromov 0 2010-11-05 14:20 remote.sh $ ./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.

Буду признателен, если по результатам напишите, что получилось.

Обсуждение в форуме.

Комментариев нет:

Отправить комментарий