Binding, H-events and other information
-
Ok, starting from the beginning of the checklist sequence; the crashbar and the 3-position switches?
-
Ape42 has posted an extensive list of scripts for Axis and Ohs over on flightsim.to They should provide lots of info to help you no matter what external software you use to set up your hardware. Here is the link: https://flightsim.to/file/61922/blacksquare-tbm-850-scripts-for-lorby-s-axis-and-ohs-aao
-
thanks! interesting. however, a basic list from the developer, that might also be included in future documentation, is something that I would much prefer, rather than looking through and sorting xml's made for other software :)
-
I will include such a list with the TBM for its next major update, which will be a big one, porting back many new features developed for the Dukes. In the meantime, those items that you requested are L:Vars, not H:Events.
They are:
L:var_crashbar 0 = down, 1 = up.
L:BKSQ_SourceSwitch 0 = Off, 1 = Main, 2 = Standby
L:BKSQ_GeneratorSwitch 0 = Off, 1 = Battery, 2 = External Power -
Thanks, so after going through the first checklist and programming the buttons I usually map. There is only one element I'm missing, and that is the throttle reverse axis. The values form throttle 0% to -15% seemed a bit alien, in the 4 billion range?
Oh, and also, I did not find the TOGA button.
-
The go-around is just the default binding: K:AUTO_THROTTLE_TO_GA. Keep in mind that it works differently depending on the avionics, so it might not work with the GNS 530. I haven't checked since the latest Sim Update.
Hm, interesting about the throttle. It should be no different than any other aircraft. You should be able to just use whatever default throttle axis you've been using. Definitely no values that unusually large in my code.
-
Ok, btw. how is it with the GA-button in the Bonanza and Baron? (I don't think it's possible to press with the mouse?)
From 0 to 100% the range was easy to identify. It was just the reverse thrust I got a bit strange numbers from, but could very well be that the range is normal for reverse.
-
I had to make a few changes to the Baron and Bonanza to enable go-around mode (the configuration settings are actually for "autothrottle", hence why I missed them the first time. It's all done, I just haven't had the time to roll out an update yet.
Let me know if you have any more issues with the throttle. It shouldn't require anything special beyond any other aircraft.
-
Thanks, the complication with mapping the throttle reverse had something to do with complications/limitations regarding the hardware i use and the mapping software I use. So not directly connected to the aircraft.
About the; Go Around button, should using 'K:AUTO_THROTTLE_TO_GA' provide sound and animation for the button?
-
The animation is there, but I don't use the Asobo default template for that button, so there is no easy way for me to connect the "K:AUTO_THROTTLE_TO_GA" command to the button. If it really bothers you, you can replace the block of code starting with "PUSH_GoAround" in AnalogTBM.XML with...
<UseTemplate Name="ASOBO_ENGINE_TOGA_SubTemplate"> <ID>1</ID> <NODE_ID>PUSH_GoAround</NODE_ID> <ANIM_NAME>PUSH_GoAround</ANIM_NAME> </UseTemplate>
...and then use the B:Var "(>B:ENGINE_TOGA_1_Toggle)" to trigger the TOGA button.
-
Thanks, a lot of nice documentation at the top of that XML-file btw.
Will this code-change, do anything with the functionality of the TOGA-button?
If I understood correctly, replacing all of this?
<UseTemplate Name="ASOBO_GT_Push_Button"> <ANIM_NAME>PUSH_GoAround</ANIM_NAME> <LEFT_SINGLE_CODE> (>K:AUTO_THROTTLE_TO_GA) </LEFT_SINGLE_CODE> <WWISE_EVENT_1>autopilot_push_button_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>autopilot_push_button_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> <TOOLTIP_TITLE></TOOLTIP_TITLE> <TOOLTIPID>Go Around</TOOLTIPID> </UseTemplate>
-
That's correct. No, it should not change the functionality. The only difference is that the Asobo templates are a nightmare to work with, so it's far easier to just implement all your own code. Amusingly, the Asobo templates might look shorter, but behind that short template is often as much as 1,000 lines of abstract code.
-
Great, btw: I found and mapped all the animations for the default 430's and 530's, and are now trying to implement an extra condition in the mapping software I use, to be able to fully map them intuitively with the Flight Radio Panel in combination with the HC Bravo. The KNS-81 runs perfectly with this setup, but as you mentioned to me earlier, animation and sound for the GNS units bezels don't currently work with B&B's (I have not yet tested with the 850). But it's quite clear to me, that it's very difficult to use mappings (that require some abstraction) without animation and sound. If it were there, I believe this setup could be good for training with these units. But currently I feel limited to only using the 750 GPS (mouse-pointer as touch panel is working intuitively).
I hope this can be looked into.
Making a unit like the new Octavi IFR-1 (https://www.octavi.net/) fully compatible, will probably also require some effort in this area?
-
Are you saying that you feel limited to the GTN 750 because the GNS knobs don't animate when using external hardware, or am I missing something else that I can help you with? I don't know what kind of utilities are provided with the Octavi for binding, but it should require no additional work compared to other hardware peripherals.
-
@Black-Square said in Binding, H-events and other information:
Are you saying that you feel limited to the GTN 750 because the GNS knobs don't animate when using external hardware...
Yes. Since rather limited desktop input devices (in my case a yoke, a throttle and a radio panel) that not always completely match the virtual cockpit counterpart; are used to control an entire cockpit, for multiple aircrafts and setups, the animations and sounds of the knobs, become an important part of the UX, especially when using such units as GNS 530 and 430 that require heavy use of rotating knobs and pushes, versus the GTN 750 that is an intuitive touch based interface.
Except for the GNS's, the Bonanza and Bravo works fantastic on my setup now. Thanks to all the input you gave. And I believe everyone with a similar setup would understand the logic of the mapping within a minute or two. And would very seldom need to use the mouse, except adjusting temperature and similar.
-
I finally tried the GA-button 'hack', but did not get it to work. It's not crucial, but perhaps you could look at it for the coming update and for the Dukes?
-
However, one thing I would really like to do, is to map the KNS80 to the Flight Radio Panel, like we did with the KNS81. I think you provided some small bits of code for me, to get the displays to work? As well as a list of the h-events for the buttons and knobs on the unit?
-
Secondly, I think it would make sense on the HC Alpha to map the Gyro Inst switches (Gyro, RMI, ADI 2 and HSI 2) to the Bus 1 (or perhaps Bus 2?). I already mapped the EFIS and Radio master Lvars to the Bus 2 switch, but could not find the Gyro switches from monitoring the data. (H-events?)
-
Lastly, for now :)
It seems like the autopilot switches use a combination of default and custom events. Maybe you could provide a list of recommended events for the autopilot?
And the CRS knob on the EFIS, do I need to map it for each NAV-mode?
-
What exactly did you try with the go around button? Like I said, the go around mode is up to the GPS developers to implement in several cases, so I can't promise that it will work with impunity.
The "Gyro" switches on the overhead are all controlled just by their respective circuits. I believe these are at the top of the XML file where I include advice to home cockpit builders:
Remote Compass (Gyro) Switch "A:CIRCUIT SWITCH ON:57, bool"
RMI Switch "A:CIRCUIT SWITCH ON:58, bool"
ADI 2 Switch "A:CIRCUIT SWITCH ON:59, bool"
HSI 2 Switch "A:CIRCUIT SWITCH ON:60, bool"Here are the inputs for the KNS81:
H:KNS80_bigInc
H:KNS80_smallInc
L:var_rnavKnobPulled
L:var_RNAV_VOLUME
H:KNS80_vorModeButton
H:KNS80_rnavModeButton
H:KNS80_dmeHoldButton
H:KNS80_useButton
H:KNS80_displayButton
H:KNS80_dataButtonThe outputs would have to be created in a similar fashion to what I had you do last time. I can't find the post or message where I gave you instructions on how to do that right now. If you could find it for me, I can advise further.
The Autopilot interface: Most are the expected default events. You can find all of this in the XML:
TestButton: 35 (>L:var_AutopilotStartupCounter, number)
MasterButton: (>K:AP_MASTER)
YawDamperButton: (>K:YAW_DAMPER_TOGGLE)
HalfBankButton: (A:AUTOPILOT MAX BANK ID, number) 1 < if{ 1 (>K:AP_MAX_BANK_SET) } els{ 0 (>K:AP_MAX_BANK_SET) }
SoftRideButton: (L:var_autopilotSoftRideMode, bool) ! (>L:var_autopilotSoftRideMode, bool)
FlightDirectorButton: (>K:TOGGLE_FLIGHT_DIRECTOR)
HeadingButton: (>K:AP_PANEL_HEADING_HOLD)
NavButton: (>K:AP_NAV1_HOLD)
ApproachButton: (>K:AP_APR_HOLD)
BackCourseButton: (>K:AP_BC_HOLD)
AltitudeButton: (>K:AP_ALT_HOLD)
AirspeedButton: (>K:FLIGHT_LEVEL_CHANGE) (A:AIRSPEED INDICATED, knots) (>K:AP_SPD_VAR_SET)VsSwitch:
UP:(A:AUTOPILOT FLIGHT LEVEL CHANGE, Bool) if{ (>K:AP_SPD_VAR_DEC) } els{ (A:AUTOPILOT VERTICAL HOLD, bool) if{ (>K:AP_VS_VAR_DEC) } els{ (A:AUTOPILOT ALTITUDE LOCK VAR, FEET) 0 > if{ 500 (>K:AP_ALT_VAR_DEC) } } }
DOWN:
(A:AUTOPILOT FLIGHT LEVEL CHANGE, Bool) if{ (>K:AP_SPD_VAR_INC) } els{ (A:AUTOPILOT VERTICAL HOLD, bool) if{ (>K:AP_VS_VAR_INC) } els{ (A:AUTOPILOT ALTITUDE LOCK VAR, FEET) 33600 < if{ 500 (>K:AP_ALT_VAR_INC) } } }
The EFIS heading knob uses the default bindings.
The EFIS course knob is as follows:
CLOCKWISE:(L:EFIS_NavigationSource, number) 0 == if{ (>K:VOR1_OBI_INC) } els{ (L:EFIS_NavigationSource, number) 1 == if{ (>K:VOR2_OBI_INC) } els{ (L:EFIS_NavigationSource, number) 2 == if{ (L:TDSGTNXI_OBSModeActive, bool) if{ (>K:VOR1_OBI_INC) } } els{ (L:EFIS_NavigationSource, number) 3 == if{ (L:var_RNAV_OBS, number) 1 + 360 % (>L:var_RNAV_OBS, number) } els{ (L:EFIS_NavigationSource, number) 4 == if{ (L:var_MLS_OBS, number) 1 + 360 % (>L:var_MLS_OBS, number) } els{ (L:EFIS_NavigationSource, number) 5 == if{ (L:var_ADF_OBS, number) 1 + 360 % (>L:var_ADF_OBS, number) } } } } } }
COUNTERCLOCKWISE:
(L:EFIS_NavigationSource, number) 0 == if{ (>K:VOR1_OBI_DEC) } els{ (L:EFIS_NavigationSource, number) 1 == if{ (>K:VOR2_OBI_DEC) } els{ (L:EFIS_NavigationSource, number) 2 == if{ (L:TDSGTNXI_OBSModeActive, bool) if{ (>K:VOR1_OBI_DEC) } } els{ (L:EFIS_NavigationSource, number) 3 == if{ (L:var_RNAV_OBS, number) 0 > if{ (L:var_RNAV_OBS, number) 1 - (>L:var_RNAV_OBS, number) } els{ 360 (>L:var_RNAV_OBS, number) } } els{ (L:EFIS_NavigationSource, number) 4 == if{ (L:var_MLS_OBS, number) 0 > if{ (L:var_MLS_OBS, number) 1 - (>L:var_MLS_OBS, number) } els{ 360 (>L:var_MLS_OBS, number) } } els{ (L:EFIS_NavigationSource, number) 5 == if{ (L:var_ADF_OBS, number) 0 > if{ (L:var_ADF_OBS, number) 1 - (>L:var_ADF_OBS, number) } els{ 360 (>L:var_ADF_OBS, number) } } } } } } }
PUSH:
(>H:EHSI_CourseSync) 50 (>L:var_efisCourseButtonAnim, number)