Skip to content

Консольное приложение на C++ для парсинга файлов с точками в форматах TXT, BIN, JSON и визуализации результатов с помощью Python-скрипта. Включает генерацию тестовых данных, парсинг, передачу данных в Python и построение графика по группам и файлам.

Notifications You must be signed in to change notification settings

Joraslav/MiniParserVisualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniParserVisualizer

Описание

MiniParserVisualizer — это консольное приложение на C++, предназначенное для парсинга файлов с точками в форматах .txt, .bin, .json и визуализации результатов с помощью Python-скрипта.
Проект реализует пайплайн, который включает в себя:

  1. Парсинг входных файлов с точками.
  2. Передачу данных в Python-скрипт для визуализации.
  3. Построение графика с точками, сгруппированными по файлам и группам.
  4. Сохранение результата в файл output.png.

Структура проекта

  • src/ — исходный код C++ (парсер, генератор, утилиты)
  • data/ — тестовые входные файлы (file1.txt, file2.bin, file3.json)
  • scripts/ — вспомогательные скрипты (plot.py, run_pipeline.sh)
  • build_my_project.sh — автоматическая сборка и установка
  • CMakeLists.txt — конфигурация CMake
  • README.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

Зависимости C++

  • nlohmann/json — для работы с JSON
  • GTest — для модульного тестирования

Зависимости Python

  • matplotlib — для визуализации данных

Примечание: Все зависимости можно установить через стандартные менеджеры пакетов (apt, pip и т.д.).

Сборка и установка

  1. Склонируйте к себе репозиторий и перейдите в него:

    git clone https://github.com/Joraslav/MiniParserVisualizer.git
    cd MiniParserVisualizer
  2. Выполните скрипт сборки:

    ./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 с визуализацией точек по группам и файлам.

output.png

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

Для запуска тестов используйте стандартные средства CTest:

cd build
ctest

About

Консольное приложение на C++ для парсинга файлов с точками в форматах TXT, BIN, JSON и визуализации результатов с помощью Python-скрипта. Включает генерацию тестовых данных, парсинг, передачу данных в Python и построение графика по группам и файлам.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published