DBC Framework
DBC parsing and CAN signal decoding framework
Loading...
Searching...
No Matches
Инструкции для работы с проектом

О проекте

Проект — библиотека C++17 для разбора DBC, декодирования CAN-кадров и построения дерева метаданных.

  • core/ — библиотека без зависимости от Qt.
  • qt/ — необязательный адаптер для Qt.
  • tests/ — тесты парсера, декодера, метаданных и дерева.
  • examples/ — примеры использования.

Сборка выполняется через qmake. Qt-зависимые цели требуют Qt 6.8.2.

Формат задания

  • В начальном сообщении с заданием первая непустая строка перед пустой строкой — точное название issue в Gitea и требуемое название чата. Описание задания начинается после этой пустой строки.
  • Для названия чата используй первую строку дословно: сохраняй язык, формулировку и номер issue (#20 и т. п.). Не переводи, не перефразируй, не добавляй описание задания, план работы или итоги.
  • Например, для сообщения Support signal value descriptions #20, за которым следуют пустая строка и описание, название чата должно быть ровно Support signal value descriptions #20.
  • Применяй это правило при создании или переименовании чата, если интерфейс предоставляет такую возможность. Если управление названием недоступно, не утверждай, что чат переименован: инструкции в AGENTS.md сами по себе не управляют автоматическим названием в интерфейсе.
  • Последующие уточнения и сообщения в текущем чате не меняют выбранное название, если пользователь явно не попросил его изменить.

Правила кода

  • Используй TypeFactory везде, где это уместно.
  • Не используй auto как возвращаемый тип функций.
  • Не используй lambda.
  • Придерживайся KISS.
  • Пиши читаемый код, который легко понять.
  • Соблюдай существующий стиль и настройки .clang-format.
  • Сохраняй независимость core/ от Qt.

Тестирование

  • Добавляй необходимые тесты для изменённого поведения.
  • При исправлении ошибки добавляй тест, воспроизводящий её.
  • Подключай новые тестовые файлы к соответствующей цели qmake.
  • Перед завершением работы запускай применимые тесты.
  • Если проверку выполнить невозможно, сообщи причину.

Основная сборка и тесты из корня репозитория:

mkdir -p build
cd build
qmake6 ../dbc.pro
make -j4
make check

Для изменений Qt-адаптера включай model-тесты:

mkdir -p build-qt
cd build-qt
qmake6 ../dbc.pro CONFIG+=dbc_qt
make -j4
make check

Для изменений дерева запускай также standalone-тест из корня репозитория:

c++ -std=c++17 -Icore tests/tree_node_test.cpp core/tree_node.cpp \
core/dbc_tree_builder.cpp -o /tmp/dbc_tree_node_test
/tmp/dbc_tree_node_test

Используй отдельные каталоги для разных конфигураций сборки.

Документация

  • Актуализируй README.md и changelog.md при изменениях проекта.
  • При изменении тестов актуализируй tests/README.md.
  • Описывай фактическое поведение и выполненные проверки.