Detlef_747 Posted October 31, 2019 Report Posted October 31, 2019 Hello everybody, I have difficulties to get a Lua script to set the heading hold mode of the C-130 aircraft. I have tried the 0x7c8 variable as well as using ipc.control(65798). If I press the heading hold button per mouse, I can activate the autopilot. So A/P power is on and the A/P master switch is on. However, if I try per Lua script, the A/P heading lock mode toggles on and off without even showing the A/P heading(track) lock light coming on. I try this Lua script: while 1 do has_ap = ipc.readStruct(0x764, "1UD") ap_masterswitch = ipc.readStruct(0x7bc, "1UD") ap_hdg = ipc.readStruct(0x7cc, "1UW")/65536*360 hdg = ipc.readUD(0x580)/65536/65536*360 -- ipc.writeUD(0x7c8, 1) ipc.control(65798) hdg_lock = ipc.readUD(0x7c8) ipc.display("ap_masterswitch="..ap_masterswitch.. "\nap_hdg="..ap_hdg.."\nhdg_lock="..hdg_lock) ipc.sleep(50) end hdg_lock shows 1, 0, 1, 0 and so on. Any help with this is appreciated. Thank you Detlef
Thomas Richter Posted November 1, 2019 Report Posted November 1, 2019 Hi, that AC might not use standard controls but maybe L:Vars. You can check both via Logging tab, - - enable Send to console window and Events (non-axis controls) that will log the control when you press the button via mouse, if it is a control - i.e. set a Key to List Local Panel Vars to list all L:Vars for the currect AC, then find in what is listed the name (Lvar) for the function. You can send then the LVar with Lua Thomas
Detlef_747 Posted November 1, 2019 Author Report Posted November 1, 2019 10 hours ago, Thomas Richter said: that AC might not use standard controls but maybe L:Vars. Hello Thomas, thank you again for your advice. I did never use L:vars and ignored documentation about it until now. I tried arround a lot today. I think you are right, for some features the P3D autopilot at least for the C-130 aircraft seems to use L:vars. I don't like that so much since those variables probably differ between aircrafts. I have a very old self made hardware with switches and LEDs mainly that communicates via COM serial interface with the PC. That used to work fine for many years with FSX. Now, recently I decided to switch to P3D and I have re-programmed all my software from Visual Basic (FSX) to Lua (P3D) using FSUIPC. A couple of things do work, but I have still a lot to do. And I bought PanelBuilder to design my own instrument panel. I dont need 3D cockpits because I have my own switch console and a beamer for the outside picture. Now with the autopilot there seem to be three ways: (1) try to find out the Lvars for the aircrafts I want to use and write to them using Lua. (2) Program mouse macros to set the switches on the original aircraft gauges. (3) Forget about the built-in autopilot and bank or pitch the Aircraft, by directy writing to appropriate variables. A lot to do any way I look at it. Now, With Lvars I need to do detective work to find out the right ones then try to make them work for me. And this would probably be different for different aircrafts. Actually I don't like to fly military aircrafts so much so in the near future I would like to find a 747, 737 that works fine for me. Mouse macros are also dependent on different aircrafts, and I plan to configure my own panel. And probably the autopilot gauge needs to be in the same spot all the time to make the mouse macros work. But I never tried that. Maybe I will e.g. to use the build in gauge to open cargo doors or so. And finally if I forget the built-in autopilot: at least I can probably do that for every aircraft. But my gauges (from PanelBuilder) will then not show the autopilot engaged. And I need to find a way to disconnect the joystick axis with Lua. Well... whatever way I look at it, there's lot to do. I am not decided yet how to proceed. Maybe I start to find some attractive civil jet / airliner first. Thank you Detlef
Thomas Richter Posted November 1, 2019 Report Posted November 1, 2019 Hi, mouse macros can be programmed with profiles. I think L:Vars actually as well by using macros but check the manual. Quote Mouse macros are also dependent on different aircrafts, and I plan to configure my own panel. And probably the autopilot gauge needs to be in the same spot all the time to make the mouse macros work. But I never tried that. Maybe I will e.g. to use the build in gauge to open cargo doors or so. Thomas
Detlef_747 Posted November 4, 2019 Author Report Posted November 4, 2019 Hello Thomas, using Lvars did the trick for me. I experimented using the following Lua code: local lvname={} local k=1 local disp, n, val local aircraft = "" local len, stop lvname[k]="AP_PWR"; k=k+1 lvname[k]="bAPPowerSwVar"; k=k+1 lvname[k]="Track"; k=k+1 lvname[k]="bAPEngageSwVar"; k=k+1 lvname[k]="Pitch Hold"; k=k+1 lvname[k]="IAS Hold"; k=k+1 lvname[k]="bAPBankSwVar"; k=k+1 lvname[k]="KBank"; k=k+1 lvname[k]="MotorA"; k=k+1 lvname[k]="CurBank"; k=k+1 lvname[k]="MotorE"; k=k+1 lvname[k]="bAPHeightIASSwVar"; k=k+1 lvname[k]="bAPTrackSwVar"; k=k+1 lvname[k]="bAPGlideSwVar"; k=k+1 lvname[k]="bAPPitchSwVar"; k=k+1 lvname[k]="HeadingModeKnob"; k=k+1 lvname[k]="LogicHeadingMode"; k=k+1 lvname[k]="MotorR"; k=k+1 lvname[k]="Normal-Heading"; k=k+1 lvname[k]="FD_OnClick"; k=k+1 aircraft = ipc.readSTR(0x3d00, 256) len, stop = string.find (aircraft, "\0", 1, false) aircraft = string.sub(aircraft, 1, len-1) while 1 do disp = aircraft for n=1,k-1 do val = 0 val = ipc.readLvar("L:"..lvname[n]) if val==nil then val = "nil" end disp = disp.."\n"..lvname[n].."="..val end ipc.display(disp) ipc.sleep(50) end Thanks for your help Detlef
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now