/streamdeck-dcs-interface

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

Primary LanguageC++GNU General Public License v3.0GPL-3.0

DCS Interface は Streamdeck 用のプラグインです。 lua UDPソケットを通して DCSからシミュレーション情報を受け取ったり、クリッカブルコックピットにコマンドを送信することができます。

概要

DCS Interface はプラグインです。DCSのイベントを発生させるボタンやインターフェースを作成することができます。 通常は作成したボタン毎に3つの設定があります。

  • DCS コマンド - ゲーム上で動作させたいボタン/スイッチを指定します(コックピット内の操作可能なオブジェクト)。
    • Streamdeck は、プッシュボタン、スイッチ、ダイアル、レバーなどの入力をサポートします。
  • 画像設定 - DCS内部情報に従って、Streamdeckの画像を条件付き変更する関数を指定します。
    • 例: 警告灯、スイッチステータス
  • 文字設定 - DCS内部情報に従って、Streamdeckのボタンタイトルを表示する関数を指定します。
    • 例: UFC文字表示、スクラッチパッド、ラジオ表示

複数のStreamdeckも、もちろんサポートします。

ドキュメント詳細

より詳しい取り扱い説明書は下記にあります:Settings Help Documentation.


デモ操作

Stream Deck AV8BNA ODU Demo

Example of Settings to Display Master Caution Lamp:

インストール方法

ダウンロード

  • DCS plugin が動作するには、まず始めに DCS-ExportScriptsが必要です。これの操作説明書は Wiki にあります。これは DCSゲーム本体と通信するバックエンドプログラムとなります。

  • DCS Interface Streamdeck pluginをインストールするには、次のファイルをダウンロードしてダブルクリックしインストールする必要があります。 com.ctytler.dcs.streamDeckPlugin from Releases.

  • Releases にある icon_library.zip もダウンロードして使用することができます。

バージョンアップ

もし既に前バージョンがインストールされているときは、新しいバージョンをインストールする前に、古いバージョンをアンインストールしてください。 その操作は、StreamDeck GUIの右下にある "その他のアクション..."ボタンをクリックしてから、DCS Interface pluginの "Uninstall" をクリックしてください。

インストール済みバージョン番号の確認方法

StreamDeckにインストールしてあるPluginのバージョン番号の確認方法は、"その他のアクション..."ボタンをクリックします。そこにはインストール済みPlugin毎に 制作者とバージョン番号がタイトルの下に表示されます。

初期設定

もし 'DCS Interface'とDCS-ExportScriptだけを使う予定なら(Ikarusは使わない) DCS-ExportScript\Config.lua のファイルを下記のように変更します。 (IkarusPortの所の値を 1625から1725に変えます)。

-- Ikarus a Glass Cockpit Software
ExportScript.Config.IkarusExport    = true         -- false for not use
ExportScript.Config.IkarusHost      = "127.0.0.1"  -- IP for Ikarus
ExportScript.Config.IkarusPort      = 1725         -- Port Ikarus (1625)
ExportScript.Config.IkarusSeparator = ":"

エクスポートスクリプトは、両方をサポートすることができます。その方法は、「設定ヘルプ・ドキュメント - DCSインターフェースとIkarusの両方を有効にする」に記載されています。 Settings Help Documentation - Enabling Both DCS Interface & Ikarus.

ビデオ映像による説明

インストールと設定の概要は下記のリンクでたどることができます。 DCS Interface for Streamdeck Video Instructions

ソースコード

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

  • Sources/DcsInterface/MyStreamDeckPlugin.{cpp,h} - StreamDeck C++ API (based on the Elgato streamdeck-cpu example)
  • Sources/DcsInterface/StreamdeckContext.{cpp,h} - Class which stores each visible Streamdeck button's settings
  • Sources/DcsInterface/DcsInterface.{cpp,h} - Interface between plugin and DCS
  • Sources/Test/*.cpp - Contains unit tests for above classes and helps demonstrate their function
  • Sources/com.ctytler.dcs.sdPlugin/proprtyinspector - Contains html and javascript for handling user settings
  • Sources/com.ctytler.dcs.sdPlugin/manifest.json - Configuration for the Stream Deck plugin

ビルド

DCSとの通信を処理するC++実行ファイルと、Stream Deckプラグインのパッケージの両方をビルドするビルドスクリプトが含まれています: build_plugin.bat

Visual C++ターゲットのビルドステップを実行するためには、VSのDeveloper Command Promptからこのファイルを呼び出す必要があります。 Developer Command Prompt for VS

また、Streamdeck SDKで使用されているBoost C++ライブラリをインストールする必要があるかもしれません。現在のバージョンは、Visual Studio Community 2019とBoost 1.55.0でビルドされています。