Jump to content

StreamDeck Plugin: Pilot's Deck


Daniel Saffran

Recommended Posts

Daniel Saffran

Hello fellow Bus-Drivers! :)

I have been working for some time now on a StreamDeck Plugin which connects to Prepar3D via FSUIPC. So that a StreamDeck can be used as Input (and Display) Device.

You can get it from my Github-Repository under Releases (current is v0.7.7). Installation is just extracting the Zip and Re/Start StreamDeck. What Actions are available and how they are configured can be read in the Readme.

Suggestions and Feedback appreciated!
If you have any Questions or Problems, feel free to ask me! 

Have Fun :) 

 

**Update for FSL Users**
You can find now an Example with preconfigured Profiles in the Downloads-Section

 

 

 

Taxi-Folder.jpg

FCU.jpg

MCDU.jpg

SD-Profile.jpg

XL-Profile.jpg

  • Like 1
Link to comment
Moritz Frenken

Hey,

I already downloaded it and gave it a try. actually I didnt get it woking.
I inserted some control parameters but the sim didnt recognized it.
But if you are still searching beta testers send me a PM.

Regards

Link to comment
Daniel Saffran

I've tried to test as much as possible - of course it is in development, but that nothing works is a bit suprising. Let's work it out via PM ;) 

Link to comment
  • 2 months later...
Mats Kronberg

Yes please. :)

This looks very promising, but I wasn't quite able to get it to work.

I can see the Actions in the Stream Deck UI, but I'm not able to make even a simple Display Value work.

I enabled the FSUIPC (registered version) log Console Log window, but it shows nothing when I start Stream Deck and open the folder containing the action.

The Stream Deck log suggests the plugin is crashing:

ESDCustomPlugin::StartPlugin::<lambda_0b565748c80c245c6dacbb627626632b>::operator ()(): The plugin 'PilotsDeck' crashed with code 0:-532462766
ESDCustomPlugin::StartPlugin::<lambda_0b565748c80c245c6dacbb627626632b>::operator ()(): Restarting plugin 'PilotsDeck'
ESDCustomPlugin::StartPlugin::<lambda_0b565748c80c245c6dacbb627626632b>::operator ()(): The plugin 'PilotsDeck' crashed with code 0:-532462766
ESDCustomPlugin::StartPlugin::<lambda_0b565748c80c245c6dacbb627626632b>::()::<lambda_f28c194402b52051a8ce98ebab4f5e3f>::operator ()(): Restarting plugin 'PilotsDeck' after one minute

Any suggestions?

 

 

Link to comment
Daniel Saffran

Hello Mats,

did you try to unblock/exclude the Plugin like described in the Readme?

When you don't find a log-directory inside the plugin-dir, it very likely that the executable and/or its dll's are blocked.

 

Link to comment
Mats Kronberg

Yes, that helped! Thanks!!!

Now I just have to figure out how to do the lvar dance with the rotorbrake. Oh the vjoy! :)

 

Link to comment
Daniel Saffran

Great to hear :)

What do you mean with "lvar dance"? 

You can any way of input you like, if thats rotorbrake, thats fine. I did 99% of my profile with Lua(Toggle) and Macros ;) 

Link to comment
Mats Kronberg

I was just trying to be funny. :) What I meant is that now it's time to learn how to make FSUIPC do the things I want.

I was able to make some basic buttons (show the xpdr code, toggle seatbelt sign, ...), and I think your plugin is very promising!

It feels more rewarding to get a single button working when it's complicated to do so than to just get a finished product that Just Works. :)

Are there some examples profiles in the repo too? There were some extra profiles that StreamDeck offered to import, but they seemed empty.

Link to comment
Daniel Saffran

The bigger problem is imho if and how the A320X does respectively reports the things one wants *cough* :ph34r:

You can use what you used before to map the cockpit-buttons/-controls to the joystick. But you're right to get dynamic buttons, you have to dance the lvar-dance ;)
What I used as Lvar Reference is the FSL2Lua Library from Peter Pukhnoy's Virtual copilot. There's a file called "FSL.lua" where you can find the lvar-names.

The included Profiles are for the (StreamDeck) profile-switching-feature of the plugin. The profiles can be switched on basis of a FSUIPC-profile.
Unfortunately there are no example profiles, since there are many ways to control a button and there are different user-preferences. For example, I make heavy use of Lua and Macros, other may prefer Controls/RotorBrake. And again others maybe want to map everything within the FSUIPC-GUI and therefore only use the (FSUIPC's) vJoy in the Plugin.

Link to comment
  • 2 weeks later...
Thomas Hempel

I really tried my best, but i can´t get it work. 

Is it possbile to get an example e.g. for the radios?

Link to comment
Daniel Saffran

Hello Thomas,

but the Plugin does basically work, right? For example, the Drop-Downs for Action-Type and Images work and you have a log-Folder inside the Plugin-Folder (not Streamdeck-Folder)?

What is the Challenge with the Radios?
You would need some Action to trigger the Swap - either by Macro, RotorBrake-Code aka Control (if existing for Radio-Swap) or when I remember correctly even the FSUIPC-Offset works with FSL to do the Swap.
For the Frequencies you can either user the BCD-encoded Offsets (3118-3120 / 034E) or the integer-Offsets (05C4-05D0). But be warned, FSL does not synch these Offsets with the real Values active in the Cockpit very well, only the Active is more or less accurate.

Link to comment
  • 1 month later...
Shand Stewart

Seems like an odd question but, does it/would it work with PMDG aircraft since their coding tends to not follow the “standard” way of using FSUIPC …?

Link to comment
Daniel Saffran

I'm not sure I can follow you, what for example should be so different?

When I look at the Offset-Mapping Documentation I see nothing special (besides I'm becoming somehow jealous that all that is not available for FSL :ph34r: )

Link to comment
  • Daniel Saffran changed the title to StreamDeck Plugin: Pilot's Deck
  • 1 month later...
Eric Fisher

Is this still available? And are their instructions for dummies? I use fsuipc and LINDA currently with the FSL Plugin for the VRinsight hardware. Does this require AAO software as well? 

Link to comment
Daniel Saffran

Uhm ... what makes you think it is not available anymore? ^^
It is tripple-A: alive, active and available :lol:

You can always find the latest Release under https://github.com/Fragtality/PilotsDeck/releases (currently 0.6.5)
The Readme is extensive and describes the Installation and Configuration/Usage. I'm glad to answer Questions and help out with Problems ... after reading the Readme ;) 
There are also preconfigured (StreamDeck) Profiles available for FSLabs (here in the Downloads-Section) and also the PMDG 747-8, MadDog MD-82 and QW 787 on GitHub. The former two are a User-Contribution, the later is also created by me (if you also own the QW 787 I'd recommend to take a look at QualityWings2GSX).

AAO (Axis-and-ohs?) is not required by any means (?!).
PilotsDeck is a "normal" and standalone StreamDeck Plugin which uses FSUIPC to connect to the Sim(s). So you basically need StreamDeck Software + FSUIPC6/7 (registered recommended) + Prepar3D/MSFS. To my understanding AAO is also implemented as StreamDeck Plugin, so you theoretically could use both on the same StreamDeck (Profile) if needed.

Link to comment
Eric Fisher
15 minutes ago, Daniel Saffran said:

Uhm ... what makes you think it is not available anymore? ^^
It is tripple-A: alive, active and available :lol:

You can always find the latest Release under https://github.com/Fragtality/PilotsDeck/releases (currently 0.6.5)
The Readme is extensive and describes the Installation and Configuration/Usage. I'm glad to answer Questions and help out with Problems ... after reading the Readme ;) 
There are also preconfigured (StreamDeck) Profiles available for FSLabs (here in the Downloads-Section) and also the PMDG 747-8, MadDog MD-82 and QW 787 on GitHub. The former two are a User-Contribution, the later is also created by me (if you also own the QW 787 I'd recommend to take a look at QualityWings2GSX).

AAO (Axis-and-ohs?) is not required by any means (?!).
PilotsDeck is a "normal" and standalone StreamDeck Plugin which uses FSUIPC to connect to the Sim(s). So you basically need StreamDeck Software + FSUIPC6/7 (registered recommended) + Prepar3D/MSFS. To my understanding AAO is also implemented as StreamDeck Plugin, so you theoretically could use both on the same StreamDeck (Profile) if needed.

Many thanks Daniel! 

Link to comment
  • 1 month later...

Hi Daniel,

First of all thank you so much for all your hard work in getting this working. It is seriously an impressive piece of work. I was able to get the default profile installed with little effort and generally works quite well. Some comments from myself on my experience:

  • Maybe cuz I'm using chase plane, the internal VC views seem to be at the wrong zoom level. The Pedestal and Overhead views are mixed up.
  • As much as I appreciate how everything is modelled, I do feel it takes a bit away from the sim a bit if I have everything right there for each phase of flight. For myself I have really focused on the overhead section with the lights, APU and AI instead, recombining from different parts - the part that I tend to fumble around with in key phases of flight.
  • I Have modified some of the switches to not use the long press for the 3 stage switches, but cannot seem to do this for the Smoking light of all switches
  • APU START is not working for me which is a bit unfortunate. It only flashes ON briefly but never shows AVAIL for me.
  • The MCP section is also really great and very handy!
  • The VH1 frequency changer is very nice however the font size seemed a bit large because by default the frequency number would line break. Some frequencies like 125.565 do not show correctly in the display

Not sure if you had any input on these bugs but even if they are not ironed out super happy with what you have done here. Thanks again!
 

Link to comment
Daniel Saffran

Hello Sam,

glad to hear you like my work :)

You have to differentiate between the Plugin and the FSL Profile. The Plugin is more or less a "general framework" to configure anything a Sim and a Plane enables with the Appearance on the StreamDeck also being highly configurable. Since that can be somewhat "overwhelming" I've created the Profile which is available here in the Forum. It is a starting Point / some kind of Tutorial to get the Users started. It just delivers a set of preconfigured Actions which can be configured and arranged to one's personal liking. Specifically, it's just a public Copy of the Profile I use. ^^

5 hours ago, Simon Tam said:
  • Maybe cuz I'm using chase plane, the internal VC views seem to be at the wrong zoom level. The Pedestal and Overhead views are mixed up.
  • As much as I appreciate how everything is modelled, I do feel it takes a bit away from the sim a bit if I have everything right there for each phase of flight. For myself I have really focused on the overhead section with the lights, APU and AI instead, recombining from different parts - the part that I tend to fumble around with in key phases of flight.
  • I Have modified some of the switches to not use the long press for the 3 stage switches, but cannot seem to do this for the Smoking light of all switches
  • APU START is not working for me which is a bit unfortunate. It only flashes ON briefly but never shows AVAIL for me.
  • The MCP section is also really great and very handy!
  • The VH1 frequency changer is very nice however the font size seemed a bit large because by default the frequency number would line break. Some frequencies like 125.565 do not show correctly in the display
  • Yeah sorry, did not mention that in the Description or Readme: the View-Buttons are for my customized Camera Settings (I've tweaked / rearranged the Cameras in the aircraft.cfg's) - so the Sequence switches to the "wrong" camera with the default Camera Settings. But neither the Plugin nor the Profile change the Zoom Level in any way. When the Zoom Level is wrong, it is either "as delivered" by FSL or as configured by yourself. The Actions only do a Sequence like "Select Category VC -> Next View in Category".
    Also, if you use Chaseplane and not the custom Camera System - then configure the Actions for Chaseplane! ;) I don't know it, so I can't say how to do that ... but if it can be controlled via FSUIPC or at least can be assigned Joystick Buttons (vJoy Driver), there is a way.
  • That's the very Idea behind the Plugin and the Profile here ... configure and arrange to your needs (without the need to define all the Buttons/Actions first). So there is nothing to "iron out" here, you're using it as intended ;D
  • Same as above!
  • Yeah, like some other Switches too. Nothing I can do about that, that is just how FSL designed the "not intended for use" lvars!
  • Glad you like it, although it is a very basic Implementation compared to the QW787 or PMDG 747 Profiles ... but again: FSL does not support more.
    (And it is called "FCU" on Airbus xD )
  • Then just change the Font to your Preferences ... Font, Size, Style, Color are all configurable ;)

Greetings,
Daniel

Link to comment
13 hours ago, Daniel Saffran said:
  • Yeah sorry, did not mention that in the Description or Readme: the View-Buttons are for my customized Camera Settings (I've tweaked / rearranged the Cameras in the aircraft.cfg's) - so the Sequence switches to the "wrong" camera with the default Camera Settings. But neither the Plugin nor the Profile change the Zoom Level in any way. When the Zoom Level is wrong, it is either "as delivered" by FSL or as configured by yourself. The Actions only do a Sequence like "Select Category VC -> Next View in Category".
    Also, if you use Chaseplane and not the custom Camera System - then configure the Actions for Chaseplane! ;) I don't know it, so I can't say how to do that ... but if it can be controlled via FSUIPC or at least can be assigned Joystick Buttons (vJoy Driver), there is a way.
  • That's the very Idea behind the Plugin and the Profile here ... configure and arrange to your needs (without the need to define all the Buttons/Actions first). So there is nothing to "iron out" here, you're using it as intended ;D
  • Same as above!
  • Yeah, like some other Switches too. Nothing I can do about that, that is just how FSL designed the "not intended for use" lvars!
  • Glad you like it, although it is a very basic Implementation compared to the QW787 or PMDG 747 Profiles ... but again: FSL does not support more.
    (And it is called "FCU" on Airbus xD )
  • Then just change the Font to your Preferences ... Font, Size, Style, Color are all configurable ;)

Hi Daniel,

  • The views make a lot more sense now. I have also customized this a bit for my use too (I love the 2D panels). Right the zoom is not your end but a reflection of the personalized settings you have. I thought about installing vJoy for ChasePlane integration but for now have decided not to jump to that complexity.
  • :( unfortunate about some of the switches not working as intended but it's pretty awesome you took the effort to program all the switches to their intended full functionality.
  • When I said MCP ... I meant the ECAM control panel!
  • For the VH1 I did adjust the fonts a bit to my preference but some of the frequencies do not seem to show up correctly as in some of the ending digits are not correct.

I will try to have more of a go at customizing more of the settings. Thanks again!

Link to comment
  • 2 months later...
Daniel Saffran

*Version-Bump*

v0.7.1 released:

  • Added some new Korry-Images for Busses
  • Added a black and round Switch Image
  • "Display Gauge" can now trigger Sim-Actions / can be mapped as other Buttons (both Single and Dual Gauges)
  • The Base Color of the Bar/Arc can be now changed based on another Variable/Value

Check the Readme if you're upgrading from a 0.6.x Version!

Also, the premade/preconfigured Profiles for the FSLabs A320-X where improved and updated! They can be found here in the Downloads Section.

  • Thanks 2
Link to comment
  • 2 months later...
Daniel Saffran

*Version-Bump*

v0.7.6 released (combined Change Log):

  • MSFS SU10 Compatibility: Compiled against FSUIPC 7.3.9 / WASM 0.9.0 and newest C# Client
  • X-Plane Support: The Plugin now connects directly to X-Plane via WebSocket. DataRefs can directly be entered (Commands, Value Access for read/write). XUIPC not required anymore. Profile Switching only for XP12 and based on Plane Path.
  • Comparisons: Value Mappings now support multiple Comparisons (greater/lesser) and can be mixed with discrete Mappings (equality)
  • Comparisons: Values used for Image display can also be expressed as a comparison, e.g. ">=0.3"
  • Added Support for LuaValue as Script Action
  • Bugfixes / added Image(s)

Check the Readme if you're upgrading from a 0.6.x Version!

 

The Lua Library and Databroadcast-Tool for the A320-X StreamDeck Profiles/Integrations have also been updated! They can be found here in the Downloads Section.
Change Log for the Profiles/Integration:

  • Lua Functions are now called via LuaValue - if you created a custom Profile you need to change the Action Address! (e.g. "LuaValue:Pilotsdeck_FSL:391:1", look them up in the Library Configurator). This bypasses the 255-Flag Limit and the need to address Functions with two Parameters Flags (that made Problems when a Button was pushed fast and repeatedly).
  • Improved Accuracy of the FCU Heading Displays (e.g. not showing correct when on APPR with manual Heading)
  • GSX Integration: Automatically connects / disconnects Ground AC with External Power. Also calls Deboarding automatically on Arrival now to workaround the Issue with newer GSX Versions (you have to disable automatic Deboarding in the MCDU or disable that Feature in the PLDFSL_Config Script)
Link to comment
  • 1 month later...
Daniel Saffran

Uhm, well, not sure if I can do that ... don't know how to explain it clearer ... but let's try:

 

If you have/use a FSUIPC Profile for the A320-X called "MyFSLabsProfile" and you want the Scripts only to be started when that FSUIPC Profile is active, then add that to your ini File:

[Auto.MyFSLabsProfile]

 

If you want to start the Scripts globally or do not have a FSUIPC Profile (or don't know what that means), then add that to your ini File:

[Auto]

 

In both cases, directly below you insert that

1=Lua Pilotsdeck_FSL
2=Lua GSX_AUTO

 

Everything under the Assumption, that you don't have any [Auto] Section yet in your ini File (which is probably the Case). And that you started P3D/FSUIPC once after you copied/installed the Lua Files.

Can't give you an example based on my ini File, that would probably not help you.

Link to comment
Daniel Saffran

You can have multiple Auto-Sections in your ini File. But only one per Profile ([Auto.xxx]) and the general Section ([Auto]) also only once.
The Scripts in the general Section are run for every Plane - so independent of Profile and in addition to the profile-specific Scripts.

So you could theoretically put the GSX Script in the [Auto] Section and the FSL Script under an [Auto.MyFSLabsProfile] Section and both Scripts would still be run for the A320-X. But in that Case the GSX Script would be run for every Plane. That is the way I have it configured, since I use the GSX Scripts for other Planes too.

Link to comment
  • 4 weeks later...
Alhard Horstmann

Hi Daniel (Fragtality), I am using FSUIPC since more then 10 years and want to use now your StreamDeck Plugin.

But it's not running. Here are my findings:

Version of Plugin = 0.7.6.0

Version of StreamDeck  =  6.0.2.17735

Excerpt of the LogFile with error message:

2022-12-21 12:05:45.702 [FTL] PLUGIN CRASHED

2022-12-21 12:05:45.703 [FTL] StreamDeckLib

2022-12-21 12:05:45.703 [FTL] commandLineArgs must be the commandline args that the StreamDeck application calls this program with.

2022-12-21 12:05:45.709 [FTL]    at StreamDeckLib.ConnectionManager.Initialize(String[] commandLineArgs, ILoggerFactory loggerFactory, IActionController actionController, IStreamDeckProxy streamDeckProxy)

   at PilotsDeck.Plugin.Main(String[] args)

I checked all what you mentioned in your installation and troubleshoot manual.

My System is WIN10 PRO with 64GB RAM   and P3D and MSFS

The Log Files are attached

StreamDeck0.zip PilotsDeck20221221.zip

Link to comment
Daniel Saffran

Seems you're trying to start the Plugin on it own directly. That will not work.
If it is installed correctly, it will be started automatically by the StreamDeck Software.

Link to comment
Alhard Horstmann
4 hours ago, Daniel Saffran said:

Seems you're trying to start the Plugin on it own directly. That will not work.
If it is installed correctly, it will be started automatically by the StreamDeck Software.

Thanks Daniel, What can I  do, as SD is not  showing the PilotsDeck plugin ?

Why comes the message "2022-12-21 12:05:45.702 [FTL] PLUGIN CRASHED"

How shall I correctly activate the Plugin?

Link to comment
Daniel Saffran
1 hour ago, Alhard Horstmann said:

Thanks Daniel, What can I  do, as SD is not  showing the PilotsDeck plugin ?

That proves it is not installed correctly. Even if the Executable would not be running, StreamDeck should still show the Plugin Actions since these are described in the manifest File.

 

2 hours ago, Alhard Horstmann said:

Why comes the message "2022-12-21 12:05:45.702 [FTL] PLUGIN CRASHED"

That is normal behaviour when the executable is started manually. It needs some essential Commandline Parameters to run (which are normally provided by the StreamDeck Software).

 

2 hours ago, Alhard Horstmann said:

How shall I correctly activate the Plugin?

Put the Contents of the Zip File in %appdata%\Elgato\StreamDeck\Plugins and (re)start the StreamDeck Software.
(In the End you should have a Folder "com.extension.pilotsdeck.sdPlugin" there which contains the Binary. It sounds like your Archive-Software added another Folder and because of that the StreamDeck Software can't find the manifest)

Link to comment
Alhard Horstmann

Success, Thanks. After copiing in Appdata it works. Before I copied in program files.

Danke Daniel und schöne fränkische Weihnachtsgrüße nach Hessen.

Link to comment
  • 3 weeks later...
Daniel Saffran

*Version-Bump*

v0.7.7 released (combined Change Log):

  • Toggle Switch Option for Control and XP-Commands added (toggle a Switch with two different Controls/Commands)
  • XP-Commands can now be chained
  • HVars can now be chained
  • Updated Libraries (full SU11 Compatibility)
  • Now compiled for .NET 7 (Update your Runtime!)
  • Improved Sim-Connection/-State Handling
  • Fixed Bug with XP-DataRefs where they would not update when a DataRef is used multiple times on one Profile/Folder
  • Fixed Bug with Profile Switching with XP12
  • Fixed Bug with Comparisons/Value Matching
  • Fixed Bug where Actions would stay in Error State

Check the Readme if you're upgrading from a 0.6.x Version!

 

The Lua Library and Databroadcast-Tool for the A320-X StreamDeck Profiles/Integrations have also been updated! They can be found here in the Downloads Section.
Change Log for the Profiles/Integration:

  • Updated Libraries for Databroadcast-Tool and LibraryConfigurator
  • Changed the Title/Font Settings on the Profiles so look good again with StreamDeck Software Version 6
Link to comment
  • 2 weeks later...
Alhard Horstmann

Hello Daniel,

I updated now all tools and I still have some problems with my SD MK2 , I will report later.

But first I need the latest List of all Rotorbrake-Control Codes for the FSL A320 on P3D v4.5

I have an older Excel List   https://forums.flightsimlabs.com/topic/10548-some-early-parameters-for-those-of-us-using-hardware-controls/

but there are missing some functions e.g. 66587-72504.

Where can I find it. Please give me a link or the data.

Thanks

Link to comment
Alhard Horstmann

Hi Daniel, yet another question.

In your Read.me you wrote:

6 – Scripting
The LUA Library can be used in your own Scripts, regardless if you use the StreamDeck Profiles or PilotsDeck. The Data-Broadcast-Tool must be running in Order for the Library to work.

Where can I find the "Data-Broascast-Tool" ?

Link to comment
Daniel Saffran

Since you're quoting the Readme, you must have downloaded the Package. And with that you have everything you're asking. Please read the whole Readme.

Link to comment
Alhard Horstmann

I am Sorry , Daniel.

I read the "readme" more than once and I am a little confused in the Github navigation.

Where is the package to download?  I can see no download button.

Are the Rotorbrake-Control Codes also in this package?

In the meantime, some SD buttons are working. Some.

Link to comment
Daniel Saffran

Okay ... so is this about the StreamDeck-Plugin or is it about the FSL-Integration? It seems the later and that is nowhere to be found on GitHub, it is only released here.

The FSL-Integration is linked in the very first Post:

On 2/16/2021 at 11:06 PM, Daniel Saffran said:

**Update for FSL Users**
You can find now an Example with preconfigured Profiles in the Downloads-Section

 

I generally don't understand why you ask me that, you must have downloaded it. You are quoting the very Readme I recommended to read :blink:

Since it is less time-consuming:

image.thumb.png.8f1c6693f0c2e9963fcc0e31581f92fd.png

image.thumb.png.4c35409193bbc608ee96c854a30dc1fe.png

Link to comment
Alhard Horstmann

Sorry, sorry Daniel,

I was reading this text over. Especially in the "Configurator" Section and the introductional "PilotsDeck_FSL" (... Data-Broadcast-Tool)  section.

Now,. with your help, I found all information I needed for now.

And ,Yes, I am talking about FSL-Integration only.

Now I will write and describe  my findings and problems in using "PilotsDeck_FSL". Especially my problem with the Windows Focus Handle.

Again, this tool is a great solution and helping me to fly my Airbus more convenient.

Thanks again for your excellent inplementation.

 

 

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...