Skip to the content.

Architecture Overview

G-Pilot is being refactored into a modular architecture. One of the main goals is to clearly separate the user interface from the machine control logic.

This brings several advantages:

High-level diagram

flowchart TD
    PhysicalMachine["Physical machine"]

    Serial["Serial"]
    RawTCP["Raw TCP"]
    Virtual["Virtual"]

    ConnectionManager["Connection manager"]
    Communicator["Communicator"]
    Jogger["Jogger"]
    Streamer["Streamer"]

    Joystick["Joystick Pendant"]
    UI["User interface"]

    Parser["Parser"]
    FileParser["File parser"]
    BufferParser["Buffer parser"]

    PhysicalMachine <--> Serial
    PhysicalMachine <--> RawTCP
    PhysicalMachine <--> Virtual

    Serial --> ConnectionManager
    RawTCP --> ConnectionManager
    Virtual --> ConnectionManager

    ConnectionManager <--> Communicator

    Communicator --> Jogger
    Communicator --> Streamer
    Jogger --> Communicator
    Streamer --> Communicator

    Joystick --> Jogger
    Joystick --> Streamer
    Joystick --> UI

    UI --> Jogger
    UI --> Streamer
    UI --> Parser

    Streamer --> Parser

    Parser --> FileParser
    Parser --> BufferParser