MiniParserVisualizer — это консольное приложение на C++, предназначенное для парсинга файлов с точками в форматах .txt
, .bin
, .json
и визуализации результатов с помощью Python-скрипта.
Проект реализует пайплайн, который включает в себя:
- Парсинг входных файлов с точками.
- Передачу данных в Python-скрипт для визуализации.
- Построение графика с точками, сгруппированными по файлам и группам.
- Сохранение результата в файл
output.png
.
src/
— исходный код C++ (парсер, генератор, утилиты)data/
— тестовые входные файлы (file1.txt
,file2.bin
,file3.json
)scripts/
— вспомогательные скрипты (plot.py
,run_pipeline.sh
)build_my_project.sh
— автоматическая сборка и установкаCMakeLists.txt
— конфигурация CMakeREADME.md
— этот файл
MiniParserVisualizer/
├── build_my_project.sh
├── CMakeLists.txt
├── README.md
├── data/
│ ├── file1.txt
│ ├── file2.bin
│ └── file3.json
├── scripts/
│ ├── plot.py
│ └── run_pipeline.sh
├── src/
│ ├── Parser.cpp
│ ├── Generator.cpp
│ └── Utils.cpp
└── tests/
└── ParserTests.cpp
- CMake: версия 3.28 или выше
- Компилятор C++: GCC 13.3+ с поддержкой стандарта C++23
- Python: версия 3.10 или выше
- pip: менеджер пакетов Python
- nlohmann/json — для работы с JSON
- GTest — для модульного тестирования
- matplotlib — для визуализации данных
Примечание: Все зависимости можно установить через стандартные менеджеры пакетов (apt, pip и т.д.).
-
Склонируйте к себе репозиторий и перейдите в него:
git clone https://github.com/Joraslav/MiniParserVisualizer.git cd MiniParserVisualizer
-
Выполните скрипт сборки:
./build_my_project.sh
Примечание: При необходимости, перед выполнением пункта 2, выполните следующую команду: chmod +x ./build_my_project.sh.
После успешной сборки и установки исполняемые файлы и скрипты будут находиться в директории:
Данный репозиторий уде предоставляет файлы для тестирования работоспособности проекта. Если файлы отсутствуют, то для их генерации выполните:
./build/data_generator
Будут созданы файлы:
data/file1.txt
data/file2.bin
data/file3.json
Для запуска полного пайплайна (парсинг и визуализация) используйте:
$HOME/miniparser_install/bin/run_pipeline.sh data/file1.txt data/file2.bin data/file3.json
В результате будет построен график и сохранён в output.png
.
-
TXT:
t<group>:<x>,<y>
Пример:
t1:1,3
-
BIN:
Каждый point — 4 байта:- group: 8 бит (старшие)
- x: 12 бит
- y: 12 бит (младшие)
-
JSON:
{ "points": [ {"group": "1", "x": 1, "y": 1}, ... ] }
В результате работы пайплайна будет создан файл output.png
с визуализацией точек по группам и файлам.
Для запуска тестов используйте стандартные средства CTest:
cd build
ctest