- Initial support colors for G19 - @emcek
- Internal:
- Improve checking for new releases (pydantic model) - @emcek
- Only one branch stable version of DCS is preferred for new installs - @emcek
- Fix issue font size for G19 can be overwritten #394 - @emcek
- Dcspy not started with Python 3.9, fix issue with pydantic and type annotations - @emcek
- Internal:
- Improve test coverage
- Use type annotation from future
- Use symbolic link to DCS-BIOS live repository #347 (@emcek)
- Compile DCS-BIOS using LuaJIT from lupa library #373 (@emcek)
- Make switching between regular and live version of DCS-BIOS more reliable #390 (@emcek)
- Internal:
- Update PySide6 framework to 6.8.0.2
- Add support for Python 3.13
- Introduce
WorkerSignalsMixIn
to remove code duplication
- GUI should not be hide when starting when configuration is wrong (@emcek)
- Generate BIOS JSON's file during start-up and after BIOS update (@emcek)
- Move documentation to: dcspy.readthedocs.io site (@emcek)
- Internal:
- move default config into resources directory
- check if BIOS JSON's files exist before do generation and compilation
- Introduction of UV tool
- use src-layout for python package
- introduce Nuitka based executable generation
- clean-up release pipeline
- Add missing
F-4E-45MC.yaml
- #316 (@emcek)
- Basic support for F-4E Phantom II (@emcek)
- Add button to repair DCS-BIOS installation (@emcek)
- Can't start DCSpy after stopping #314 (@emcek)
- Internal:
- Update PySide6 framework
- optimize unit tests
- Fix update process when downloaded new release can not be saved in filesystem
- Fix issue when selecting any of a new device is preventing DCSpy from starting
- Internal:
- Add mouse handling to G-Key SDK
- Support for new devices (with G-Key and mouses with extra buttons):
- Keyboards without LCD: G910, G710, G110, G103, G105, G11
- Headphones: G35, G633, G930, G933
- Mouses: G600, G300, G400, G700, G9, MX518, G402, G502, G602
- Internal:
- improve type hinting in codebase
- decrease code complexity
- Bump PySide6 to 6.7.0
- Drop support for Python 3.8
- Add new State action to set a particular value for any controller (@emcek)
- Unload the previous plane when loading the next one - remove old BIOS callbacks (@emcek)
- When a new version is downloaded, DCSpy will restart itself (@emcek)
- Now all executable files do not contain a version, so LGS will not complains about profile name (@emcek)
- Internal:
- Make LCD SDK more flexible and allow to start DCSpy without working LCD
- add E2E test to run locally full flow of DCS-BIOS
- Cleanup models and SDK packages
- Add new the Push button option to support push button controls with only two states (@sleighzy, @emcek)
- Add search bar to search BIOS data (controls name, description etc.) for current aircraft (@emcek)
- Internal:
- G-Key SDK callback support (@sleighzy)
- Update Qt6/PySide6 to 6.6.2
- remove
physical_variant
from models, due to changes is DCS-BIOS (@emcek) - bug fixing and release stabilization (@sleighzy, @emcek)
- Refresh G-Keys tab, after installation of DCS-BIOS
- Some custom requests from config file are set as a different type
- Keep more LCD screenshots to make troubleshooting easier
- Make sure the last character in CUSTOM request is always pipe
- Internal:
- update lib dependencies and tools: pydantic, psutil
- Fix loading empty YAML file when Loading Logitech Keyboard instance
- Show saved collection debug file in the status bar
- Internal:
- Start loging form very beginning
- Fixing one of migration functions, old configuration could be not cleared
- Show messagebox during stat-up when Git executable is missing
- Add dcs.log to debug data collection
- Internal:
- Update GitPython library
- Fix old migration from 3.0.0 release
- Fix parsing data for AH-64D Apache
- LCD buttons can be assigned to any control/instrument like G-Keys
- Report progress of live DCS-BIOS cloning repository gradually
- Add progress when pulling DCS-BIOS repository
- Fix parsing wrong configuration from YAML file - #221
- Update images keyboards to show all supported keys
- Fix apply wrong configuration form config.yaml when starting
- Fix radios for A-10C and A-10C II - - !227
- Internal:
- Update Pyside6, pydantic and psutil libraries
- Add caching when paring DCS-BIOS yaml files for airplanes
- Support old and new location of version file for DCS-BIOS
- Fix parsing
Export.lua
file - Fix donate button
- Add more unit test of QtGUI
- decrease the complexity of code in few places
- Use PySide6 instead of the Custom Tkinter framework
- Recognize Git objects for DCS-BIOS live repository
- Improve DCS-BIOS update process
- Add support for G-Keys of Logitech keyboards
- Allow assigning G-Keys to any control/instrument of all DCS-BIOS supported plane
- New model of support mods: basic (only G-Key) and advanced (G-Key + LCD)
- Support for Python 3.12
- Internal:
- G-Keys Logitech SDK C library
- Use Pydantic data models
- Auto migration of configuration file
- Add unit tests for Qt GUI
- improve CI process - add Python 3.12
- Last version with Tkinter GUI
- Alignment with the latest DCS-BIOS for: F-15ESE Eagle and AV-8B Night Attack
- Git is a mandatory requirement since DCS-BIOS change structure with support for Open Beta 2.9.0
- DCS-BIOS 0.7.49 no loger supported, use a live git version instead
- Internal:
- formatting code across the project to match style
- update dependencies to latest version to mitigate vulnerabilities
- generate fixtures for unit tests instead of crating them manually
- use newer random pytest plugin
- Show message dialog when there is a problem with DCS-BIOS live repository.
- Hotfix: add missing files
- Add radio presets for A-10C and A-10C II
- Add ARC-210 data for A-10C II
- Allow downloading DCSpy while checking for a new version
- Auto refresh about tab
- Collect data for troubleshooting
- Internal:
- Remove support for Python 3.7
- Add Python 3.12 RC1 in CI process
- Loading Logitech C-library using
cffi
instead of built-inctypes
- Add support for F-15E Eagle and its UFC
- Internal:
- Change way of handling buttons
- use the newest version of
packaging
- fix PyInstaller exception during runtime
- Fix the problem when git executable is not available (for DCS-BIOS live)
- Add tooltips to some widgets
- Add missing
falconded.ttf
in Python package
- Add System tray icon:
- Notification when DCSpy is hidden and running in the background.
- New version notification
- Make splashscreen nicer
- Update DCS-BIOS (master) data for Mi-24P Hind
- Internal:
- Add more unit tests
- Make unit test configurable from CLI
- Use toml instead of cfg for packing
- Improve type hinting
- Allow use/update live DCS-BIOS directly from GitHub (master branch)
- Allow run DCSpy without a console
- Auto screenshot of LCD during operation
- Auto save change options from GUI
- Fix the problem when DCS-BIOS is empty or a drive letter not exists
- Generate standalone version with PyInstaller
- Save configuration in user local directory (preserved between updates)
- Internal:
- improve type checking
- verbose setting will impact both console and file logs
- use pathlib for path manipulation
- improve CI/CD process
- Support for Mi-8MTV2 Magnificent Eight
- Autopilot Channels (Heading, Pitch/Bank and Altitude)
- Radios: R868, R828, YADRO1A information
- Support for Mi-24P Hind
- Autopilot Channels (Yaw, Roll, Pitch and Altitude)
- Autopilot Modes (Hover, Route and Altitude)
- Radios: R868, R828, YADRO1I information
- Add About tab with basic information
- F-16C Viper:
- Add spacial font for DED (G19 only)
- Clean some extra characters from DED
- Internal:
- force update customtkinter to at least 5.1.0
- Add support for Ka-50 Black Shark III
- Update footer when checking DCS-BIOS version
- Align with DCS 2.8.1.34667.2 and DCS-BIOS 0.7.47
- Internal:
- add more unit tests
- mark some tests as DCS-BIOS tests
- Major GUI redesign using
customtkinter
package, which provides new, modern widgets:- Appearance system mode (
Light
,Dark
) - Three colort theme (
Green
,Blue
andDark Blue
) - All settings are configured from GUI vie widgets
- One window for all configuration and buttons
- Check version from GUI
- Add the configuration flag to check for a new version during start
- Appearance system mode (
- report the DCS stable version correctly in logs during start
- Internal:
- rename starting script
- remove usage of Mccabe
- add unit tests
- AH-64D Apache
- add better support for G19 for PRE mode
- update name from
AH64D
toAH64DBLKII
- Show the DCS version in logs
- Fix a name of plane for F-14 Tomcat depending on model A or B
- Toggle Start/Stop buttons
- Do not show warning when plane's name is empty
- Internal:
- improve checking DCS-BIOS data
- introduce enum values for parser state
- improve CI process - add Python 3.11
- force using Pillow 9.3.0
- Align F-16C Viper DED and AH-64D Apache EUFD with DCS-BIOS 0.7.46 changes
- Basic support for F-14A Tomcat
- AH-64D Apache
- update name from
AH64DBLKII
toAH64D
- fix display PRE mode for G19
- fix handling buttons
- update name from
- Internal:
- update unit test for better coverage and more use-cases
- New config settings:
auto_start
- run DCSpy atomically after startverbose
- show more logs in a terminal/console window
- Fixing handling of
dcsbios
settings fromconfig.yaml
- Start and stop buttons can be used several times without closing the GUI
- F-16C Viper
- replace
*
with inverse white circle character at DED - Fix unhandled buttons for G19 (menu, ok and cancel)
- replace
- G19 and F/A-18C Hornet
- Push Menu and Cancel toggle cockpit button down, push it again toggles button up (Integrated Fuel/Engine Indicator)
- Add handling Ok as Attitude Selector Switch, INS/AUTO/STBY
- Internal:
- use Pythonic way using temporary directory
- speed-up tests: cache JSON files instead of downloading from the internet
- use Enum for an LCD type
- use Enum for LCD buttons, add to LcdInfo dataclass
- Support for AH-64D Apache with three modes:
IDM
- Squeeze and shows radios frequencies (from Radio Area), IDM and RTS rocker are used to scroll downWCA
- Enter button display warnings, cautions and advisories. WCA rocker is used to scroll downPRE
- Preset button displays the preset menu for the selected radio, WCA rocker is used to scroll down
- F-16C Viper DED clean-up extra characters
- Update F-16C Viper for latest DSC-BIOS (0.7.45)
- Fresh installation of DCS-BIOS is painless
- Drop support for Python 3.6
- use fonts in a dynamic way. You can customize fonts in
config.yaml
file (see Configuration) - usage for LCD SDK built-in LGS - no need additional package for usage
- support for Python 3.10 (use
dataclasses
internally) - ability to stop DCSpy from GUI
- Supporters are printed on welcome screen. I'm thrilled with support and help from the community!
- alignment for new DCS-BIOS v0.7.43
- Support for AV-8B N/A Harrier with:
- UFC - Up Front Controller
- ODU - Option Display Unit
- decrease UFC Comm 1 Channel - G13 first button or G19 left button
- increase UFC Comm 1 Channel - G13 second button or G19 right button
- decrease UFC Comm 2 Channel - G13 third button or G19 down button
- increase UFC Comm 2 Channel - G13 forth button or G19 up button
- Configuration editor:
- dcsbios - set default Logitech keyboard: "G19", "G510", "G15 v1/v2", "G13"
- show_gui - showing or hiding GUI during the start of DCSpy
- dcsbios - location of DCS-BIOS folder inside user's Saved Games
- Check and update DCS-BIOS directly from DCSpy
- Check DCS-BIOS button in Config editor
- dcsbios needs to be set to correct value
- Basic A-10C Warthog and A-10C II Tank Killer support
- F-16C Viper uses four buttons for IFF
- IFF MASTER Knob - OFF/STBY/LOW/NORM/EMER
- IFF ENABLE Switch - M1/M3 /OFF/ M3/MS
- IFF M-4 CODE Switch - HOLD/ A/B /ZERO
- IFF MODE 4 REPLY Switch - OUT/A/B
- Fix alignment of (DCS-BIOS v0.7.41) for F-14B Tomcat
- Internal:
- All data fetched from the DCS-BIOS is checked against their specifications. Due to occasional changes in the DCS-BIOS protocol, DCSpy may not fetch all data (e.g., F-16 DED). However, such occurrences should not happen anymore.
- Fix alignment of DED (DCS-BIOS v0.7.41) for F-16C Viper
- Fix alignment of DED for F-16C Viper
- Fix the position of Integrated Fuel/Engine Indicator (IFEI) for F/A-18C Hornet (only G19)
- F/A-18C Hornet shows extra Total Internal Fuel (G19 only)
- Internal refactoring
- Simple Tkinter GUI: to select your Logitech keyboard
- Support for G19: Big thanks for BrotherBloat who makes this release possible. He spent countless hours to share his G19 and let me troubleshoot remotely.
- F/A-18C Hornet shows Total Fuel instead of Total Internal Fuel
- Basic support for F-14B Tomcat RIO CAP (Computer Address Panel):
- CLEAR - button 1
- S-W - button 2
- N+E - button 3
- ENTER - button 4
- DCSpy uses UDP multicast connection do DCS-BIOS, since each TCP connection slightly increases the amount of work that is performed inside DCS (blocking the rest of the simulation).
- support for integer data to be fetch from DCS-BIOS - using IntegerBuffer()
bios_data
in Airplanes instances allow both StringBuffer() and IntegerBuffer()- reformat waiting time before DCS connected
- fix Data Entry Display for F-16C Viper - DCS-BIOS v0.7.34 is required
- Ka-50 Black Shark - Autopilot channels show up in LCD
- Ka-50 Black Shark data from PVI-800 shows (in similar boxes) on LCD
- ProtocolParser for DCS-BIOS has a new optimized state machine
- LCD SDK is re-written from scratch:
- low and high-level API
- auto-loading C library during importing
- all API is type annotated and well documented
- move loading LCD C-library from G13 handler
- internal:
- refactoring and rename internals of G13 handler module
- add unit tests
- LCD prints current waiting time to connect to DCS
- when DCS exits from plane/mission exception is catch and handle correctly
- lots of internal changes, preparing for new features, most important:
- change structure of AircraftHandler, move subscription to DCS-BIOS changes out of planes
- update and clear methods move from G13 handler to LCD SDK
- G13 handler have display property to send text to LCD
- rename starting script to dcspy.exe
- starting script shows now waiting time for DCS connection
- minor code optimization and refactoring
- based on version specelUFC v1.12.1
- added basic handling for Ka-50 PVI-800 data is received but not formatted properly
- F-16C DED should work, but not four buttons under LCD - I don't have it, so it is hard to test
- G13-handler detects 32/64 bit of Python and loads a correct version of LCD Logitech C-library
- adding basic logging for debugging - prints on console
- all defined aircraft are detected and loaded on-the-fly during operation
- defines new plane should be easy, use AircraftHandler as base class
- Python LCD SDK was cleanup
- other refactorings and code duplication removal