Workspace и проекты
Всё, что знает приложение, живёт в workspace: это обычный каталог, который вы выбираете, резервируете и переносите между машинами. Проекты внутри него описывают автомобиль.
Структура workspace
workspace/
├── data/
│ ├── auth/ # Seed2Key DLLs and auth helpers
│ ├── dsc/ # DID descriptions (.bmdid)
│ ├── dtc/ # global DTC databases (.json / .txt)
│ └── config.json # local workspace settings
├── logs/ # session logs (.log)
├── projects/ # one folder per project
├── scripts/ # shared Lua scripts
└── firmware/ # shared firmware imagesПриложение создаёт нужные каталоги. Ничего не скрыто в базе данных или облачном аккаунте.
Проект
Проект — это папка внутри projects/:
projects/MyProject/
├── project.bmprj # project document
├── ECU_1.bmecu # one file per ECU
├── ECU_2.bmecu
├── cover.png # optional cover image
├── notes.md # optional project notes (up to 64 KiB)
├── scripts/ # project Lua scripts (priority over workspace)
├── firmware/ # project firmware images
└── chat_history.json # project AI chat historyДокумент .bmprj перечисляет ECU и их настройки; каждый ECU сохраняется отдельно, поэтому одно и то же определение ECU можно повторно использовать в другом проекте. Save As копирует файлы ECU в новую папку, поэтому новый проект не зависит от старого.

Главное окно
- File — создание/открытие/сохранение проекта, создание отчёта, загрузка action buttons.
- Edit — отмена и повтор (
Ctrl+Z/Ctrl+Y). Глубина истории — настройка (по умолчанию 20, диапазон 0–100), между запусками не сохраняется. Отмена блокируется, пока выполняется задача ECU. - Tools — ECU List, ECU Edit, UDS Tools, CAN Scanner, DoIP Setup, Lua Scripts.
- View — Project Properties, Log & Console, AI Chat, Settings (
Alt+,), About, Btn View (debug-сборки). - Строка состояния — состояние подключения и версия.
- Уведомления — сообщения Success/Error в правом нижнем углу.
Панели можно закреплять, делать плавающими и закрывать; раскладка хранится в %APPDATA%\BlackMagic\imgui.ini.
Файлы данных
| Файл | Назначение |
|---|---|
.bmprj | Проект: список ECU и настройки проекта (JSON, версия формата 4) |
.bmecu | Один ECU: транспорт, параметры, routines, уровни доступа, шаблоны DTC (JSON) |
.bmdid | Описания DID, загружаемые в Incubator (JSON) |
.bmdump | Сохранённые значения ECU, перезагружаемые из ECU List (JSON) |
.log | Лог сессии, записываемый в logs/ |
В .bmprj хранятся title, локальный файл DTC (dtcinfo), auth-библиотека (authlib), IP/маска/DHCP для DoIP, обложка, функции проекта и параметры расширений. dtcinfo без ведущей точки ищется в <workspace>/data/dtc; путь с ведущей точкой задаётся относительно папки проекта.
Несохранённые изменения
При закрытии проекта или приложения с несохранёнными изменениями предлагается Yes (сохранить), No (отбросить) или Cancel (продолжить работу). Точка рядом со значком статуса ECU также обозначает несохранённые изменения.
Поведение таблицы
В ECU List одиночный клик выбирает ECU, двойной клик открывает его в ECU Edit и читает параметры, а правый клик открывает контекстное меню ECU. Правый клик по заголовку столбца Unit открывает Fill from. Столбцы можно сортировать, переставлять, скрывать и менять их ширину.

