Интеграция SimpleTV с EventGhost

Что такое EventGhost

Это инструмент для управления приложениями и операционной системой Windows, а также другим периферийным оборудованием, подключенным к компьютеру. EventGhost позволяет использовать различные устройства ввода, например, такие как инфракрасный (IgorUSB, WinLIRC и т.п.) или беспроводный пульт дистанционного управления, микрофон и др. Обработка команд производится при помощи макросов, которые, в свою очередь, выполняют требуемые действия или управляют подключенным оборудованием. Настройка макросов осуществляется через графический интерфейс.

События, которые могут запускать макросы:

  • Нажатия клавиш (горячие клавиши).
  • Команды с дистанционных пультов управления.
  • Команды с джойстиков и геймпадов.
  • Запуск программы или переключение программы.
  • События, полученные через TCP/IP от другой программы, такой как EventGhost (на другом компьютере), Girder, Netremote, voxcommando и прочих.
  • Специальный запрос HTTP, сделанный на внутренний веб-сервер.
  • События от другой программы, полученные через ActiveX.

Макросы имеют следующие возможности:

  • Запуск приложений.
  • Эмуляция нажатий клавиш.
  • Эмуляция перемещений мыши и кликов кнопок мыши.
  • Управление звуковой картой.
  • Перемещение и изменение размеров окон, а также другие манипуляции с окнами на рабочем столе.
  • Выполнение скриптов Python (редактор и компилятор Python встроены).
  • Передача ИК-команд внешним устройствам (если у вас ИК-приемопередатчик).
  • Управление внешними устройствами, такими как проекторы, телевизоры, музыкальные ресиверы и другое оборудование, через порт RS232 и/или TCP/IP сеть.
  • Управление программами, которые имеют специальные интерфейсы связи.

Используя плагины, вы можете расширить данный список.

Лицензия: GNU GPL v2

Официальный сайт программы: http://www.eventghost.org/

Зачем интегрировать SimpleTV с EventGhost

Возможные сценарии использования:

  • Управление SimpleTV с помощью пультов, используя большой выбор ресиверов (не только WinLirc), доступный список плагинов к ресиверам см. ниже.
  • Управление SimpleTV с помощью голоса http://voxcommando.com/mediawiki/index.php?title=EventGhost.
  • Программирование действий SimpleTV при входящем телефонном звонке, например постановка на паузу или уменьшение громкости.
  • Управление другим оборудованием в зависимости от событий SimpleTV, например включение и выключение телевизора (второй монитор на который выводится SimpleTV).

Плагины ресиверов в EventGhost

Зависимости

Для реализации всех ниже перечисленных возможностей необходимо:

Используемые технологии

  • Для обмена сообщениями [SimpleTV –> EventGhost] используются broadcast пакеты.
  • Для обмена сообщениями [EventGhost –> SimpleTV] используются сообщения по классу окна.

Как отправлять события из SimpleTV и обрабатывать эти события в EventGhost: [SimpleTV --> EventGhost]

Рассмотрим пример, в котором мы настроим:

  • Получение событий в EventGhost при запуске SimpleTV
  • Получение событий в EventGhost при срабатывании sleep таймера SimpleTV
Настройка broadcast ресивера в EventGhost

Добавить в EventGhost плагин Broadcast и настроить его, параметры настройки см. ниже.

Настройки плагина Broadcaster

Примечание: В строке Listening addres необходимо выбрать IP адрес вашего компьютера на котором будет слушать EventGhost.

Настройка рассылки broadcast сообщения при событии "Старт SimpleTV"

Достаточно по адресу C:\Program Files (x86)\simpleTV\luaScr\user\startup\ разместить файл broadcast_on_startup.lua со следующим содержимым:

require 'socket'
host = '192.168.2.154'
--host = m_simplTV.Config.GetConfigString(301)
port = 33333
message = 'SimpleTV.started'
 udp = socket.udp()
 print(udp:setoption('broadcast',true))
 print(udp:setsockname(host,0))
 print(udp:sendto(message, '255.255.255.255', port))

Примечание: В строке host = '192.168.2.154' необходимо вписать IP адрес вашего компьютера на котором слушает EventGhost.

Настройка рассылки broadcast сообщения при событии "Sleep таймер SimpleTV"

C:\Program Files (x86)\simpleTV\luaScr\events.lua - в файле описываются события SimpleTV и реакция на них.

Редактируем events.lua добавляя обработчик к событию m_simpleTV.Control.Reason == 'Sleeping':

require 'socket'
host = '192.168.2.154'
port = 33333\\
message_sleep = 'SimpleTV.Event.sleeping'
-cut-

-cut-
if m_simpleTV.Control.Reason == 'Sleeping' then
 udp = socket.udp()
 print(udp:setoption('broadcast',true))
 print(udp:setsockname(host,0))
 print(udp:sendto(message_sleep, '255.255.255.255', port))
end

Примечание: В строке host = '192.168.2.154' необходимо вписать IP адрес вашего компьютера на котором слушает EventGhost.

В настройках SimpleTV: Настройки-Система-Выключение-Способ выключения: «Event only». Эта настройка позволит при срабатывании sleep таймера не выключать компьютер средствами SimpleTV, а только передать в EventGhost информацию о срабатывании таймера. Все процедуры выключения компьютера и периферийного оборудования (например телевизора) обеспечивается EventGhost.

Настройка SimpleTV на эксклюзивную передачу broadcast сообщения в EventGhost при срабатывании sleep таймера

Пример EventGhost обработчика sleep таймера SimpleTV приведен на рисунке ниже.

Пример EventGhost обработчика при срабатывании sleep таймера в SimpleTV

Обсуждение здесь: http://iptv.gen12.net/bugtracker/view.php?id=889

Как управлять SimpleTV с помощью EventGhost: [EventGhost --> SimpleTV]

Добавить в EventGhost плагин SimpleTV (плагин написан по мотивам аналогичного плагина для KMP, так-что не судите строго)

Скачать можно здесь: http://iptv.gen12.net/bugtracker/view.php?id=889

Для установки плагина распакуйте его и скопируете папку в «ПутьУстановки\EventGhost\plugins\»

Зашли как: Anonymous (Anonymous)
mantis/simpletv/интеграция_simpletv_с_eventghost.txt · Последние изменения: 13/10/2016 15:25 — Kvantos
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki