kbastronomics/streamdeck-dcs-interface (2024)

kbastronomics/streamdeck-dcs-interface (1)

kbastronomics/streamdeck-dcs-interface (2)kbastronomics/streamdeck-dcs-interface (3)kbastronomics/streamdeck-dcs-interface (4)kbastronomics/streamdeck-dcs-interface (5)kbastronomics/streamdeck-dcs-interface (6)kbastronomics/streamdeck-dcs-interface (7)

DCS Interface is a plugin for the Streamdeck that allows communication with DCS via lua UDP sockets for both receiving updates of the simulation state as well as sending commands to interact with the clickable co*ckpits.

  • Description
    • Detailed Documentation
  • Demo of Operation
  • Installation
    • Downloads
    • Version Update
      • Identify installed version number:
    • Initial Configuration
    • Video Walkthrough
  • Source code
  • Build from source instructions

DCS Interface is a plugin that allows you to create buttons and interfaces that update with DCS events.There are currently three settings for each Streamdeck button you create:

  • DCS Command - Specify which button/switch you want to activate in game (allows setting of any clickable object in a co*ckpit).
    • Streamdeck buttons support push-button, switch, and increment (dials, levers, etc.) input types.
  • Image Change Settings - Specify a function within the DCS simulation to monitor and change the display of the Streamdeck image conditionally.
    • Examples: Lamps for Warnings/Modes, Switch states
  • Title Text Change Settings - Specify a function in the DCS simulation which will be monitored and its text is displayed as the Streamdeck button Title.
    • Examples: UFC text displays, scratchpads, radio displays

Can also support multiple physical Streamdecks at once.

Detailed Documentation

More detailed instructions can be found in: Settings Help Documentation.

kbastronomics/streamdeck-dcs-interface (8)

Example of Settings to Display Master Caution Lamp:

kbastronomics/streamdeck-dcs-interface (9)

Downloads

  • For the DCS plugin to work you will first need DCS-ExportScripts installed, detailed instructions are on their Wiki. This is the backend that is relied on for communication with the DCS game.

  • To install the DCS Interface Streamdeck plugin, you will need to download and run the installer com.ctytler.dcs.streamDeckPlugin from Releases.

  • Also within Releases is an optional icon_library.zip you can download for use with Streamdeck Profiles.

Version Update

If you have a prior version already installed on your StreamDeck, you will have to uninstall it first before installing the latest version. To do this right-click on one of the DCS Interface button types in the right-side panel and click "Uninstall".

Identify installed version number:

To see the version of the plugin installed on the StreamDeck, right-click on one of the DCS Interface button types in the right-side panel.

Initial Configuration

If you plan to only use DCS Interface for Streamdeck with the DCS-ExportScript and not Ikarus, you can modify the file DCS-ExportScript\Config.lua to have the following settings (where IkarusPort is changed from 1625 to 1725 for DCS Interface) to get everything connected:

-- Ikarus a Glass co*ckpit SoftwareExportScript.Config.IkarusExport = true -- false for not useExportScript.Config.IkarusHost = "127.0.0.1" -- IP for IkarusExportScript.Config.IkarusPort = 1725 -- Port Ikarus (1625)ExportScript.Config.IkarusSeparator = ":"

If you are interested in using the export script to support both Streamdeck and Ikarus, instructions can be found in the Settings Help Documentation - Enabling Both DCS Interface & Ikarus.

Video Walkthrough

A walkthrough of installation and configuration can be found at the below link, along with other instructional videos.
DCS Interface for Streamdeck Video Instructions

The Sources folder contains the source code of the plugin. The primary components are as follows:

Sources├── com.ctytler.dcs.sdPlugin Plugin package where the built frontend and backend are combined│ ├── manifest.json Definition of Streamdeck plugin metadata│ ├── bin Location for compiled C++ and lua scripts called by plugin│ ├── helpDocs Help documentation within plugin│ ├── images Default icon images│ └── propertyinspector Javascript and html used by plugin (Button settings and windows)├── backend-cpp The backend of the plugin (Manages Simulator/Streamdeck State), written in C++│ ├── ElgatoSD Elgato Streamdeck SDK source and utilities│ ├── SimulatorInterface Classes for interacting with the simulator state│ ├── StreamdeckContext Classes for maintaining state of individual Streamdeck buttons│ │ ├── ExportMonitors Classes that monitor simulator export data for individual buttons│ │ ├── SendActions Classes that define button press and release actions│ ├── StreamdeckInterface Executable that interfaces C++ code with Streamdeck plugin│ ├── Test Unit test infrastructure and target│ ├── Utilities Generic utilities for UDP socket and string manipulation│ ├── Vendor Third party source code│ └── Windows Visual Studio solution settings└── frontend-react-js The frontend of the plugin (Configuration window), written in ReactJS

A build script is included which will build both the C++ executable which handles the communcation with DCS as well as the package for the Stream Deck plugin: Tools/build_plugin.bat

You will need Visual Studio installed, and may need to edit the location of the Visual Studio install location inside the batch file if it does not match for your machine. Running the batch script will build the Streamdeck plugin and run all unit tests, generating the plugin file at Release/com.ctytler.dcs.streamDeckPlugin.

Current version was built with Visual Studio Community 2019.

Additional convenient one-liner to build if using Windows Subsystem for Linux (WSL):

cmd.exe /C """C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" \& devenv D:\\code\\DCS\\streamdeck-dcs-interface\\Sources\\Windows\\com.ctytler.dcs.sdPlugin.sln /build "Release^|x64"""

About

A StreamDeck plugin for interaction with Digital Combat Simulator (DCS)

GNU General Public License v3.0

Languages

Language:C++ 44.6%Language:JavaScript 19.4%Language:CSS 12.4%Language:TypeScript 11.9%Language:HTML 9.4%Language:C 1.0%Language:Lua 0.9%Language:Batchfile 0.4%

kbastronomics/streamdeck-dcs-interface (2024)
Top Articles
Latest Posts
Article information

Author: Fr. Dewey Fisher

Last Updated:

Views: 5986

Rating: 4.1 / 5 (42 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Fr. Dewey Fisher

Birthday: 1993-03-26

Address: 917 Hyun Views, Rogahnmouth, KY 91013-8827

Phone: +5938540192553

Job: Administration Developer

Hobby: Embroidery, Horseback riding, Juggling, Urban exploration, Skiing, Cycling, Handball

Introduction: My name is Fr. Dewey Fisher, I am a powerful, open, faithful, combative, spotless, faithful, fair person who loves writing and wants to share my knowledge and understanding with you.