Virtual Cockpit / Remote Cockpit

This is looking awesome! Any chance this is open source / any plans to make it open source?

Hi @HigherFlyer1282 ,

Yes, it will be fully OpenSource once it’s stable enough for release, that was always my intention.

I plan to release a compiled copy first to allow people to try it and provide feedback, once the initial kinks are sorted (and any new features added), I will then be releasing the Source Code.

The very first thing I asked in my original post was for people willing to collaborate on this project, so it could be pushed out to people quickly. Sadly none were forthcoming.

Who knows, maybe once it’s released, other developers will jump on board and make it a truly community-driven project.

Dragonlaird

Hey, Dragonlaird. I’ve been following the development of your project since your first post. I’m a retired pilot of the Brazilian Air Force and my hobby is and has always been flight simulation, not to mention my direct contact with professional simulators. I’ve been using X-Plane since version 10 but like many I was attracted by the beauty of the FS. The thing is that I’m a home cockpit builder and as we know, so far FS is not making our lives easier. I use Air Manager v3.7 for X-Plane 11.51 and also the version 4, free for testing and functional on FS. I discovered another app called SimVim and this one is free. It provides, like Air Manager, an excellent interface between Arduino boards (and others) and the simulator. SimVim also provides commands for keys that FS does not have. I believe that the FS, in this respect, covers 25% of what we need, being optimistic. My programming experience is limited to the old XML and LUA. I can say that I’m skilled with the graphic part of the instruments and with the heavy work, that is, the physical part of the construction of the HC. Well, speaking of the simulator, currently I already can remove the 3d panel from any FS plane without distorting the image of the scene. I’m currently using MS PowerToys to have saved “screens”, with pre-defined size and position where I drag those instruments that allow “popout”. This helps but does not solve it. Your project is a hope, a beautiful promise. I don’t know what I can do to help you but I would love to be able to. I realize that there’s a certain disappointment on your part as there are not many interested parties, if I may say. What I can say for sure is that here in Brazil we’ve a large community of HC builders and I’m already in contact with many friends and talking about this project of yours. What I can say are words of support and, moreover, put myself at your disposal for anything you need, if I can help. Graphic part, research, I can also solve any doubts regarding technical details about the instruments… It’s not much and maybe none of this really helps you. Anyway, know that I’m here if you need. Luck, health and success.

Hello, this looks great. Looking forward to the release.

I am the developer of Find My Plane which is a free web tool which allows live tracking of simulator flights through a web interface.

It is all free and open source. It has its own client but I also plan to make it available to other developers so that they can easily add flight tracking functionality on another device to their projects. I have already integrated it with the Fly By Wire A320nx project.

Would you consider collaborating to add this functionality to your project? All that is required is a simple API post over HTTP to update the location of your user’s plane on a regular basis and my server takes care of the rest. I’d be happy to talk you through the documentation and demonstrate how it works if you’d be interested?

Thanks
Mark

2 Likes

Firstly, thank you to everyone who has followed this project, and don’t worry, I’m not about to ditch it or stop working on it, in any way.

In fact, that leads me to the second point I wanted to make…

I’ve decided to open the project source for people to start looking at and experiment with.

To be clear, this isn’t a full release, not even a Beta release, this is an Alpha Code release, allowing access to the project for others to start looking at and even compile a copy for themselves if they have the necessary skills.

Be kind, this is the first time anyone but me has had access to this, so it’s far from perfect. There are still features missing and undoubtedly a lot of bugs.

At some point, I’ll probably move the project to GitHub (or at least a fork of the master branch) and add in a pre-compiled copy of the code for people to download, but for now - here’s the raw, unvanrnished code:

https://dragonlaird.visualstudio.com/RemoteCockpit

Dragonlaird

Slight addendum to the above, I’ve also included a compiled copy of the project, so non-developers can install it and experiment.

Remember, this is an ALPHA Release, there’s likely to be bugs.

The Installer can be found here.

It will install the Server component as a Windows Service but it will not start it for you. It will also add a shortcut on your desktop to access the various applications in this project, including shortcuts to start and stop the server.

The installed project can also be uninstalled via the the normal Add/Remove Programs feature in your Windows Control Panel.

Hi Mark,

Sorry for the delay, that sounds like something that could easily be added to this project.

I just released the first copy but realised I made a rookie mistake with the current version so I’ve taken it offline while I reverse about 2 weeks of code changes.

Should be back again tomorrow when I’ve reversed all the code in Git.

Jim

I’ve just realised one of the latest (large) code changes to implement XML config files, has a rather nasty bug.

It took about 2 weeks to develop this code and now I need to reverse all those changes, as the cockpit simply isn’t stable enough with them in (and it’s way slower at parsing the XML).

Hope to complete the reversal tomorrow, until then I’ve made the repository Private, to prevent anyone downloading a really bugged version and getting the wrong idea.

Before you invest a lot more time into your steam gauges, have a look at this: https://www.codeproject.com/Articles/27411/C-Avionic-Instrument-Controls
I’ve turned this code into a standalone dll library, let me know if you are interested.

Also these two links might prove useful:
https://www.codeproject.com/Articles/30016/Sliding-Scale-Gauge
https://www.codeproject.com/Articles/20341/Aqua-Gauge

1 Like

Where were you when I was asking if anyone wanted to help with this project?

Thankfully, the way I designed the cockpit display should allow embedding these into any cockpit layout (the cockpit can load instruments using a config or pre-built instruments as an assembly).

I suspect it will need a wrapper to implement a standard interface and convert them, but that shouldn’t be too difficult.

I’ll definitely look into that as a future development feature, your graphics are way better than mine, my imagery is quite basic, as I didn’t spend too much time designing the graphics, focussing on writing code as a priority.

None of those links are my code, they are all done by others. I’ve just used them in my own project.

This article lost me at

Almost finished reversing the dev work done over the last 2 weeks.

Client is now working fine, with instruments displaying correctly in the cockpit window and behaving as expected.

Server works when executing as a Console application (standalone program).

Just need to get it working as a Windows Service again, then it should be ready to open up the repository again.

Quick update.

I’ve copied the code to GitHub, it will be made public in a couple of days.

Just waiting for a Code-Signing Certificate so the installer can be run on your own computer, without warnings of Unknown Publisher or Dangerous Software etc.

The code is now public in GitHub: GitHub - Dragonlaird/RemoteCockpit: A Client/Server Project for MSFS 2020, to stream updates to a remote client and update that UI

For those wishing to just download/install it, here is a prebuilt install: RemoteCockpit/Installer/Debug at master · Dragonlaird/RemoteCockpit · GitHub

3 Likes

I’ve been re-writing the code for SimConnect SDK to provide a simpler, static helper class to handle all SimConnect communication.

I’m considering creating a branch in this project, to bypass the server element in the above project, and use the SimConnect SDK to handle the network communication, via the new helper class.

This will also simplify comms for other 3rd-party applications running on a remote PC, that rely on SimConnect, as it will create the correct configuration file for the SimConnect SDK to talk directly to the SimConnect API.

@E1ephant42 For your info, I’ve incorporated a wrapper for one of the gauges in the project you suggested.

It doesn’t provide stepped increases for values supplied (yet) so it can appear a little “jumpy” for large changes in values for the SimVar - but the important thing is, it works.

I’ll add in some code to provide smaller increments, as currently happens in the build-in plugins, to provide a smoother animation.

Hi DragonIaird;
I am fascinated from your project!
I will try to use it to learn more about SDK.
My simple goal is to get just some main values out of the SIM instruments and show them as a pure text banner. E.G. just IAS, Heading, Trim-Status, Flaps-Status, RPM, ASL.
I am sure I will find a solution for that in your code :slight_smile:

1 Like

Hi @SteinGerste1348 ,

If you’re looking for information on how to access/use SimConnect variables (SimVars) then my tutorial might be of some benefit, as it allows you to control the SimConnect SDK with simple requests to connect to MSFS 2020 and fetch SimVar values, either as a one-off request, or repeatedly at a frequency of your own choosing.

Dragonlaird

1 Like

Thanks a lot, DragonIaird!
I follow both of your threads :slight_smile:
Yes, to get some first experiences with SimConnect and MSFS SDK your SimVar Request handler, obviously, is the first and easier step.