Metadata-Version: 2.2
Name: dcspy
Version: 3.6.3
Summary: Software for integrating DCS Planes with Logitech keyboards (with and without LCD), mice and headphones.
Author: Michal Plichta
Maintainer: Michal Plichta
License: MIT License
Project-URL: Homepage, https://github.com/emcek/dcspy
Project-URL: Documentation, https://dcspy.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/emcek/dcspy.git
Project-URL: Changelog, https://github.com/emcek/dcspy/blob/master/CHANGELOG.md
Keywords: dcsworld,dcs,digital combat simulator,eagle dynamics,logitech,logitech sdk,logitech keyboard,logitech gaming,logitech mouse,logitech headphone,G19,G510,G15,G13,G910,G710,G110,G103,G105,G11,G35,G633,G930,G933,G600,G300,G400,G700,G9,MX518,G402,G502,G602
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Win32 (MS Windows)
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Games/Entertainment :: Simulation
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Hardware
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: cffi==1.17.1
Requires-Dist: eval-type-backport==0.2.0; python_version < "3.10"
Requires-Dist: gitpython==3.1.44
Requires-Dist: lupa==2.4
Requires-Dist: packaging==24.2
Requires-Dist: pillow==11.1.0
Requires-Dist: psutil==6.1.1
Requires-Dist: pydantic==2.10.5
Requires-Dist: pyside6==6.8.1
Requires-Dist: pyyaml==6.0.2
Requires-Dist: requests==2.32.3
Requires-Dist: typing-extensions==4.12.2; python_full_version < "3.12"
Provides-Extra: test
Requires-Dist: flake8==7.1.1; extra == "test"
Requires-Dist: interrogate==1.7.0; extra == "test"
Requires-Dist: isort==5.13.2; extra == "test"
Requires-Dist: lxml==5.3.0; extra == "test"
Requires-Dist: mypy==1.14.1; extra == "test"
Requires-Dist: pip-audit==2.7.3; extra == "test"
Requires-Dist: pycodestyle==2.12.1; extra == "test"
Requires-Dist: pytest==8.3.4; extra == "test"
Requires-Dist: pytest-codspeed==3.1.2; extra == "test"
Requires-Dist: pytest-cov==6.0.0; extra == "test"
Requires-Dist: pytest-qt==4.4.0; sys_platform == "win32" and extra == "test"
Requires-Dist: pytest-randomly==3.16.0; extra == "test"
Requires-Dist: ruff==0.9.2; extra == "test"
Requires-Dist: types-cffi==1.16.0.20241221; extra == "test"
Requires-Dist: types-pillow==10.2.0.20240822; extra == "test"
Requires-Dist: types-psutil==6.1.0.20241221; extra == "test"
Requires-Dist: types-pyinstaller==6.11.0.20241028; extra == "test"
Requires-Dist: types-pyyaml==6.0.12.20241230; extra == "test"
Requires-Dist: types-requests==2.32.0.20241016; extra == "test"
Provides-Extra: docs
Requires-Dist: black==24.10.0; extra == "docs"
Requires-Dist: mkdocs==1.6.1; extra == "docs"
Requires-Dist: mkdocs-gen-files==0.5.0; extra == "docs"
Requires-Dist: mkdocs-literate-nav==0.6.1; extra == "docs"
Requires-Dist: mkdocs-material==9.5.50; extra == "docs"
Requires-Dist: mkdocs-plantuml==0.1.1; extra == "docs"
Requires-Dist: mkdocs-section-index==0.3.9; extra == "docs"
Requires-Dist: mkdocstrings==0.27.0; extra == "docs"
Requires-Dist: mkdocstrings-python==1.13.0; extra == "docs"
Requires-Dist: plantuml==0.3.0; extra == "docs"

[![image](https://img.shields.io/badge/pypi-v3.6.3-blue.svg)](https://pypi.org/project/dcspy/)
[![Python CI](https://github.com/emcek/dcspy/actions/workflows/python-ci.yml/badge.svg?branch=master)](https://github.com/emcek/dcspy/actions/workflows/python-ci.yml)
[![Coverage Status](https://coveralls.io/repos/github/emcek/dcspy/badge.svg?branch=master)](https://coveralls.io/github/emcek/dcspy?branch=master)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/5270a4fc2ba24261a3bfa7361150e8ff)](https://app.codacy.com/gh/emcek/dcspy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE.md)
[![Downloads](https://img.shields.io/github/downloads/emcek/dcspy/total?label=Downloads)](https://github.com/emcek/dcspy/releases)
[![dcspy](https://snyk.io/advisor/python/dcspy/badge.svg)](https://snyk.io/advisor/python/dcspy)
[![Patreon](https://img.shields.io/badge/Patreon-donate-ff424d?logo=patreon)](https://www.patreon.com/mplichta)
[![Discord](https://img.shields.io/discord/672486999516774442?label=Discord&logo=discord&logoColor=lightblue)](https://discord.gg/SP5Yjx3)
[![image](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue.svg)](https://github.com/emcek/dcspy)
[![CodSpeed Badge](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/emcek/dcspy)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/emcek/dcspy/master.svg)](https://results.pre-commit.ci/latest/github/emcek/dcspy/master)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=emcek_dcspy&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=emcek_dcspy)
[![Downloads](https://static.pepy.tech/badge/dcspy)](https://pepy.tech/project/dcspy)

![dcspylogo](https://i.imgur.com/eqqrPB8.jpg)
## DCSpy
DCSpy is able to pull information from DCS aircraft and display on Logitech G-series keyboards LCD.

Features:
* Logitech device with 160x43 px four (4) lines monochrome LCD - **G13**, **G15 (v1 and v2)** and **G510**
* Logitech device with 320x240 px eight (8) lines full RGBA LCD - **G19**
* Support for other [Logitech devices](https://dcspy.readthedocs.io/en/latest/devices/):
  * Keyboards: **G910**, **G710**, **G110**, **G105**, **G103**, **G11**
  * Headphones: **G35**, **G633**, **G930**, **G933**
  * Mouses: **G600**, **G300**, **G400**, **G700**, **G9**, **MX518**, **G402**, **G502**, **G602**
* Setup G-Keys to any toggle, switch or knob in cockpit - [Setup of G-Keys](https://dcspy.readthedocs.io/en/latest/usage/#how-to-setup)
* Support for all aircraft (official and mods) with clickable cockpits - [DCS-BIOS aircraft](https://github.com/DCS-Skunkworks/dcs-bios?tab=readme-ov-file#modules)
* Modern looking GUI using Qt6/PySide6

See more information on [documentation](https://dcspy.readthedocs.io/en/latest/) page.

## Aircraft and instruments
There are to kinds of supported aircraft:
* **Basic** - allow assigning all G-Keys of Logitech keyboard to aircraft's instruments in the cockpit (all clickable cockpits supported by DCS-BIOS)
* **Advanced** - additionally can display some information on LCD (listed below)

Why a such way? Basically advanced support is for aircraft that I own and therefore can test it.

# Advanced
* F/A-18C Hornet UFC - Up Front Controller
* F-16C Viper DED - Data Entry Display
* Ka-50 Black Shark II / III - PVI-800 and autopilot channels
* Mi-8MTV2 Hip - autopilot channels and Radio information
* Mi-24P Hind - Autopilot channels and modes and Radio information
* A-10C Warthog / A-10C II Tank Killer - Radio frequency information
* F-14A / F-14B Tomcat - basic support for RIO CAP
* AV-8B Night Attack Harrier - Up Front Controller and Option Display Unit
* AH-64D Apache - Enhanced Up Front Display (EUFD)
* F-15E Eagle - Upfront Control Panel
* F-4 Phantom II - UHF (ARC 164) Radio
* more to come...

## Requirements
* [Logitech Gaming Software 9.04.49](https://support.logitech.com/software/lgs)
* DCS-Skunkworks DCS-BIOS:
  * [DCS-BIOS 0.8.3](https://github.com/DCS-Skunkworks/dcs-bios/releases/tag/v0.8.3) or newer (can be [installed](https://dcspy.readthedocs.io/en/latest/upgrade/#manual-procedure) directly from DCSpy)
  * However, it is recommended use [Live DCS-BIOS](https://dcspy.readthedocs.io/en/latest/bios_live/) as latest git version
  * [Git](https://git-scm.com/download/win) it is necessary for using the live version of DCS-BIOS
* DCS World: [2.9.11.4686](https://www.digitalcombatsimulator.com/en/news/changelog/stable/2.9.11.4686/), but any version from 2.9.* branch should be fine.
* optional:
  * [Python 3.13](https://www.python.org/downloads/) but 3.9+ should be fine (see [installation](https://dcspy.readthedocs.io/en/latest/install/))

## New ideas
I have lots of plans and new ideas how to improve it internally and form a user's perspective, but don't hesitate to contact me. Maybe it will motivate me to implement some new stuff. Please open issue if you find a bug or have any crazy idea.
You are welcome [dcspy discord](https://discord.gg/SP5Yjx3) server.

## Contributing
You want contribute, perfect see: [contributing](./CONTRIBUTING.md) guide.

## Credits
More details [here](https://dcspy.readthedocs.io/en/latest/credits/).

## Sponsored by Jetbrains Open Source Support Program
[![logo](https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.svg)](https://jb.gg/OpenSourceSupport)
[![logo](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)](https://jb.gg/OpenSourceSupport)
