State of affairs when using external controllers - not good (IMHO)

Hello @ll,

I’m usually not that guy, but…I just need to get a few things off my chest.

It seems like the ability to operate switches and knobs in the cockpit with external controllers has a rather low priority, for Asobo and some aircraft developers. The latest nail in the coffin is the introduction of the B: variables in SU5, which render previous solutions useless.

I am writing this as the voice of hundreds of customers (and a handful of devs) who suddenly find themselves in a position where tried and trusted solutions for external controls stop working because the internal mechanics of the sim suddenly change - and no path is being offered for making them work again.

Current example are the B: variable input events. In the default planes they are now controlling a lot of things that were previously accessible with LVars. While there is most certainly a good technological reason for doing this, it leaves us stranded, because these B: variables cannot be accessed neither with the gauges API nor through SimConnect.

So here are my modest wishes on behalf of all those people who enjoy things like using MIDI controllers, StreamDecks, Saitek hardware etc. etc.

  • Asobo, please give us access to all variables, especially the B:, O: and I: kind, through the gauges API, so we can access them with a stand alone WASM module.
    Even better would be an equivalent of “execute_calculator_code” for SimConnect, but I don’t want to sound greedy…

  • Aircraft devs, please consider adding an extra XML file especially for controller access, exposing all necessary LVars and HVars. Plus, I imagine just doing something like this and including it in the Behaviors would suffice for most use cases:

  <!-- AAO BVar link ################################# -->
  <Component ID="LVAR_TO_BVAR">
  	<UseTemplate Name="ASOBO_GT_Update">
  		<UPDATE_CODE>
  			(L:AAO_TBM_FUEL_Selection_Auto, Bool) (B:FUEL_Selection, Bool) != if{ (&gt;B:FUEL_Selection_Toggle) }
  			(L:AAO_TBM_InertSep, Bool) (B:DEICE_Engine_1, Bool) != if{ (&gt;B:DEICE_Engine_1_Toggle) }
  		</UPDATE_CODE>
  		<FREQUENCY>1</FREQUENCY>
  	</UseTemplate>
  </Component>

I hope that I am not stepping on anyones toes, but being at the forefront of support requests for an external controller tool, I find this matter urgent enough to post about it.

Oh, and btw: at least the Heading Bug K: events lag significantly in the default G1000 implementation since HF2

On a personal note - it doesn’t feel right to me if a user, who simply wants to operate a real hardware device instead of the mouse, has to become a programmer just to make it work - provided that it is even possible. There has to be a better way.

31 Likes

Thank you so much for posting this.

I had just about eliminated the use of the mouse for flying before SU5, and since it’s release, I have spent countless hours trying to get back to that with no success.

Have not spent a minute flying. Not happy.

6 Likes

The new “B” vars are incredible. They wrap all the complexity of the internal workings of the plane and present a clean interface for SET, INC, DEC, and TOGGLE to the outside world.

Except the outside world can’t access them.

It’s crazy.

If B vars could be called via SimConnect the home-built cockpit community would go bonkers. All the pain we go through trying to re-create the code to do complex things like set the vertical speed on the AP or toggle internal systems connected to the master AP switch would disappear and get reduced to beautifully simple B vars.

Asobo please please please make the B vars visible via SimConnect!

8 Likes

I second/third, etc this motion!

The B vars are the salve we hardware makers have been dreaming of, but they are currently locked away from our grasp tantalizingly just beyond our reach. Having to add XML stanzas to indirectly access them pretty much destroys their value.

Simplest possible technical solution: Just make them accessible from execute_calculator_code(). It’d do.

Best possible technical solution: allow invoking them from SimConnect thus obviating the need for a standalone WASM layer that only serves to call execute_calculator_code(). :slight_smile:

7 Likes

Yes.

I am sure B-variables (or are they events?) were implemented with a very different use case and scenario in mind, from the point of view of airplane developer I guess.

But it seems like the perfect abstraction to avoid duplicating half of the airplane logic in external software just to get a baro knob to work.

Please make them accessible via SimConnect or WASM. Like @TheCoren and @LorbySI said.

Standalone wasm works too, but it is such a hack that works around SimConnect shortcomings.

Please lets have a proper API to access the planes so we can build our panels and controllers to get rid of the mouse and keyboard.

4 Likes

Thanks for posting this and expressing some well-thought wishlist items. Can you confirm if you have a post on our SDK’s AnswerHub? I’d like to make sure it’s in front of the right people. Thanks!

2 Likes

Thanks for posting this and expressing some well-thought wishlist items. Can you confirm if you have a post on our SDK’s AnswerHub? I’d like to make sure it’s in front of the right people. Thanks!

Hello,

where is that “AnswerHub” located? Ever since the 3rd party developers forum has been closed, I have been looking for a way to contact “the right people”, like we did before (worked really great btw.).
Is “devsupport.flightsimulator.com” the correct avenue?

1 Like

That is correct link.

Here’s their tweet when that site went live: https://twitter.com/msfsofficial/status/1402008992608505866?s=21

1 Like

I’ve posted a summary of the root issue there:

[For some reason I appear unable to link to the post] The title is “B input events and the SimConnect and Gauge APIs for hardware developers”

Everyone please feel free to chime in to add details which I have forgotten.

1 Like

Here’s the link to the new post.

@LorbySI when you get a second can you hop over to the devsupport thread and add your comments to it as well? I want to make sure Asobo has the full picture from the key people involved in the software that would benefit from this change.

Thanks!

1 Like

OK, will do. I hope that they don’t ban me :slight_smile:

2 Likes

@Jummivana were you able to share this with the SDK team? I know they were on vacation last week. Any other details or information we can provide that would assist? Thanks!

An official wishlist post for this is now up at Enhanced API to access all aircraft state and trigger all cockpit functions. If you’re reading this thread and agree with the need please head over there to give it a comment and an upvote.

5 Likes