Вакансии для программистов

Видеоплеер для велодорожки

Видеоплеер создан для оборудования велосипедной 3D дорожки. Основной задачей видеоплеера является проигрывание заранее записаннного видеофайла велодорожки с привязкой кадров видеофайла к конкретному виртуальному положению велосипеда на дорожке. Кроме того платформа велодорожки управляется в 3D пространстве (тангаж, наклоны). Видеоплеер учитывая положение велосипеда на виртуальной дороге способно отдавать команды по сети 3D платформе, для выставления ее в актуальное положение. Входным сигналом для плеера является датчик скорости, через который вычисляется текущее положение спортсмена на дорожке.

В функции видеоплеера входят:

  • Плавное проигрывание видеофайла с произвольной скоростью.
  • Контроль за частотой кадров и управление кадровой частотой в зависисмости от скорости проигрывания файла и возможностей аппаратуры.
  • Возможность проигрывания каталогов, содержащих последовательности кадров.
  • Считывание по протоколу Modbus, иным протоколам на последовательных портах, задаваемым вручную, присылаемым по сети текущей скорости с датчика скорости.
  • Вычисление текущего положения спортсмена и считывания данных для 3D платформы.
  • Управление 3D платформой непосредственно через последовательный порт или управление удаленной 3D платформой по сети.
  • Мониторинг всех состояний системы.
  • Настройка в файлах конфигурации и при помощи интерфейса. Интерфейс сохраняет конфигурационный файлы.

Для запуска программы в тестовом режиме управления скоростью проигрывания требуется либо использовать нуль-модемный кабель между двумя имеющимися COM портами, либо заранее установить эмулятор нуль-модемного кабеля com0com.

После успешной установки эмулятора нуль-модема запустите процесс настройки:

1

Используйте настройки, как показано на рисунке:


2

Для удобства я выбрал в качестве названия COM портов COM10 и COM11. Программа сканирует порты существующие с названиями COM* поэтому порты с другими названиями будут не видны программой. Остальные настройки оставьте как на рисунке.

Запустите плеер. Кнопка '>>' открывает дополнительное поле, в котором виден лог текущийх событий. Angle - диалог управления углами поворота, Speed - диалог управления скоростью. Нажмите Speed.


3

Чекбоксы: Active - использовать COM порт или эмулятор. Используется для отключения посылок данных, если это не требуется. View: Показывать лог в боковой панели. Используется для отключения лога, если не нужен. Dump: сохранять обмен в специальном dump файле для последующего анализа.

Группа Speed control: управляемая часть прграммы. Данная часть считывает скорость и сохраняет ее в переменной, которая используется для задания скорости проигрывания. Скорости на данный момент относительны нормального проигрывания видео, которе считаеся единичным. Слайдер в этой панели непосредственно устанавливает скорость проигрывания, автоматом двигая нижний слайдер. Save: сохраняет текущие установки для использования по умолчанию при новом старте программы. COM порт - порт для чтения команды установки скорости. Про нажатии на кнопку Open октрвается порт и посылаются регулярные посылки опроса по протоколу MODBUS RTU.

Группа Speed emulator: эмулятор устройства на шине MODBUS RTU подключенный через нуль-модем или эмулятор нуль-модема. COM порт и Emul COM port - порты на концах нуль-модема. Про подключении Emul COM port происходит ответ на регулярные запросы от COM порт с указанием текущей скрости. Слайдер задает предаваемую скорость, которая должна быть установлена.


4

Устновите ранее заданные порты COM10 и COM11 или те, к которым подключен нуль-модем Используйте чекбоксы Show для наблюдения за происходящим. Нажмите кнопку Open для эмулятора (нижная кнопка). Порт откроется и перейдет состояние ожидания команды.


5

Используйте чекбоксы dump, если хотите почитать лог обмена. Нажмите кнопку Open для читения скорости (верхняя кнопка). регулятные запросы будут проходить через нуль-модем и будет видна деятельность в обоих окошках. При проигрывании файла не нужно специально нажимать верхнюю кнопку Open. Если настроенный вариант вы сохраните кнопкой Save (автоматом сохранится в конфиг), то при проигрывании файла порт откроется автоматически. Во время процесса опроса двигайте нижний слайдер. Данные по скорости будут меняться, предаваться через нуль-модем и устанавливать значение верхнего слайдера.


6

Вы можете использовать 2 копии программы, запущенные одновременно на одном или разных компьютерах (при использовании физического нуль-модема между ними.) Используйте верхнюю программу как управляемую, а нижнюю как управляющий эмулятор устройства MODBUS, который сообщает текущую скрость.


7

Двигайте нижний слайдер скорости на нижный программе, верхний слайдер будет устанавливаться сам в нужное положение согласно текущей скрости. Обмен будет виден как на рисунке.


8

Примечания:

  • Используемая скорость: 9600
  • количество бит: 8
  • стоп битов: 1
  • четность: EVEN

Предаваемая команда протокола MODBUS RTU: READ HOLDING REGISTERS.