Jump to content
The simFlight Network Forums

Connecting QW787 transponder and VATSIM cliant by Lua script


Recommended Posts

Hello!

 

I try to make Lua script that connecting QW787 and VATSIM cliant (vPilot)

but it does not function.

Is there any idea ?

  • Using P3Dv4.5, QW787 P3D v1.1.3 and registed FSUIPC5
  • Installed my lua into Prepar3D v4\Scripts folder like that QW787xpnder.lua
local qw_xpnder = varget("L:QW_AFT_Transponder_Knob", "Enum")

if qw_xpnder == 0 or qw_xpnder == 1 then
	ipc.writeSB(0x7B91, 1)
elseif qw_xpnder == 2 or qw_xpnder == 3 or  qw_xpnder == 4 then
	ipc.writeSB(0x7B91, 0)
end
  • put "FSUIPC5.ini" in Prepar3D v4\Modules folder as below.
[Auto]
1=Lua QW787xpnder

 

made Lua following SquawkBox SDK FSUIPC Offsets, and Qualitywings 787 sim builder kit

http://www.squawkbox.ca/doc/sdk/fsuipc.php

http://www.qualitywingssim.com/v.2.0.1.8/Documentation.php

 

Edited by ken_f15j
Link to comment
Share on other sites

10 hours ago, ken_f15j said:

I try to make Lua script that connecting QW787 and VATSIM cliant (vPilot)

but it does not function.

If you looked in the FSUIPC Log file you would see the reason, as you have a definite error:

10 hours ago, ken_f15j said:

local qw_xpnder = varget("L:QW_AFT_Transponder_Knob", "Enum")

The FSUIPC Lua library document tells you that the correct function to read an L_Var value is:

n = ipc.readLvar(“name”)

I think you are perhaps trying to use something from FS XML gauge language? Or maybe the more recent addition of Lua to FS (in P3D?).

10 hours ago, ken_f15j said:

made Lua following SquawkBox SDK FSUIPC Offsets, and Qualitywings 787 sim builder kit

Aha! Seems for FSUIPC plug-ins you need to follow FSUIPC odcumentation instead!. That should not be surprising, I hope?

Pete

 

Link to comment
Share on other sites

  • 1 month later...
1 hour ago, Milan Putnik said:

did Ken manage to make the script working ?

I don't know. But he put the script in his first message, with just the error that he tried to use "varget" instead of "ipc.readLvar". 

So why not try it?

Pete

 

Link to comment
Share on other sites

The first code probably wouldn't work, even if corrected, unless it was part of some other coding - it is a "one shot". Meaning it loads once then does nothing.
The following "should" work (not tested) as long as the documentation of SB3 is forward compatible with vPilot & that the QW documentation is correct too.
It also includes the ident button. Use [Auto] to start. (even better with profiles)

-- SETTING 1 TO OFFSET  EQUALS OFF /  STANDBY FOR THE XPNDR
function vPilot_XPNDR (varname, value)
	if value < 2 then
		ipc.writeSB(0x7B91, 1)
	else 
		ipc.writeSB(0x7B91, 0)
	end
end

function vPilot_IDENT (varname, value)
	if value == 1 then
		ipc.writeSB(0x7B93, 1)
	end
end

event.Lvar("QW_AFT_Transponder_Knob", 250, "vPilot_XPNDR")
event.Lvar("QW_AFT_Transponder_Button", 250, "vPilot_IDENT")

 

Link to comment
Share on other sites

58 minutes ago, spokes2112 said:

The following "should" work (not tested) as long as the documentation of SB3 is forward compatible with vPilot & that the QW documentation is correct too.
It also includes the ident button. Use [Auto] to start. (even better with profiles)

Thanks!

Pete

 

Link to comment
Share on other sites

Greetings,

I made the corrections pointed out by Mr.Dowson right after I read the topic, alas couldn't get it to work.
I am also not adept at LUA programming.

Now trying the latest script by Spokes2112 - that looks as if it's in a different formatting altogether - hope this one works.

Thank You !
Mr.sci.ing. MILAN PUTNIK

Edited by Milan Putnik
Link to comment
Share on other sites

3 hours ago, spokes2112 said:

The first code probably wouldn't work, even if corrected, unless it was part of some other coding - it is a "one shot". Meaning it loads once then does nothing.
The following "should" work (not tested) as long as the documentation of SB3 is forward compatible with vPilot & that the QW documentation is correct too.
It also includes the ident button. Use [Auto] to start. (even better with profiles)


-- SETTING 1 TO OFFSET  EQUALS OFF /  STANDBY FOR THE XPNDR
function vPilot_XPNDR (varname, value)
	if value < 2 then
		ipc.writeSB(0x7B91, 1)
	else 
		ipc.writeSB(0x7B91, 0)
	end
end

function vPilot_IDENT (varname, value)
	if value == 1 then
		ipc.writeSB(0x7b93, 1)
	end
end

event.Lvar("QW_AFT_Transponder_Knob", 250, "vPilot_XPNDR")
event.Lvar("QW_AFT_Transponder_Button", 250, "vPilot_IDENT")

 

What a genius - THANK YOU IT WORKS - only had to fix the letter "b" in IDENT offset to the capital "B", thus:

ipc.writeSB(0x7B93, 1)
Edited by Milan Putnik
  • Upvote 1
Link to comment
Share on other sites

P.S.

For anyone who comes here and uses this script - there is an issue with the IDENT button in QW787 not resetting back to it's position, staying pressed until you press it with the right mouse button - and it cannot be visually noticed at all.
The result is that you'll get the IDENT function working only once - pressing the button further won't function anymore.

It can be tackled by, for example, simply adding a line with the U (on button release) command for the button in a MACRO script ending with the parameter 1 (right mouse button press) - the way I've done it - for my selected physical button for the IDENT button in the cockpit .

Anyway, we have a working script.

Thank You !
Mr.sci.ing. MILAN PUTNIK

Edited by Milan Putnik
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.