Миграция MARS Android → Linux L2¶
Документ описывает однократный переход с устаревшего Android-приложения
MARS L2 на новый сервис Linux edge-service
(пакет okto-edge-service).
Требования¶
- Root-доступ на Android-хосте (линии MARS уже работают с root).
adbна ноутбуке инженера.- Промышленный ПК с предустановленным
okto-edge-service(Debian) или соответствующим RPM (РЕД ОС). - JAR миграционной утилиты:
Пошаговая процедура¶
1. Снятие Android-дампа¶
mkdir android-dump && cd android-dump
adb shell run-as ru.okto.android tar c shared_prefs databases | tar x
2. Конвертация SharedPreferences → edge-service.yaml¶
Далее открываем сгенерированный YAML и заполняем:
device.identifier— идентификатор линии MARS.line.variant(DRY/WET),line.site(LUZ/NOV/MIR/RND).- Сканеры / принтеры / ПЛК — под физическое подключение конкретного шкафа.
3. Экспорт истории SQLite¶
В период перехода историю можно проиграть в новый сервис
(см. scripts/replay-history.py).
4. Запуск сервиса¶
5. Проверка¶
- Интерфейс оператора доступен по адресу
http://<ipc>:3000(режим Tauri / киоск). - В Центральной консоли появляется новая запись с корректным вариантом / площадкой.
- Для каждого сканера — проверка через
POST /api/v1/scanners/{index}/test. - Для шкафов WET — имитация скачка питания:
В Журнале должно появиться событие
curl -X POST http://<ipc>:8080/api/v1/ups/simulate \ -H 'Content-Type: application/json' \ -d '{"onBattery":true,"batteryPercent":35}'UPS_ON_BATTERY.
Откат¶
- Остановить сервис:
- Включить Android-хост обратно.
- Android-хост физически остаётся в цехе 14 дней, после чего выводится из эксплуатации.
Таблица соответствий SharedPreferences¶
| Ключ OLD_APP | Новый конфиг | Комментарий |
|---|---|---|
device_id / DEVICE_ID |
device.identifier |
|
device_name / DEVICE_NAME |
device.name |
|
line_id / production_line_id |
device.productionLineId |
|
scanner_ip / matrix_scanner_ip |
scanners[0].host |
Основной сканер |
scanner_port |
scanners[0].port |
|
printer_ip |
printers[0].host |
|
printer_port |
printers[0].port |
|
printer_type |
printers[0].type |
В верхнем регистре |
modbus_ip / plc_ip |
plcs[0].host |
протокол = MODBUS_TCP |
modbus_port / plc_port |
plcs[0].port |
по умолчанию 502 |
copacking_mode, task_mode… |
OperationModes (в БД) |
управляются из UI |
Новые ключи — выставляются вручную либо через страницу «Настройки L2» в UI оператора:
line.variant(DRY/WET)line.site(LUZ/NOV/MIR/RND)line.plcVisualisationUrl(URL визуализации ПЛК команды MARS)ups.type(OWEN_IBP120Kдля WET)gpio.backend(libgpiodдля DRY; USB-GPIO как альтернатива)
Известные отличия¶
- Число сканеров — у MARS Android ограничение 8 шт., в новом конфиге — до 10.
- Множественные принтеры — ранее поддерживался только один принтер; теперь допустимо параллельное использование нескольких (например, MARS SDX + мобильный ZPL).
- Журнал событий — новая подсистема, на Android-стороне не было аналога.
- Партионный учёт — новая функциональность, миграции не требует, поведение настраивается из UI.