Линейка Prometrius Link // Модуль платформы Prometrius Lab

Высокопроизводительный телематический шлюз ELM327 / OBD-II на Rust

Низкоуровневый сервер-мультиплексор для Android. Изолирует сторонний диагностический софт от медленных физических задержек CAN-шины, формирует строгие тактовые сетки опроса (WFQ) и транслирует кэшированные параметры клиентам за 1–2 мс — как на одном устройстве, так и по локальной сети или через Tailscale/VPN по всему миру.

Архитектура: arm64-v8a strictly
Ядро: Rust (tokio / axum / std::net)
Интерфейс: Isolated WebView + JS-Bridge
Фон: Foreground Service + WakeLock
Лицензия: Базовая версия бесплатна

Базовый функционал и кастомные планы опроса

ПЛАТНЫЙ WEB SCHEDULER

Ручная сборка планов опроса

Оптимизированный веб-построитель планов с возможностью тонкой ручной настройки параметров и тактовой сетки опроса шины.

  • Преодоление лимита 60 PID/с до предельных цифр паспорта адаптера (до 95.5+ PID/сек);
  • Опрос редких показателей путем расширения циклов карусели без замедления скоростного пула;
  • Ручная вставка дилерских величин Mode 22 с назначением индивидуальных блоков (Target) и адресов ответа (Reply);
  • Экспорт зашифрованных планов .plp с привязкой к аппаратному ключу RSA-2048 устройства;
  • Описания-расшифровки кодов ошибок и варианты решения проблемы.

Три шага инициализации Prometrius Link

Архитектура шлюза разделяет личность автомобиля, адаптер и профиль опроса. Паспорт привязывается к уникальному ключу MAC|протокол|UID_авто, исключая смешивание калибровок между машинами.

ШАГ 1: АВТО И АДАПТЕР

Выбор устройства

  1. В главном окне выберите или добавьте ваш Автомобиль (генерируется UUID v7).
  2. Нажмите на поле Адаптер и укажите тип связи: BT, BLE, Wi-Fi или USB.
  3. Для Classic Bluetooth поддерживается автоподстановка PIN (1234/0000), для BLE — опция «Скорость BLE» (приоритет CONNECTION_PRIORITY_HIGH), для USB OTG — прямой bulk-доступ к чипам CH340, CP210x, FTDI, PL2303.
ШАГ 2: СНЯТИЕ ПАСПОРТА

Калибровка связки

  1. Нажмите [СТАРТ]. Запустится процесс знакомства (команды ATZ, ATI, AT@1, ATDPN).
  2. Ядро прогоняет измерительную карусель однородных групп (размерности 1..6) и замеряет реальный физический предел шины (до 95.5 PID/сек).
  3. По завершении формируется эталонный Паспорт связки с фиксацией ответивших параметров (кнопка [ПАСПОРТ]). При повторных запусках знакомство пропускается.
ШАГ 3: ПРОФИЛЬ ОПРОСА

Выбор показателей

  1. Перейдите на вкладку «ПОКАЗАТЕЛИ». Автоматически активируется профиль текущей пары.
  2. Отметьте необходимые датчики чекбоксами и задайте индивидуальную частоту (Гц).
  3. Шлюз строго контролирует Бюджет шины (например: «Выбрано: 40 из 54 pid/c»). Превышение лимита аппаратно блокируется во избежание просадок и очередей.

Создание интерфейсов и подключение клиентов

Prometrius Link изолирует адаптер и выступает мульти-сервером. Подключение сторонних приложений осуществляется не только по локальному адресу 127.0.0.1: вы можете подключить головное устройство по общей Wi-Fi сети автомобиля или транслировать живой поток телеметрии из любой точки мира через Tailscale, WireGuard или любой VPN-меш. Безопасность внешних подключений гарантирует встроенный PIN-Gate.

ЭТАП 1: СОЗДАНИЕ ВЫХОДА В ШЛЮЗЕ

Настройка вкладки «ИНТЕРФЕЙСЫ»

В приложении откройте вкладку «ИНТЕРФЕЙСЫ» → нажмите [ДОБАВИТЬ] и выберите формат вещания:

  • RealDash — сетевой порт по умолчанию 5558 (бинарные 16-байтные TCP-кадры 0x11223344). Нажмите [Сохранить RealDash XML] для генерации файла конфигурации приборов.
  • RaceChrono — порт 5559 (строки телеметрии $RC3 10 Гц NMEA). Нажмите [Сохранить легенду] для назначения каналов логгера.
  • OBD2 / ELM327 — сетевой порт 35000 или 5557 (полная эмуляция протокола ELM327 v1.5 по TCP для Torque Pro и Car Scanner).
  • SimplOBD2 — порт 5560 для текстового потока сырых значений.
ЭТАП 2А: TORQUE PRO

Подключение Torque

  1. Откройте Настройки → Настройки адаптера OBD.
  2. Тип подключения: укажите Wi-Fi.
  3. IP-адрес: 127.0.0.1 (на одном устройстве), IP в Wi-Fi сети автомобиля или виртуальный IP шлюза в Tailscale / VPN.
  4. Порт: укажите 35000 (или назначенный порт OBD2).
  5. Запросы исполняются мгновенно из кэша памяти за 1–2 мс.
ЭТАП 2Б: CAR SCANNER

Подключение Car Scanner

  1. Откройте Настройки → Подключение.
  2. Тип подключения: укажите Wi-Fi.
  3. IP-адрес: 127.0.0.1, локальный адрес сети или IP из Tailscale.
  4. Порт: 35000 (или назначенный порт OBD2).
  5. Шлюз эмулирует ответы настоящего адаптера: статус ELM327 v1.5 (Prometrius Cache) с поддержкой ATH1.
ЭТАП 2В: ТЕЛЕМЕТРИЯ

RealDash & RaceChrono

  1. RealDash: Garage → Connections → RealDash CAN → TCP-клиент → укажите IP:5558. Импортируйте выгруженный XML.
  2. RaceChrono: Settings → Vehicle profile → DIY Device → TCP client → IP:5559 ($RC3 10 Гц). Доступно удаленное наблюдение за болидом на треке из любой точки мира.
[Бортовая сеть CAN 500k] ──(BT SPP / BLE GATT / Wi-Fi / USB OTG)──┐ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ Prometrius Link Kernel (Rust / libdlc_obd2.so) │ │ ├─ Изолированный опрос шины, группировка, сборка ISO-TP │ │ └─ Memory Cache Snapshot (Время отдачи клиентам: 1–2 мс) │ └──────┬────────────────────┬────────────────────┬─────────────────┘ │ TCP :5558 │ TCP :5559 │ TCP :35000 / :5557 ▼ (RealDash CAN v2) ▼ ($RC3 NMEA 10Hz) ▼ (ELM327 Emulation) ┌──────────────────────────────────────────────────────────────────┐ │ Сетевой транспорт: Localhost (127.0.0.1) / Wi-Fi LAN / Tailscale │ │ [Защита периметра: Встроенный PIN-Gate при доступе извне] │ └──────────────────────────────────────────────────────────────────┘ │ │ │ [RealDash Dashboard] [RaceChrono LapTimer] [Torque Pro / CarScanner]

Инженерные решения ядра Prometrius

01 / CAN PIPELINE

Ускорение опроса в 2–4 раза

Инициализация адаптера по протоколу ATSP6 с отключением эхо-запросов (ATE0), форматирования (ATL0, ATS0) и активацией агрессивных адаптивных таймингов (ATAT2). Группировка до 6 PID в одном фрейме повышает темп съема до 60–95.5 PID/сек.

02 / MULTIPLEXING

Мультиплексирование потоков

Ядро шлюза работает как мультиплексор, позволяя нескольким клиентам (Torque, CarScanner, RealDash) одновременно подключаться к одному адаптеру. Данные мгновенно раздаются из локального кэша памяти (Snapshot) без потери скорости и пропусков кадров.

03 / STABILITY

Автономный Foreground Service

Ядро шлюза оформлено как системная служба типа connectedDevice с удержанием процессора через PARTIAL_WAKE_LOCK. Связь с бортовыми системами не разрывается при сворачивании приложения и выключении экрана магнитолы.

Онлайн-построитель планов опроса и генератор .plp

Инструмент ручной сборки планов опроса. Позволяет точно распределять PIDs по тактам отправки, объединять запросы в мульти-группы до 6 PIDs, выделять разовые Init-такты и настраивать опрос кастомных PIDs Mode 22. На выходе формируется зашифрованный бинарный план .plp, привязанный к асимметричному ключу RSA-2048 вашего устройства из Паспорта.

ЧАСТОТА АДАПТЕРА: 14.0 ЗАПР/СЕК
РАЗМЕР ГРУППЫ: 6 PIDS
РАСХОД ШИНЫ: 60.0 / 84.0 PID/СЕК (71%)
ФОРМАТ ЭКСПОРТА: ENCRYPTED .PLP (RSA-2048)
Бюджет пропускной способности 60.0 / 84.0 PID/сек
Блок 7DF@01 (ДВС) 77%
77%
Блок 7E1@22 (АКПП) 15%
15%
10.0Hz: 4 групп (4 PIDs) — 7DF
2.0Hz: 5 групп (5 PIDs) — 7DF
1.0Hz: 1 такт (ATF Mode 22) — 7E1
Расписание отправок (Группы) Такты 0..9
Цикл Target Mode PIDs (Группа)
Init 7DF 01 0105, 010F (Разовый опрос ECT, IAT)
0 7DF 01 0104, 010C, 010D, 0111, 0143, 0105 (6/6)
1 7E1 22 220109 (Температура масла АКПП ATF)
2 7DF 01 0104, 010C, 010D, 0111, 0143, 0123 (6/6)
Загрузка сгенерированного плана .plp в приложение осуществляется бесшовно. Дешифрование выполняется аппаратно внутри защищенного хранилища Android KeyStore.
СКОРО БУДЕТ! В разработке...