Skip to content

researcher2312/flight-data-plotter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flight Data Plotter

Overview

The Flight Data Plotter is a C++ program utilizing ImGui and ImPlot libraries to provide a user-friendly interface for visualizing flight data. This tool allows users to plot various parameters and analyze flight information in a graphical manner. The program is built using the Conan package manager and CMake for easy dependency management and compilation.

Features

  • Interactive Interface: Powered by ImGui, the program offers a sleek and interactive user interface.
  • Real-time Plotting: ImPlot enables real-time plotting of flight data, ensuring up-to-date visualizations.
  • Customizable Plots: Users can customize plots by selecting parameters, adjusting colors, and configuring plot settings.
  • Data Import: Easily import flight data files in common formats for seamless analysis.

Requirements

Getting Started

  1. Clone the repository.
  2. Install dependencies using Conan.
conan install . --output-folder=build --build=missing

for a debug version you can add --settings=build_type=Debug

  1. Configure and build the project with CMake.
cmake --preset conan-release
cmake --build --preset conan-release

for a debug version you can use conan-debug

  1. Run the executable.
./build/Release/flight_data_plotter

Contributing

Feel free to contribute by submitting bug reports, feature requests, or pull requests. Your feedback and contributions are highly appreciated.

License

This Flight Data Plotter is licensed under the MIT License - see the LICENSE file for details.

classDiagram 

class App {
  - window_list
  - window
  - context
  + setup()
  + process_events()
  + update()
  + close()
}

class UIWidget {
    <<interface>>
    + print()
}

class GlobalWindow {
  - widget_list
  + add_widget()
  + display()
}

class SensorData {
  + time
  + acceleration
  + rotation
  + magnetic
}

class NetworkReceiver {
  - availabale_devices
  - connected_device
  - awaiting_data
  - socket
  + print ()
  - discover_devices()
  - connect()
  - load_data()
}

class Graph {
  - recording
  - data_queue
  - acceleration: vector
  - rotation: vector
  - magnetic: vector
  + print()
  + start_recording()
  + stop_recording()
  + add_point()
  + clear_graph()
}

class Visualisation {
  - model
  - background
  - orientation
}

class ControlPanel {
  + print()
}

class MadgFilter {
  + currentData
  + previousData
  + filter()
}


App *-- GlobalWindow
GlobalWindow -- Visualisation
GlobalWindow -- NetworkReceiver
GlobalWindow -- Graph
GlobalWindow -- ControlPanel

UIWidget --> NetworkReceiver
UIWidget --> ControlPanel
UIWidget --> Graph

Graph "1" *-- "0..*" SensorData

MadgFilter -- NetworkReceiver

About

Graphical interface to display live flight sensor data

Topics

Resources

License

Stars

Watchers

Forks