Skip to content

EPFLRocketTeam/2024_C_GS_CONTROL

Repository files navigation

Test bage

# Concept network

fonctionnement server - client, avec des socket

2 niveaux de routages des données : 1er niveau premièrement on reçois des infos par radio tranmise au serveur, chaque data est labellé d'une manière unique. Les différente interface peuvent s'abonner à des donnée en faisant une requête. Lorsque qu'une données reçu par le serveur de la radio esr reçu elle regarde pour chacun des clients si il a des données auxquel il était abonnée. Si c'est le cas, les données sont transmisent en Json.

2ème niveau: les données reçu doivent être update les bons champs sur l'UI, avec le ClientManager, lorsqu'un panneau est crée il peut s'abonner a certains champs de données et passe une callback qui est un setter pour ce champ de données

FirehornGUI

inspi design : https://www.google.com/search?sca_esv=2610265ff35e352d&sxsrf=ACQVn0_TsTecfndTSljVxfyZIotZF1ggsQ:1707342823399&q=modern+ui&tbm=isch&source=lnms&prmd=ivsnbmtz&sa=X&ved=2ahUKEwiMiv7Tm5qEAxWv9gIHHWovDWUQ0pQJegQIEhAB&biw=2560&bih=1279&dpr=1#imgrc=0YlyaGQ0j6tJfM

note pour les requête : get :
getSerialStatus => response = "serialNameUsed", "serialStatus" (fields expected)

when adding stuff to res make sure to compile the qrc with the following command :

rcc -binary resources.qrc -o resources.rcc

Installation

In order to compile the 2 parts of the software you need to install qt6 base dev, on ubuntu it gives the following:

sudo apt install qt6-base-dev

Then some other dependencies required need to be installed:

sudo apt install libqt6svg6-dev libqt6serialport6-dev qtbase5-dev-tools libboost-all-dev libgtest-dev

Then you must compile the resources by going:

rcc -binary GUI/res/resources.qrc -o GUI/res/resources.rcc

After this you can install create a build directory at the root of the project:

mkdir build && cd build

And build all the targets:

cmake .. && make

The executable of the server and the GUI would appear in build/Server/FirehornServer and build/GUI/FirehornGUI. Alternatively you can do the following command to run autoamtically the server along the gui:

make run_gui

QTSvg : sudo apt-get -y install libqt6svg6-dev

Rcc command : fedora : sudo dnf install qt-devel

SerialPort : ubuntu : sudo apt-get install libqt5serialport5-dev

Boost : ubuntu : sudo apt install libboost-all-dev

install gtest : sudo apt-get install libgtest-dev

Communication structure

communication from client to server :
{
    header: post | get | internal,
    payload: {
        source : <client-ip>,
        args*...
    }
}

communication from sever to client :
{
    header: post | get | internal,
    payload: {
        source : GSE | AV,
        args*...
    }
}

get :
getSerialStatus => response = "serialNameUsed", "serialStatus" (fields expected)

TODO

  • Server respond and make command from clients

  • Stress tests

  • authentication

  • multiple concurrent input handler

  • separate data handling in a different thread

  • Mettre le AV data pannels sur des cards

About

This repository hold the code of the main GUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages