Инструкция по установке

Встроенное программное обеспечение видеоларингоскопа «СЕНСАР»

  1. Общие сведения

Настоящий документ является руководством по установке, настройке и техническому обслуживанию встроенного программного обеспечения видеоларингоскопа «СЕНСАР» версии 1.15.

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

Целью установки является развёртывание исполняемого бинарного файла и сопутствующих медиаресурсов на встроенной Linux-платформе устройства с обеспечением автоматического запуска ПО при включении питания.

Разработчик программного обеспечения: ООО «ШИФТАПП».

2. Требования к системе

2.1. Аппаратная платформа устройства

КомпонентХарактеристика
ПроцессорRockchip RV1126, ARM Cortex-A7, 4 ядра
Оперативная память1.75 ГБ DDR
НакопительeMMC (внутренняя flash-память)
ДисплейЖК, 4.5”, сенсорный, разрешение 854×480
КамераUSB UVC-совместимая, поддержка MJPEG
БатареяLi-ion с контроллером заряда
Интерфейс передачи данныхUSB Type-C
Беспроводная сетьWi-Fi 802.11 b/g/n
NFCUART

2.2. Программная платформа устройства

КомпонентВерсия / Описание
Операционная системаLinux (Buildroot-based)
Графическая подсистемаQt 5.9.4 (linuxfb + DRM)
Init-системаBusyBox init (rcS)
Файловая система данныхext4 (/userdata)

3. Состав поставки

Пакет установки поставляется в виде ZIP-архива. Содержимое архива:

ФайлОписаниеРазмер
sensarИсполняемый файл приложения (ARM, ELF)~15 МБ
guide_video.aviВидеоинструкция (формат MJPEG AVI)~100 МБ
laryngoscope/19 изображений JPG для раздела «Инструкция по применению»~15 МБ
first-setup.batСкрипт первоначальной настройки нового устройства (Windows)< 1 КБ
install.batСкрипт обновления ПО на уже настроенном устройстве (Windows)< 1 КБ
INSTALL.mdКраткая инструкция по установке< 1 КБ
CHANGELOG.mdИстория изменений версий ПО< 1 КБ

Перед началом установки убедитесь, что все перечисленные файлы присутствуют в распакованном архиве.

4. Требования к рабочей станции

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

Операционная система: - Microsoft Windows 7 / 8 / 10 / 11 - Red OS 7 / 8 (или иной дистрибутив Linux с поддержкой ADB)

Необходимое программное обеспечение:

ПОНазначениеИсточник
Android SDK Platform Tools (ADB)Взаимодействие с устройством по протоколу ADBdeveloper.android.com/tools/releases/platform-tools

Аппаратное обеспечение: - USB Type-C кабель для подключения устройства к рабочей станции

4.1. Установка ADB

  1. Перейти на страницу загрузки Android SDK Platform Tools.
  2. Скачать архив для соответствующей операционной системы.
  3. Распаковать архив в произвольную директорию (например, C:\platform-tools).
  4. Добавить путь к директории в переменную окружения PATH.

Проверка корректности установки — выполнить команду:

adb version

Должна отобразиться строка вида Android Debug Bridge version X.XX.

5. Автоматическая установка

В зависимости от ситуации используется один из двух скриптов:

СкриптКогда использовать
first-setup.batПервая установка на новое устройство, которое ещё не было настроено под встроенное программное обеспечение видеоларингоскопа «СЕНСАР»
install.batОбновление ПО на устройстве, где встроенное программное обеспечение видеоларингоскопа «СЕНСАР» уже установлено и настроено

5.1. Первая установка — first-setup.bat

Применяется при первом развёртывании встроенного программного обеспечения видеоларингоскопа «СЕНСАР» на устройстве. Скрипт выполняет полную настройку с нуля: отключает штатное ПО производителя, настраивает автозапуск, оптимизирует загрузку.

Порядок выполнения:

  1. Подключить устройство к рабочей станции кабелем USB Type-C.
  2. Открыть папку с распакованным архивом в проводнике Windows/Red os.
  3. Запустить first-setup.bat двойным щелчком мыши.
  4. Дождаться завершения (~3 минуты с учётом копирования видеофайла ~100 МБ).
  5. По завершении устройство перезагрузится автоматически и отобразит результаты проверки.

Действия скрипта:

ШагДействие
1/12Диагностика текущего состояния устройства
2/12Остановка запущенного ПО
3/12Отключение штатного ПО производителя (S40app)
4/12Копирование бинарного файла /data/sensar
5/12Копирование видеоинструкции guide_video.avi
6/12Копирование изображений laryngoscope/
7/12Создание скрипта автозапуска sensar-run.sh и init-скрипта S25sensar
8/12Отключение лишних системных сервисов, оптимизация загрузки
9/12Настройка кнопки питания (powerkey_service)
10/12Очистка QML-кэша
11/12Синхронизация файловой системы (sync)
12/12Перезагрузка и автоматическая проверка результата

5.2. Обновление ПО — install.bat

Применяется для обновления версии ПО на устройстве, которое уже прошло первоначальную настройку. Скрипт только заменяет исполняемый файл и медиаресурсы — автозапуск и системные настройки не затрагиваются.

Порядок выполнения:

  1. Подключить устройство к рабочей станции кабелем USB Type-C.
  2. Открыть папку с распакованным архивом в проводнике Windows/Red os.
  3. Запустить install.bat двойным щелчком мыши.
  4. Дождаться завершения (~90 секунд).
  5. По завершении устройство перезагрузится автоматически.

Действия скрипта:

ШагДействие
1Проверка ADB подключения
2Остановка текущего ПО
3Копирование нового бинарного файла /data/sensar
4Копирование медиафайлов (если SEND_MEDIA=true)
*Проверка порядка автозапуска (S15→S25, если требуется)
*Очистка QML-кэша
*Синхронизация файловой системы и перезагрузка

Если устройство не обнаружено на шаге 1 — переподключить USB Type-C кабель и повторить.

6. Ручная установка через ADB

Ручная установка применяется при отсутствии возможности запустить install.bat (например, при работе с рабочей станцией под управлением Linux), либо для выборочного обновления отдельных компонентов.

Шаг 1: Проверить подключение ADB

Выполнить команду:

adb devices

В выводе должна присутствовать строка с идентификатором устройства и статусом device. Если список пуст или устройство отображается как unauthorized — переподключить USB Type-C кабель, при необходимости проверить установку ADB-драйверов.

Шаг 2: Остановить текущее ПО

adb shell "killall sensar 2>/dev/null; killall camera 2>/dev/null; killall run.sh 2>/dev/null; true"

Команда завершает все запущенные процессы, которые могут заблокировать запись файлов. Если процессы не запущены — ошибок не возникает (обрабатывается 2>/dev/null; true).

Шаг 3: Скопировать файлы на устройство

Основной исполняемый файл:

adb push sensar /data/sensar

Видеоинструкция:

adb push guide_video.avi /userdata/guide_video.avi

Создание папки и копирование изображений инструкции по применению:

adb shell "rm -rf /userdata/laryngoscope; mkdir -p /userdata/laryngoscope"
adb push laryngoscope/. /userdata/laryngoscope/

Назначение файлов:

ФайлПуть на устройствеНазначение
sensar/data/sensarОсновной исполняемый файл приложения
guide_video.avi/userdata/guide_video.aviВидеоинструкция в разделе «Руководство» → «Видеоинструкция»
laryngoscope//userdata/laryngoscope/19 JPG-изображений для раздела «Руководство» → «Инструкция по применению»

Важно: При копировании папки laryngoscope использовать laryngoscope/. (с точкой в конце пути-источника). Без точки команда adb push создаёт вложенную папку /userdata/laryngoscope/laryngoscope/ вместо копирования содержимого.

Шаг 4: Установить права на выполнение

adb shell "chmod +x /data/sensar"

Шаг 5: Отключить старое ПО (только при первой установке)

На устройствах заказчика присутствует штатное ПО производителя (/app/camera), запускаемое через init-скрипт S40app. Его необходимо отключить:

adb shell "mv /etc/init.d/S40app /etc/init.d/disabled_S40app 2>/dev/null || true"
adb shell "killall camera 2>/dev/null; killall run.sh 2>/dev/null"

Важно: Переименование файла с суффиксом .disabled (например, S40app.disabled) не даёт нужного результата. BusyBox rcS выполняет все файлы, подходящие под паттерн S??*. Файл с именем S40app.disabled соответствует этому паттерну и будет запущен. Для корректного отключения необходимо убрать префикс S из имени файла — отсюда и форма disabled_S40app.

Шаг 6: Создать скрипт автозапуска (только при первой установке)

adb shell "echo -e '#!/bin/sh\nexport LD_LIBRARY_PATH=/usr/lib\nexport QT_QPA_FB_DRM=1\nexport QT_QPA_PLATFORM=\"linuxfb:size=800x480:mmSize=800x480:offset=0x0\"\nexport QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event0\n/data/sensar &' > /etc/init.d/S99sensar && chmod +x /etc/init.d/S99sensar"

Скрипт /etc/init.d/S99sensar обеспечивает автоматический запуск ПО при каждом включении устройства. Переменные окружения, задаваемые скриптом, описаны в разделе 9.

Шаг 7: Перезагрузить устройство

adb shell reboot

После загрузки встроенное программное обеспечение видеоларингоскопа «СЕНСАР» запустится автоматически через ~30 секунд.

7. Обновление ПО

Если встроенное программное обеспечение видеоларингоскопа «СЕНСАР» уже установлено на устройстве и скрипт автозапуска настроен, для обновления до новой версии достаточно скопировать обновлённые файлы:

adb shell "killall sensar 2>/dev/null; true"
adb push sensar /data/sensar
adb shell "chmod +x /data/sensar"
adb push guide_video.avi /userdata/guide_video.avi
adb shell "rm -rf /userdata/laryngoscope; mkdir -p /userdata/laryngoscope"
adb push laryngoscope/. /userdata/laryngoscope/
adb shell reboot

Альтернативный способ: запустить install.bat — скрипт выполнит те же действия автоматически.

При обновлении не требуется повторно отключать старое ПО и создавать скрипт автозапуска — эти операции актуальны только при первичной установке.

Также возможен ручной запуск приложения без перезагрузки:

adb shell "killall sensar 2>/dev/null; killall camera 2>/dev/null; export LD_LIBRARY_PATH=/usr/lib && export QT_QPA_FB_DRM=1 && export QT_QPA_PLATFORM='linuxfb:size=800x480:mmSize=800x480:offset=0x0' && /data/sensar"

7.1. Установка через SSH (альтернатива ADB)

Если устройство подключено к сети Wi-Fi и доступен SSH, файлы можно скопировать по сети:

scp sensar root@<IP_УСТРОЙСТВА>:/data/sensar
scp guide_video.avi root@<IP_УСТРОЙСТВА>:/userdata/guide_video.avi
scp -r laryngoscope/* root@<IP_УСТРОЙСТВА>:/userdata/laryngoscope/
ssh root@<IP_УСТРОЙСТВА> "chmod +x /data/sensar && reboot"

Заменить <IP_УСТРОЙСТВА> на фактический IP-адрес из настроек Wi-Fi.

8. Проверка работоспособности

После установки рекомендуется выполнить функциональное тестирование по следующему чек-листу:

ФункцияСпособ проверкиОжидаемый результат
1Запуск приложенияВключить устройствоОтображается заставка «СЕНСАР», загрузка ~5 сек
2Изображение с камерыГлавное меню → «Сделать фото»Видеопоток с камеры на экране, значок «ФОТО» в левом верхнем углу
3Съёмка фотоНажать кнопку ФОТО/ВИДЕО на рукояткеВсплывает уведомление «Фото сохранено»
4Запись видеоГлавное меню → «Записать видео» → нажать кнопку ФОТО/ВИДЕОЗначок REC, идёт запись; повторное нажатие — остановка
5ФотогалереяГлавное меню → «Фотогалерея»Сетка миниатюр фотографий
6ВидеогалереяГлавное меню → «Видеогалерея»Список видеозаписей с указанием длительности
7Просмотр фотографииВ фотогалерее нажать на миниатюруПолноэкранный просмотр, кнопка удаления
8Воспроизведение видеоВ видеогалерее нажать на записьВоспроизведение, доступны кнопки управления (-5/+5 сек, перемотка, назад)
9НастройкиГлавное меню → «Настройки»Отображаются параметры: дата/время, яркость, язык, качество, Wi-Fi трансляция, память
10Wi-FiНастройки → «Wi-Fi»Список доступных сетей, возможность подключения, статус
11Индикатор батареиПравый верхний угол экранаИконка батареи с цветовой индикацией уровня заряда
12Автоматический сон10 минут без активностиОбратный отсчёт на экране, затем переход в спящий режим
13Раздел «Руководство»Главное меню → «Руководство»Доступны разделы: текстовые материалы, видеоинструкция, инструкция по применению
14Удаление файлаВ просмотрщике фото/видео нажать иконку корзины (или долгое нажатие на файл в галерее)Диалог подтверждения; кнопки ▲/▼ для выбора, ✓/M для подтверждения/отмены

8.1. Проверка Wi-Fi стриминга

  1. Подключить устройство к Wi-Fi (Настройки → Wi-Fi).
  2. В разделе «Настройки» прокрутить вниз до блока «Wi-Fi трансляция».
  3. Включить переключатель «Wi-Fi трансляция».
  4. Скопировать отображаемый URL вида http://<IP>:8080/stream.
  5. Открыть URL в браузере или медиаплеере VLC на рабочей станции (устройства должны находиться в одной Wi-Fi сети).
  6. Должен отображаться живой видеопоток с камеры.

9. Переменные окружения

Для корректной работы встроенного программного обеспечения видеоларингоскопа «СЕНСАР» необходимо наличие следующих переменных окружения при запуске. Они задаются в скрипте автозапуска /etc/init.d/S99sensar:

ПеременнаяЗначениеОписание
LD_LIBRARY_PATH/usr/libПуть к библиотекам Qt
QT_QPA_FB_DRM1Включение DRM-режима дисплея (обязательно для устройств заказчика)
QT_QPA_PLATFORMlinuxfb:size=800x480:mmSize=800x480:offset=0x0Параметры фреймбуфера: разрешение и смещение
QT_QPA_EVDEV_KEYBOARD_PARAMETERS/dev/input/event0Устройство ввода физических кнопок

Переменная QT_QPA_FB_DRM=1 является критически важной. Без неё Qt выполняет рендеринг в /dev/fb0, но DRM pipeline не подхватывает эти данные — результатом является чёрный экран при работающем приложении.

10. Структура файлов на устройстве

ПутьСодержимоеПримечание
/data/sensarИсполняемый файл приложенияОсновной бинарный файл
/userdata/guide_video.aviВидеоинструкция (MJPEG AVI)~100 МБ
/userdata/laryngoscope/19 JPG-изображенийИнструкция по применению
/userdata/media/photos/Фотографии, сделанные на устройствеСоздаётся автоматически при первой съёмке
/userdata/media/videos/ВидеозаписиСоздаётся автоматически при первой записи
/userdata/settings.jsonФайл настроек приложения (JSON)Создаётся автоматически
/userdata/logs/Метрики системы в формате CSVСоздаётся автоматически
/tmp/sensar.logЛог-файл приложенияПересоздаётся при каждом запуске
/etc/init.d/S99sensarСкрипт автозапуска СЕНСАРСоздаётся при первой установке
/etc/init.d/S41camear_onСкрипт включения питания камеры (GPIO)Не изменять
/etc/init.d/disabled_S40appОтключённое штатное ПО заказчикаПереименован из S40app при установке

11. Init-скрипты

СкриптНазначениеДопустимость изменений
S10atomic_commit.shИнициализация DRM atomic commit для дисплеяНе изменять
S41camear_onВключение питания камеры через GPIO (5V + USB)Не изменять — обязателен для работы камеры
disabled_S40appШтатное ПО заказчика (отключено)Не изменять — восстановление приведёт к конфликту
S99sensarАвтозапуск ПО СЕНСАРСоздаётся при первичной установке
S99open_wifiЗапуск Wi-Fi при загрузкеНе изменять

Скрипт S41camear_on выполняет включение питания камеры через GPIO:

echo 255 > /sys/class/leds/5v_en/brightness
echo 255 > /sys/class/leds/usb_en/brightness

Без данного скрипта камера не получает питание и не определяется системой. Удаление или переименование этого файла приведёт к неработоспособности камеры.

12. Сервисное меню

12.1. Назначение

Сервисное меню предназначено для технического персонала и содержит инструменты диагностики и тестирования. На устройствах, передаваемых заказчику, сервисное меню должно быть отключено.

12.2. Активация

Для включения сервисного меню создать файл-маркер:

adb shell "echo 1 > /userdata/debug.conf"

После перезапуска приложения сервисное меню становится доступным.

12.3. Доступ к сервисному меню

  1. Зажать логотип «СЕНСАР» на главном экране на 5 секунд — откроется экран информации с версией ПО.
  2. На экране информации выполнить 5 нажатий по строке с версией — откроется сервисное меню.

12.4. Функции сервисного меню

  • Тест батареи (проверка предупреждения о низком заряде)
  • Тест очистки диска (диалог автоочистки хранилища)
  • Тест спящего режима (принудительный переход в сон с обратным отсчётом)
  • Информация о системе

12.5. Отключение

adb shell "rm /userdata/debug.conf"

Важно: Перед передачей устройства заказчику убедиться в отсутствии файла /userdata/debug.conf. При его наличии сервисное меню будет доступно конечному пользователю.

13. Просмотр логов

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

Последние 30 строк лога:

adb shell "cat /tmp/sensar.log | tail -30"

Просмотр лога в режиме реального времени:

adb shell "tail -f /tmp/sensar.log"

Полный лог:

adb shell "cat /tmp/sensar.log"

Лог-файл /tmp/sensar.log пересоздаётся при каждом запуске приложения. Для сохранения лога предыдущего сеанса необходимо скопировать его до следующей перезагрузки:

adb pull /tmp/sensar.log

14. Диагностика

14.1. Проверка процессов

adb shell "ps -ef | grep sensar"
adb shell "ps -ef | grep camera"

Встроенное программное обеспечение видеоларингоскопа «СЕНСАР» должно присутствовать в списке процессов. Процесс camera (старое ПО) не должен быть активен.

14.2. Проверка камеры

adb shell "ls /dev/video*"
adb shell "v4l2-ctl -d /dev/video0 --list-formats"
adb shell "v4l2-ctl -d /dev/video1 --list-formats"

На устройствах заказчика камера обычно располагается на /dev/video1.

14.3. Проверка дисплея

adb shell "cat /sys/class/graphics/fb0/virtual_size"
adb shell "dmesg | grep -i drm"

14.4. Проверка Wi-Fi

adb shell "ifconfig wlan0"
adb shell "wpa_cli status"

14.5. Проверка батареи и подсветки

adb shell "cat /sys/class/power_supply/rk-bat/capacity"
adb shell "cat /sys/class/backlight/backlight/brightness"

14.6. Проверка медиафайлов

adb shell "ls -la /userdata/guide_video.avi"
adb shell "ls /userdata/laryngoscope/"
adb shell "ls /userdata/media/photos/"
adb shell "ls /userdata/media/videos/"

Папка laryngoscope/ должна содержать 19 JPG-файлов.

14.7. Проверка автозапуска

adb shell "cat /etc/init.d/S99sensar"
adb shell "ls /etc/init.d/ | grep -i app"

14.8. Проверка зависимостей бинарника

adb shell "ldd /data/sensar"
adb shell "ls -la /data/sensar"

15. Решение проблем

#ПроблемаПричинаРешение
1Чёрный экран при работающем приложенииОтсутствует переменная QT_QPA_FB_DRM=1 в скрипте автозапускаПроверить содержимое /etc/init.d/S99sensar, добавить export QT_QPA_FB_DRM=1
2Старое ПО запускается после отключенияФайл переименован с суффиксом .disabled (паттерн S??* в BusyBox всё равно совпадает)Переименовать в disabled_S40app (убрать префикс S)
3Камера не показывает изображениеСкрипт S41camear_on удалён или переименован; неплотное соединение клинкаВосстановить скрипт питания камеры; проверить физическое соединение
4adb push создаёт вложенную папку laryngoscope/laryngoscope/Источник указан без точки: laryngoscope вместо laryngoscope/.Использовать adb push laryngoscope/. /userdata/laryngoscope/
5Нет изображений в разделе «Инструкция по применению»Папка laryngoscope/ не скопирована или скопирована в неверное местоВыполнить rm -rf /userdata/laryngoscope, затем скопировать повторно с точкой
6Видеоинструкция показывает чёрный экранФайл guide_video.avi отсутствует по пути /userdata/guide_video.aviСкопировать файл: adb push guide_video.avi /userdata/guide_video.avi
7Ошибка eglfs not foundQt на устройстве не включает плагин eglfsИспользовать платформу linuxfb (не eglfs)
8Wi-Fi не подключаетсяНеверный пароль, устройство вне зоны сетиПроверить пароль и уровень сигнала; удалить и добавить сеть заново; выполнить wpa_cli status
9NFC не работаетМодуль NFC физически не подключён к плате процессора на текущих устройствахФункциональность NFC недоступна; ответственность — производитель платы
10Быстрая разрядка аккумулятораВысокая яркость экрана, активный Wi-Fi, включённый стримингУменьшить яркость в настройках; отключить Wi-Fi и TCP-стриминг при неиспользовании

16. Различия между устройствами

Ряд параметров отличается в зависимости от типа устройства:

ПараметрDev-устройствоУстройство заказчика
Разрешение экрана682×384854×480
QT_QPA_FB_DRMНе требуетсяОбязательно (=1)
Нода камеры/dev/video0/dev/video1
Штатное ПО производителяОтсутствует/app/camera (отключается при установке)
Init-скрипт штатного ПООтсутствуетS40app (переименовывается в disabled_S40app)
Питание камерыВключается автоматическиЧерез скрипт S41camear_on (GPIO)

Версия документа: ПО 1.15 Дата составления: 23.02.2026 Разработчик ПО: ООО «ШИФТАПП»

Контакты
+7 (495) 161-60-21
info@sensar.su

Фактический адрес:
г. Москва, ул. 3-я Рыбинская, д. 18с22

Юридический адрес:
105122, г. Москва, вн. тер. г. муниципальный округ Измайлово, Сиреневый бульвар, д. 4, к. 3, помещ. 1/1

Обработка персональных данных на основании 152-ФЗ

OK
© ООО "СЕНСАР" 2024