Интеграция возможностей¶
В этом разделе описано, как интегрировать удалённый рабочий стол FIRERPA и связанные с ним возможности. Вы можете встроить их во фронтенд-страницы для управления, отображения и других задач. Подробное описание здесь не приводится — обратитесь к документации APIFOX для просмотра и тестирования. Однако сначала необходимо познакомиться с предварительными настройками и другой базовой информацией.
Подсказка
Для понимания следующего материала вам потребуются базовые знания о WebSocket, отрисовке через Canvas и H.264.
Предварительная настройка¶
Чтобы упростить тестирование интерфейсов, убедитесь, что устройство подключено к текущему компьютеру по USB и что на устройстве не включена проверка сертификата входа (HTTPS). После выполнения этих двух шагов также необходимо завершить настройку на платформе APIFOX. Поскольку используются WS-интерфейсы, потребуется установить десктопный клиент APIFOX (не веб-версию) и импортировать соответствующий проект в клиент. Способы установки и импорта изучите самостоятельно.
Видео в реальном времени¶
Видео в реальном времени передаётся по WebSocket и поддерживает два формата: MJPEG (Motion JPEG) и H.264 NALU. MJPEG проще всего в использовании: фактически передаются последовательные снимки экрана устройства, и при достаточно высокой скорости передачи они образуют динамический экран в реальном времени. Вам достаточно отрисовывать каждое полученное по WebSocket сообщение-кадр в формате JPEG на экране. Формат H.264 предъявляет более высокие требования к базовым знаниям, поскольку перед отрисовкой на canvas его необходимо декодировать. Вы можете самостоятельно найти и интегрировать существующий декодер H.264 или выполнить декодирование и отрисовку самостоятельно.
По сравнению с MJPEG формат H.264 позволяет сократить трафик как минимум вдвое и работает быстрее, однако подходит не для всех устройств. На некоторых устройствах производительность собственного H.264-кодирования может быть невысокой — в таком случае следует использовать передачу MJPEG. Разумеется, у MJPEG есть и недостаток: поскольку каждый кадр является полным изображением, требования к пропускной способности выше.
Сенсорный ввод в реальном времени¶
Сенсорный ввод в реальном времени также передаётся по WebSocket и не имеет особых отличий. Достаточно отправлять три типа действий — «нажатие», «перемещение» и «отпускание» — в заданном формате. Их можно инициировать через веб-события mousedown, mouseup и т. п., а основными передаваемыми данными являются тип события и координаты. Единственный важный момент: необходимо выполнить преобразование координат на основе canvas и фактического размера экрана, чтобы вычислить реальные координаты на экране, соответствующие координатам действия пользователя на canvas.
Работа с клавишами¶
Работа с клавишами относительно проста: достаточно отправить POST-запрос в определённом формате к соответствующему интерфейсу. Она поддерживает управление навигационными клавишами устройства и обычный ввод английского текста.
Командный терминал¶
Командный терминал работает по WebSocket; для интеграции потребуется использовать xterm.js или аналогичную технологию. Достаточно отформатировать ввод и вывод в заданный формат согласно документации API и отправить данные либо запросить вывод xterm.
Команды реального времени¶
Интерфейс команд реального времени используется для отправки на устройство инструкций автоматизации или управления. Конкретный формат запросов и пути WebSocket/HTTP см. в документации проекта APIFOX. При интеграции рекомендуется использовать его вместе с «Видео в реальном времени» и «Сенсорным вводом в реальном времени», чтобы обеспечить синхронизацию изображения и действий.