Skip to content

RTUITLab/ITTV

Repository files navigation

ITTV

Содержание

  1. Описание
    1. Режим администратора
  2. Стек
  3. Конфигурация
    1. Configuration
    2. Cache
    3. Games
    4. ScheduleImages
    5. Videos
      • Videos\Background
    6. Logs
  4. Кража фокуса экрана другими приложениями
  5. Deploy
  6. License

Описание

Данное приложение позволяет просматривать расписание Института ИТ РТУ МИРЭА, запускать различные поддерживаемые игры, просматривать видеоролики и новости с оффициального сайта РТУ МИРЭА.

Также дает возможность взаимодействовать с приложением путем использования внешнего оборудования - Kinect'a.

Адаптировано только под Kinect v2.0 Microsoft Xbox.

Режим Администратора

Существуют следующие особенности данного режима:

  • В случае, если режим Администратора не активен, приложение невозможно закрыть стандартными методами, в том числе Alt+F4, так как оно будет бесконечно перезапускаться
  • В режиме Администратора в верхнем правом углу будут отображаться уведомления об ошибках в работе приложения
  • В режиме Администратора отображается курсор мыши

Для включения данного режима необходимо в файле конфигурации указать полю isAdminMode значение true.

Стек

Здесь используются следующие библиотеки и фреймворки:

Также активно используется паттерн разработки MVVM.

Конфигурация

Configuration

В главной директории располагается файл конфигурации configuration.json, который имеет следующую структуру:

{
  "Settings": {
    "isAdminMode": true, // включения режима админского управления, включающего в себя: возможность выключения через alt+F4 и работу мыши
    "needCheckTime": true, // включение режима ночной работы приложения (ночью работает герб РТУ МИРЭА, вместо фоновых видеороликов)
    "startWorkTime": "08:00:00", // время начала работы сервиса, HH:mm:ss
    "endWorkTime": "22:00:00", // время завершения работы сервиса, переход в спящий режим, HH:mm:ss
    "inactiveModeTime" : "00:01:00", // допустимая длительность бездействия, HH:mm:ss
    "cacheUpdateInterval": "00:20:00", // частота обновления кэшируемых данных, HH:mm:ss
    "videoVolume": 1, // уровень громкости всех видеороликов в приложении. Значение: от 0 до 1
    "backgroundVideoOrder": [], // плейлист фоновых видеороликов
    "eggVideoCommands": []
  }
}

Cache

При взаимодействии с сервером все данные (расписание групп, новости) кэшируются на период, заданный в конфигурации в поле cacheUpdateInterval.

Пример конфигурации при периоде кэширования 30 минут:

{
  "Settings": {
    "isAdminMode": false, 
    "needCheckTime": false, 
    "startWorkTime": "00:00:00", 
    "endWorkTime": "00:00:00", 
    "inactiveModeTime" : "00:00:00", 
    "cacheUpdateInterval": "00:30:00", 
    "videoVolume": 0, 
    "backgroundVideoOrder": [], 
    "eggVideoCommands": []
  }
}

Проверка актуальности кэша осуществляется во время обращении к нему, за исключением кэша новостей. Последний обновляется постоянно, с частотой, указаной в поле cacheUpdateInterval.

Games

Для размещения игр необходимо добавить директорию с исполняемым файлом игры в директорию Games. Название директории будет являться названием игры в разделе Игры.

ScheduleImages

В директории Images\ScheduleImages необходимо разместить расписание курса в поддерживаемом формате (для получение из excel файла изображения можно воспользоваться любым онлайн конвертером).

Поддерживаемые форматы изображения : .png, .jpg, .jpeg.

Расписание для курсов бакалавриата размещается в директории Images\ScheduleImages\Bachelor:

  • 1.* - расписание первого курса
  • 2.* - расписание второго курса
  • 3.* - расписание третьего курса
  • 4.* - расписание четвертого курса

Расписание для курсов бакалавриата размещается в директории Images\ScheduleImages\Master:

  • 1.* - расписание первого курса
  • 2.* - расписание второго курса

Пример полного названия файла - 1.png.

Videos

Поддерживаемые форматы видеофайлов: ogg, mov, mp4.

Для добавления видеоролика в раздел Видео необходимо разместить видео в поддерживаемом формате в директории Videos.

Videos\Background

Чтобы добавить видео для фонового проигрывания (режим бездействия), нужно поместить видеоролики в директорию Videos\Background и прописать название видеоролика в файле configuration.json.

Пример конфигурации при названии ролика 1.mp4:

{
  "Settings": {
    "isAdminMode": false, 
    "needCheckTime": false, 
    "startWorkTime": "00:00:00", 
    "endWorkTime": "00:00:00", 
    "inactiveModeTime" : "00:00:00", 
    "cacheUpdateInterval": "00:00:00", 
    "videoVolume": 0, 
    "backgroundVideoOrder": [
       "1.mp4"
    ], 
    "eggVideoCommands": []
  }
}

Logs

Логи приложения пишутся в файл logs.txt, который располагается в корневом каталоге.

Кража фокуса экрана другими приложениями

Для модуля KinectControls необходимо наличие фокуса на экране. При отсутствии фокуса на нем вы не сможете взаимодействовать с решением и оно просто не будет реагировать на ввод.

В системе Windows очень часть сторонние приложения запускаемые по таймеру или любому другому триггеру производят эффект, называемый Stilling Focus. Так, при открытии любого окна поверх приложения, оно будет неактивно.

Для решения данной проблемы мы рекомендуем использовать приложение Turbotop. Оно достаточно легковесное и позволяет выбирать окно приложения как активное, что защитит его от кражи фокуса и оно всегда будет воспроизводиться OnTop.

Deploy

Для развертывания приложения необходимо предустановить следующие компоненты:

Детальную информацию можно найти в последнем релизе

License