Skip to content

Возможности ​

Black Magic Diag — инженерное рабочее место для UDS-диагностики по CAN и DoIP. Это не универсальный OBD-сканер: вы описываете ECU, DID, routines и форматы ошибок, которые нужны вашему проекту, и работаете с ними напрямую. Проекты хранятся в локальном [workspace](/ru/features/workspace), которым управляете вы.

Параметры ECU ​

  • Чтение и запись идентификаторов данных (DID) через типизированные представления: unsigned, signed, ASCII, hex, enum и combined.
  • Извлечение битов или диапазонов байт из упакованных payload; сырые байты остаются видимыми.
  • Чтение всего ECU, группы параметров или одного значения.
  • Поиск неизвестных идентификаторов в Incubator: загрузите список DID, просканируйте диапазон и изучите ответы.
Редактор параметров с типизированными представлениями

Подробнее о параметрах DID →

Диагностика и DTC ​

  • Чтение активных и сохранённых кодов неисправностей, их очистка и чтение списка поддерживаемых кодов.
  • Просмотр snapshot (freeze-frame) данных, привязанных к каждому коду.
  • Работа с форматами J2012, ISO 14229-1 и J1939-73.
  • Загрузка глобальных или проектных баз DTC из JSON или TXT.
  • Цветовая кодировка состояний: Active, Stored, Not Active.
Список DTC со snapshot-данными

Подробнее о диагностике →

Живые измерения ​

  • Опрос измеряемых значений с периодом от 100 мс до 10 с.
  • Построение нескольких сигналов одновременно: отдельные серии или нормализованные совмещённые графики.
  • Настраиваемый буфер истории и запись в CSV.
  • Значения читаются в той же UDS-сессии, что и остальная работа.
Графики живых измерений

Подробнее о живых измерениях →

Инструменты UDS ​

  • Tester present 0x3E с настраиваемым периодом.
  • Session control 0x10, ECU reset 0x11, security access 0x27.
  • Routine control 0x31 и IO control 0x2F.
  • Прямое чтение 0x23 и запись 0x3D памяти с полями адреса, блока и размера.
  • Security access через внешние Seed2Key DLL, задаваемые для каждого проекта.
Панель UDS Tools

Подробнее об инструментах UDS →

CAN и DoIP ​

  • CAN через pass-through адаптеры J2534, 11-битные и 29-битные идентификаторы.
  • Сканер шины: broadcast-запрос или последовательный диапазон ID, затем добавление найденных ECU в проект.
  • DoIP (ISO 13400) по Ethernet: локальный интерфейс, адрес назначения, адрес тестера и discovery.
  • Тип транспорта выбирается для каждого ECU внутри проекта.
CAN-сканер с найденными ECU

Подробнее о транспортах →

Скрипты и автоматизация ​

  • Lua API для параметров, routines, IO control, сырых UDS-запросов, доступа к памяти и работы с прошивками.
  • Action buttons, задаваемые в JSON: отправка записи DID или запуск Lua-скрипта.
  • MCP-сервер и чат-агент с областями read, write и live-write.
  • AI-ассистент может вызывать те же инструменты, что и скрипт; каждый вызов виден в логе.
Консоль Lua-скриптов

Подробнее о скриптах и автоматизации →

Отчёты и экспорт ​

  • Генерация HTML-, Markdown- или PDF-отчёта по текущему проекту.
  • Экспорт таблицы ECU в CSV, сохранение дампов данных и их повторная загрузка.
  • Логи сессий пишутся в workspace с отметками времени.

Подробнее об отчётах и экспорте →

Прошивки ​

  • Загрузка образов Intel HEX, Motorola S-record или сырого бинарного файла.
  • Просмотр размера, CRC-32 и блоков адресов.
  • Прошивка через окна, специфичные для автомобиля, или через Lua firmware API.

Подробнее о прошивке →

Модель проекта ​

  • Workspace — это каталог с data/, logs/ и projects/.
  • Проект (.bmprj) содержит список ECU; каждый ECU хранится в отдельном файле .bmecu.
  • Дампы данных (.bmdump) и списки DID (.bmdid) переносимы между машинами.

Подробнее о workspace и проектах →

Под капотом ​

Для инженеров, которым важно знать, что происходит под интерфейсом:

СлойОтветственность
Win32 + DirectX 10 + Dear ImGuiОкно, рендеринг, док-панели
BmAppПути workspace, глобальное состояние, реестр окон
ProjectЗагружает и сохраняет файлы .bmprj и .bmecu
Ecu + TaskОдин слот задачи на ECU, выполняемый в рабочем потоке
ViewИнтерпретирует байты DID: uint, int, ascii, hex, enum, combined
UdsTransportUdsCan (J2534) или UdsDoip (TCP/TLS)
  • UI работает в главном потоке; pollEcuTasks() запускает ожидающую работу каждый кадр, а результаты возвращаются через очередь UI.
  • Закрытие проекта прерывает, а затем ждёт задачи ECU. Один ECU никогда не выполняет две задачи одновременно.
  • Измерения хранят кольцевой буфер на каждую серию; Combined нормализует каждую серию отдельно, Separate сохраняет реальные единицы. Короткая ошибка связи повторяется, длинная серия ошибок останавливает измерения.
  • Write DID, routine start, IO control, memory write и raw UDS проходят через единую точку подтверждения. AI и MCP используют ту же командную шину с областями read / write / admin.
  • Lua выполняется в песочнице без произвольного доступа к файлам, процессам или ОС.
  • Сборка: msbuild BlackMagic.slnx /p:Configuration=Release /p:Platform=x86. Тесты: ctest --test-dir build_tests -C Debug --output-on-failure. UI-тесты: BlackMagic.exe --ui-test.

Бесплатное ядро. Локальный workspace. Без облака.