pyG5


NamepyG5 JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/blauret/pyG5
SummaryPyQt5 application connecting to X-Plane flight simulator and displaying a garmin G5
upload_time2023-10-07 13:19:51
maintainer
docs_urlNone
authorBen Lauret
requires_python
licenseMIT license
keywords x-plane python pyqt5 garmin g5
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyG5

![CI](https://github.com/blauret/pyg5/workflows/CI/badge.svg?branch=main)

## Description

This project aims at development a Garmin G5 view targeting a Raspberry Pi 7 inches display (640x480) . The intent is to provide a G5 Attitude indicator + G5 Horizontal Situation Indicator stacked on the display in vertical mode. The `pyG5` connects to X-Plane flight simulator.

It does not require any plugin and use the standard DREF UDP interface from X-Plane. It should not require any configuration. Start it and
it will connect to X-Plane and fetch the required data.

This is currently developed on macOS with python 3.9 and testing on a Raspberry Pi 4 with Raspberry Pi OS and an official 7 inches display in vertical mode.

Below is a view of the user interface.

![demoView](https://raw.githubusercontent.com/blauret/pyG5/main/assets/demoView.png?raw=true)

And you can see it in its simulation environment

![flightSimView](https://raw.githubusercontent.com/blauret/pyG5/main/assets/flightSimView.jpeg)

## Maturity

It's currently in pretty early phase. It's functional and should be easy to install but might suffer from issues here and  there.

Not all the features of the G5 are implemented. It's currently missing:

* Glide scope
* lateral guidance on the AI
* Distance to next way point on the Horizontal Situation Indicator.

## Installation

`pyG5` depends on `pySide6`. Due to failure to install `pySide6` from pip on Raspberry Pi OS it is not
a dependency of the `pyG5`. As a result it needs to be installed manually.

```console
        > sudo pip3 install pyside6
```

The install `PyG5`:

```console
        > sudo pip3 install pyG5
```

## Running

```console
        > pyG5DualStacked
```

Running on Raspberry Pi it is recommended to install FreeSans fonts in order to be consistent with the rendering on the current main development platform, ie. macOS. Most liked this is solved with:

```console
        > sudo apt-get install libfreetype6
```

## Developers

If you intend to develop based on this project. At a glance:

* The application runs on PyQt5 event loop.
* It's loosely implementing a Model View Controller coding style
* The `pyG5Network` contains X-Plane network interface is monitoring the connection and feed data at 30Hz to a slot
* The view is repainting the interface every time the data is received from the network interface
* The `pyG5Widget` is derived twice into and Horizontal Situation Indicator and an AI. the `pyG5DualStack` instantiate both into a single widget. That means it's easy to build the view with just one of them.
* The `pyG5Main` module contains the application and the main window class.

### Running from sources

Clone the repository

```console
        > git clone 
```

Initialize the virtual environment

```console
        > source bootstrap.sh
```

Start the Application

```console
        > python -m pyG5.pyG5Main
```

In order to evaluate the design without X-Plane running you can use:

```console
        > python -m pyG5.pyG5ViewTester
```

This will feed the data from the sliders in the UI instead of the X-Plane network interface:

![ViewTester](https://raw.githubusercontent.com/blauret/pyG5/main/assets/pyG5ViewTester.png)

## License

[License files](LICENSE.TXT)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/blauret/pyG5",
    "name": "pyG5",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "X-Plane,python,PyQt5,Garmin,G5",
    "author": "Ben Lauret",
    "author_email": "ben@lauretland.com",
    "download_url": "https://files.pythonhosted.org/packages/6e/9a/bdf1dda835107410b19f6db16e6e672b4c298c4608237c4f84ee2baa7c67/pyG5-0.0.4.tar.gz",
    "platform": null,
    "description": "# PyG5\n\n![CI](https://github.com/blauret/pyg5/workflows/CI/badge.svg?branch=main)\n\n## Description\n\nThis project aims at development a Garmin G5 view targeting a Raspberry Pi 7 inches display (640x480) . The intent is to provide a G5 Attitude indicator + G5 Horizontal Situation Indicator stacked on the display in vertical mode. The `pyG5` connects to X-Plane flight simulator.\n\nIt does not require any plugin and use the standard DREF UDP interface from X-Plane. It should not require any configuration. Start it and\nit will connect to X-Plane and fetch the required data.\n\nThis is currently developed on macOS with python 3.9 and testing on a Raspberry Pi 4 with Raspberry Pi OS and an official 7 inches display in vertical mode.\n\nBelow is a view of the user interface.\n\n![demoView](https://raw.githubusercontent.com/blauret/pyG5/main/assets/demoView.png?raw=true)\n\nAnd you can see it in its simulation environment\n\n![flightSimView](https://raw.githubusercontent.com/blauret/pyG5/main/assets/flightSimView.jpeg)\n\n## Maturity\n\nIt's currently in pretty early phase. It's functional and should be easy to install but might suffer from issues here and  there.\n\nNot all the features of the G5 are implemented. It's currently missing:\n\n* Glide scope\n* lateral guidance on the AI\n* Distance to next way point on the Horizontal Situation Indicator.\n\n## Installation\n\n`pyG5` depends on `pySide6`. Due to failure to install `pySide6` from pip on Raspberry Pi OS it is not\na dependency of the `pyG5`. As a result it needs to be installed manually.\n\n```console\n        > sudo pip3 install pyside6\n```\n\nThe install `PyG5`:\n\n```console\n        > sudo pip3 install pyG5\n```\n\n## Running\n\n```console\n        > pyG5DualStacked\n```\n\nRunning on Raspberry Pi it is recommended to install FreeSans fonts in order to be consistent with the rendering on the current main development platform, ie. macOS. Most liked this is solved with:\n\n```console\n        > sudo apt-get install libfreetype6\n```\n\n## Developers\n\nIf you intend to develop based on this project. At a glance:\n\n* The application runs on PyQt5 event loop.\n* It's loosely implementing a Model View Controller coding style\n* The `pyG5Network` contains X-Plane network interface is monitoring the connection and feed data at 30Hz to a slot\n* The view is repainting the interface every time the data is received from the network interface\n* The `pyG5Widget` is derived twice into and Horizontal Situation Indicator and an AI. the `pyG5DualStack` instantiate both into a single widget. That means it's easy to build the view with just one of them.\n* The `pyG5Main` module contains the application and the main window class.\n\n### Running from sources\n\nClone the repository\n\n```console\n        > git clone \n```\n\nInitialize the virtual environment\n\n```console\n        > source bootstrap.sh\n```\n\nStart the Application\n\n```console\n        > python -m pyG5.pyG5Main\n```\n\nIn order to evaluate the design without X-Plane running you can use:\n\n```console\n        > python -m pyG5.pyG5ViewTester\n```\n\nThis will feed the data from the sliders in the UI instead of the X-Plane network interface:\n\n![ViewTester](https://raw.githubusercontent.com/blauret/pyG5/main/assets/pyG5ViewTester.png)\n\n## License\n\n[License files](LICENSE.TXT)\n",
    "bugtrack_url": null,
    "license": "MIT license",
    "summary": "PyQt5 application connecting to X-Plane flight simulator and displaying a garmin G5",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/blauret/pyG5"
    },
    "split_keywords": [
        "x-plane",
        "python",
        "pyqt5",
        "garmin",
        "g5"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b5b9b1bb64553ebbb9362ddcc60f2d3ec889b863f6948577694dfa29a4839bbc",
                "md5": "01c1850eb2ca274f617a92ea029f1908",
                "sha256": "fe61615a9b0904053ee6ae4b4816476945a65c5e8b05a844e0ddc0fd9b5eb301"
            },
            "downloads": -1,
            "filename": "pyG5-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "01c1850eb2ca274f617a92ea029f1908",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 24653,
            "upload_time": "2023-10-07T13:19:50",
            "upload_time_iso_8601": "2023-10-07T13:19:50.289537Z",
            "url": "https://files.pythonhosted.org/packages/b5/b9/b1bb64553ebbb9362ddcc60f2d3ec889b863f6948577694dfa29a4839bbc/pyG5-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6e9abdf1dda835107410b19f6db16e6e672b4c298c4608237c4f84ee2baa7c67",
                "md5": "e84c457a186a5d0fe32c00760fb60979",
                "sha256": "ded4a965eeb655586b1d4d9ff20f1523588a5bb6aacc7124af7593c8de15d9e8"
            },
            "downloads": -1,
            "filename": "pyG5-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "e84c457a186a5d0fe32c00760fb60979",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 24826,
            "upload_time": "2023-10-07T13:19:51",
            "upload_time_iso_8601": "2023-10-07T13:19:51.683464Z",
            "url": "https://files.pythonhosted.org/packages/6e/9a/bdf1dda835107410b19f6db16e6e672b4c298c4608237c4f84ee2baa7c67/pyG5-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-07 13:19:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "blauret",
    "github_project": "pyG5",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pyg5"
}
        
Elapsed time: 1.66486s