Saturday at 04:36 PM2 days Below is the result of an hour-long fight with Claude. I hope I do not violate forum rules by pasting the final summary here, it could be helpful and has been checked by me.# AxisAndOhs RPN Setup: Fenix A320 RMP Frequency Tuning (MHz/kHz toggle via CON button)**Hardware setup:** A physical rotary encoder for the RMP frequency plus a separate push button ("CON"), e.g. on a custom pedestal build. The encoder should increment/decrement the active digit group (MHz or kHz), and the CON button toggles between the two modes.## Background / How it worksThe Fenix A320 RMP has **two separate physical encoders** on the frequency shaft (OUTER = MHz digits, INNER = kHz digits), driven via these LVARs:- `E_PED_RMP{n}_OUTER` – MHz steps (integer)- `E_PED_RMP{n}_INNER` – kHz steps (integer)`{n}` = 1, 2, or 3, depending on the RMP panel.These LVARs work as simple counters: each write with an incremented/decremented value corresponds to one detent step on the real panel.**Important:** There's no native Fenix variable that "switches" between INNER/OUTER — that has to be simulated entirely in AAO, using your own local AAO variable (`L:`) that is never written to the sim, only used internally to control script flow.> ⚠️ Pitfall: There's an LVAR called `FNX320_INPUT_KNOB_PUSHPULL_E_PED_RMP1_INNER_KNOB` that looks like a push/pull state for the RMP knob. It is **not** — it belongs to the FCU HDG/SPD knob. If your RMP has separate INNER/OUTER buttons (no pull function), ignore it.## 1. CON button (toggle MHz/kHz mode)```// Reads the AAO-internal toggle state (0 = MHz/OUTER, 1 = kHz/INNER)// and flips it on every button press.(L:RMP1_STEP_KHZ, Number) 0 ==if{ 1 (>L:RMP1_STEP_KHZ, Number) } // was 0 (MHz) -> set to 1 (kHz)els{ 0 (>L:RMP1_STEP_KHZ, Number) } // was 1 (kHz) -> set to 0 (MHz)```## 2. Encoder turned clockwise (increment)```// Depending on mode, increments either the MHz or the kHz Fenix LVAR by 1(L:RMP1_STEP_KHZ, Number) 0 ==if{ (L:E_PED_RMP1_OUTER, Number) ++ (>L:E_PED_RMP1_OUTER, Number) } // MHz stepels{ (L:E_PED_RMP1_INNER, Number) ++ (>L:E_PED_RMP1_INNER, Number) } // kHz step```## 3. Encoder turned counter-clockwise (decrement)```// Same logic, decrement instead of increment(L:RMP1_STEP_KHZ, Number) 0 ==if{ (L:E_PED_RMP1_OUTER, Number) 1 - (>L:E_PED_RMP1_OUTER, Number) }els{ (L:E_PED_RMP1_INNER, Number) 1 - (>L:E_PED_RMP1_INNER, Number) }```## For RMP2 / RMP3Just replace `RMP1` consistently with `RMP2` or `RMP3` throughout:- `L:RMP1_STEP_KHZ` → `L:RMP2_STEP_KHZ` / `L:RMP3_STEP_KHZ`- `E_PED_RMP1_OUTER` → `E_PED_RMP2_OUTER` / `E_PED_RMP3_OUTER`- `E_PED_RMP1_INNER` → `E_PED_RMP2_INNER` / `E_PED_RMP3_INNER`## Assignment in AAO- CON button → Script 1, as "Button" (not Repeat)- Encoder CW → Script 2, enable "Repeat" if you want fast spin-through- Encoder CCW → Script 3, enable "Repeat" if you want fast spin-through---*Tested with AxisAndOhs (current version, MSFS2020/2024) and the Fenix A320. Exact LVAR names were verified via Dev Mode → Tools → Behavior in the Fenix model (`Cockpit_Behavior.xml`, `UseTemplate Name="FNX32X_Interact_Knob_Infinite_Template"`).* Edited Saturday at 04:37 PM2 days by dmenne työpo
Saturday at 04:52 PM2 days Commercial Member 11 minutes ago, dmenne said:were verified via Dev Mode → Tools → Behavior in the Fenix model (`Cockpit_Behavior.xml`, `UseTemplate Name="FNX32X_Interact_Knob_Infinite_Template"`).*OrDev Mode ->Tools -> Behaviors -> click back into the sim -> hover the mouse over the knob/button/lever you are interested in (=where you see the mouse cursor change) -> press "CTRL + G" . This brings up the behavior code of that component. Then look at the "MouseRect" (FS24) and/or "...Interaction..." (FS20) parts of the component. There you will see the RPN code that is triggered when you use the mouse on that knob/button/lever. That is what you want to replicate in AAO. Edited Saturday at 04:54 PM2 days by Lorby_SI LORBY-SI
Create an account or sign in to comment