Skip to content

Data visualization and analysis tool, built for Forze Hydrogen Racing. C++ Plotter

License

Notifications You must be signed in to change notification settings

StichtingFormulaZeroTeamDelft/H2Analyst

 
 

Repository files navigation

H2Analyst

Data visualization and analysis tool, built for Forze Hydrogen Racing.

Installation Instructions

In order to install the plotter go to releases page and download the installer for the latest release. Then run the downloaded installer to install the plotter.

To install the project for development see the section on Local Development Setup.

Local Development Setup

The instructions for a local setup of the project are based on Visual Studio 2022 (Community)
However the project should be compatible with any version of Visual Studio $\geq$ 2017

Installing Qt

  • Download the Qt installer here
  • Launch the installer
  • In the Installation Folder section select only Custom Installation
  • Under Qt select the following version: Qt 6.5.3
  • Under Qt->Developer and Designer Tools select Qt Installer Framework 4.7
  • OPTIONAL: Disable the options for Qt Design Studio and Qt Creator (under Developer and Designer Tools)
  • Create an environment variable named QtInstall pointing to the Qt installation folder (only required when building installers)

Visual Studio 2022 Setup

  • Start Visual Studio 2022
  • Open the .sln file from the cloned repository
  • Select Extensions->Manage Extensions
  • Search for Qt Visual Studio Tools and download the extension
  • Select Extensions->Qt VS Tools->Qt Versions
  • Add a new Qt version and set the path to your Qt installation folder
    • The correct executable can be found in Qt->6.5.3->msvc2019_64->bin->qmake.exe
  • Restart Visual Studio and open the project to make sure all changes are applied correctly
  • Create an environment variable named VCINSTALLDIR pointing to the VC folder in the Visual Studio installation folder (only required when building installers)

Finishing up

Lastly make sure that all the git submodules are pulled aswell.
Do this by running git submodule update --init --recursive -f in the repo folder on your machine.
Ater following these steps verify that the everything is installed correctly by starting the project (Ctrl+F5) in Visual Studio 2022.

Creating Installers

To create an installer for a new release follow these steps:

  • Build the project in the release configuration
  • Run the build_installer.bat script in the installer folder

Code Structure

The code for this application is structured in the following way:

  • Core
    • H2Analyst
      Root of the application
    • Namespace
      The namespace contains all constant definitions that are used throughout the application.
    • DataStore
      Back-end of data management within the application. Users interact with the DataStore through the DataPanel.
    • DataStructures
      Definition of the data structures used throughout the application to store the loaded data.
    • SettingsManager
      The settings manager takes care of reading and writing to external settings files.
  • Widgets
    • ControlPanel
      The ControlPanel is the widget that contains buttons and other control elements to interact with the application.
    • DataPanel
      The DataPanel is the front-end that allows users to interact with loaded data.
      • TreeView
        The TreeView is the main method of presenting the data in the DataStore to the user. It generates a folder structure based on the name of the datasets with systems and subsystems.
    • PlotManager
      This widget takes care of the creation and placement of plots in the application.
      • Plot
        • Crosshairs
          PlotCrosshairs replace the cursor when hovering a plot. They show a horizontal and vertical line, intersecting the cursor, with labels displaying the position on the axis. This is handy when quickly scanning data and checking the values of data at specific times by hand.
        • Rubberband
          The Rubberband is a rectangle that can be dragged to define an area in a plot to zoom towards. It can also snap to horizontal or vertical zooming when the aspect ratio of the rectangle is small or when holding down a key.
        • TimeCursor
          The TimeCursor can be placed at a specific timestamp and indicates the values of all datasets shown at this moment. Its position is synchronized between all active plots to allow the user to check all data values at the same moment.
    • Dialogs
      • Standards
        Standard dialogs are used to do simple things like display a message or ask a yes/no question.
      • PlotLayout
        The PlotLayout dialog is used to set the desired layout of plots.
  • Utilities
    • Parsers
      Parsers are used to load data of various types by converting them to the data structures used by H2Analyst.
      • IntCanLog
        IntCanLog files are generated by the Forze 8.
    • DataPopulator
      The DataPopulator is a utility that allows fast loading of IntCanLog data by offloading the sorting of messages per dataset to a separate thread. It also features a priority list that can be used to prioritze specific datasets on the fly, which allows the user to already start plotting before all data is populated.
    • DataOperations
      DataOperations contain standard functions like resampling.
    • TimeStamp
      TimeStamp contains a handy implementation of a timestamp object that can be used to deal with time.
    • Exporters
      Exporters are used to generate files in different formats and export them to the system.

About

Data visualization and analysis tool, built for Forze Hydrogen Racing. C++ Plotter

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.9%
  • Other 0.1%