Skip to main content

Software for integrating DCS: F/A-18C, F-16C and Ka-50 with Logitech G13

Project description

Build Status Codacy Badge BCH compliance image

dcspy

This is a software designed to put information from DCS aircraft to Logitech G-series keyboards. Developed for Logitech G13, but should also work with any other Logitech device with 160x43 px monchrome display, like G15 and G510.

  • FA-18C Hornet's Up Front Controller (UFC)
  • F-16C DED display - some parts are mising
  • Ka-50 PVI-800 - under development

dcspylogo

Requirements

Credits

This project has been heavily inspired by specelUFC, and I want to thank specel, the author of that project for his work and the inspiring ideas. This software uses:

Changelog

0.9.0

  • based on version specelUFC v1.12.1
  • added basic handling for Ka-50 PVI-800 data are received but not formatted properly
  • F-16C DED should working but not 4 buttons under LCD - I don't have it so it is hard to test
  • G13 handler detect 32/64 bit of Python and load correct version of LCD Logitech C library
  • adding basic logging for debuging - prints on console
  • all defined aircraft are detected and loaded on-the-fly during operation
  • define new plane should be easy just use AircraftHandle as base class
  • Python LCD SDK was clean-up
  • other refactorings and code duplication removal

Usage

You can use it straight away, by running dcs_g13.py, it can be run before DCS, as well as after. After successful connect attempt, G13 display should update.

  • dcs_g13.py is responsible for initialise parser, G13 handler, as well as running connection with DCS.
  • logitech.py is responsible for initialise aircraft specific file and handling G13 display and buttons
  • aircrafts.py are define all supported aircrafts with details how to handle and display data from DCS, draws bitmap that will be passed to G13 handler and returns input data for buttons under G13 display

If you want to modify or write something by yourself, here's a quick walkthrough:

  • First, you need to "subscribe" data you want and pass it to G13Handler:
bufferScratchpadStr1 = StringBuffer(self.g13.parser, 0x744e, 2, lambda s: self.set_data('ScratchpadStr1', s))

For required adress and data length, look up in C:\Users\xxx\Saved Games\DCS.openbeta\Scripts\DCS-BIOS\doc\control-reference.html

  • Then, receive byte and use parser
c = s.recv(1)
parser.processByte(c)

which calls back function in G13Handler set_data(...) with apropriate paramteres and update display content, by creating bitmap and passing it through LCD SDK to device display

  • You can also use 4 button below display, just checktheir state with g13.check_buttons() which one is pressed and send packet with command you wish to use. Again, look it up in control-reference.html, for example, to rotate COMM1 knob right in FA-18C:
s.send(bytes('UFC_COMM1_CHANNEL_SELECT INC\n', 'utf-8'))

Ideas?

I have lots of plans and new ideas how to imrove it internaly and form 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 bug or have any crazy idea.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dcspy-0.9.0.tar.gz (114.8 kB view hashes)

Uploaded Source

Built Distribution

dcspy-0.9.0-py3-none-any.whl (35.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page