read the pinup about how to set Lvars. it is very helpfull. aerosoft airbus is not standard. you have to read its Lvars to fsuipc then manipulate them through fsuipc. here my lua script for basic aerosoft airbus mcp. it works basically but may not be all that perfect. i have not used it for a while now. mainly fly pmdg 737.
remember to activate script through fsuipc keypress setting. create MF outputs and inputs according to offsets in script.
--SPD
ipc.writeSW(0x66C0, ipc.readLvar("L:AB_AP_Speed_Select"))
ipc.writeSW(0x66C6, tonumber(string.format("%.2f", ipc.readLvar("L:AB_AP_Mach_Select")))*100)
--HDG
ipc.writeUW(0x66C8, ipc.readLvar("L:AB_AP_HDG_Select")*182.0444444444444)
ipc.writeUW(0x66D1, ipc.readLvar("Autopilot_TRK_set")*182)
--ALT
ipc.writeUW(0x66D5, ipc.readLvar("L:AB_AP_ALT_Select"))
--VS
ipc.writeSW(0x66C2,ipc.readLvar("L:AB_AP_Vs_Select2"))
ipc.writeSW(0x66C4,ipc.readLvar("L:AB_AP_FPA_Select2")*10)
--HDG/TRK
ipc.writeSW(0x66CC,ipc.readLvar("AB_AP_HDGTRK"))
--SPD/MACH
ipc.writeSW(0x66CE,ipc.readLvar("AB_AP_SPDMACH"))
while 1 do
--HDG/TRK
HdgTrkLvar=ipc.readLvar("AB_AP_HDGTRK")
HdgTrkOffset=ipc.readSW(0x66CC)
if HdgTrkOffset~= HdgTrkLvar then
--ipc.writeLvar("AB_AP_HDGTRK",HdgTrkOffset)
ipc.writeSW(0x66CC,ipc.readLvar("AB_AP_HDGTRK"))
end
--SPD/MACH
SpdMachLvar=ipc.readLvar("AB_AP_SPDMACH")
SpdMachOffset=ipc.readSW(0x66CE)
if SpdMachOffset ~= SpdMachLvar then
--ipc.writeLvar("AB_AP_SPDMACH",SpdMachOffset)
ipc.writeSW(0x66CE,ipc.readLvar("AB_AP_SPDMACH"))
end
--
SPDmode_cur = ipc.readLvar("L:AB_AP_SPDmode_set") --0x66D9
HDGmode_cur = ipc.readLvar("L:AB_AP_HDGmode_set") -- 0x66DA
-- Selected / Managed Display
if SPDmode_cur ~= SPDmode_pre then
SPDmode_pre = SPDmode_cur
if SPDmode_cur == 1 then
ipc.writeUB(0x66D9,SPDmode_cur) --managed
else
ipc.writeUB(0x66D9,SPDmode_cur) --selected
end
end
if HDGmode_cur ~= HDGmode_pre then
HDGmode_pre = HDGmode_cur
if HDGmode_cur == 1 then
ipc.writeUB(0x66DA,HDGmode_cur) --managed
else
ipc.writeUB(0x66DA,HDGmode_cur) --selected
end
end
ipc.sleep(20)
--SPD
SpdMachVar = ipc.readLvar("AB_AP_SPDMACH")
if SpdMachVar == 0 then
SpdLvar = ipc.readLvar("L:AB_AP_Speed_Select")
SpdOffset=ipc.readSW(0x66C0)
if SpdOffset > 399 then
ipc.writeSW(0x66C0, 399)
elseif SpdOffset < 100 then
ipc.writeSW(0x66C0, 100)
end
if SpdOffset~=SpdLvar then
ipc.writeLvar("L:AB_AP_Speed_Select",SpdOffset)
end
elseif SpdMachVar == 1 then
--MachLvar = ipc.readLvar("L:AB_AP_Mach_Select")*100
MachLvar= tonumber(string.format("%.2f", ipc.readLvar("L:AB_AP_Mach_Select")))
MachLvar=MachLvar*100
MachOffset=ipc.readSW(0x66C6)
if MachOffset < 10 then
ipc.writeSW(0x66C6, 10)
elseif MachOffset > 84 then
ipc.writeSW(0x66C6, 84)
end
if MachOffset ~= MachLvar then
ipc.writeLvar("L:AB_AP_Mach_Select",MachOffset/100)
end
end
ipc.sleep(20)
--HDG
AB_hdgtrk = ipc.readLvar("L:AB_AP_HDGTRK")
HdgLvar=ipc.readLvar("L:AB_AP_HDG_Select")*182.0444444444444
HdgOffset = ipc.readUW(0x66C8)
TrkLvar=ipc.readLvar("Autopilot_TRK_set")*182.0444444444444
TrkOffset = ipc.readUW(0x66D1)
if AB_hdgtrk == 0 then
if HdgOffset ~= HdgLvar then
currentValue =(ipc.readUW(0x66C8))*0.0054931640625
ipc.writeLvar("L:AB_AP_HDG_Select", currentValue)
end
else
if TrkOffset ~= TrkLvar then
currentValue = ipc.readUW(0x66D1)*0.0054931640625
ipc.writeLvar("Autopilot_TRK_set", currentValue)
end
end
ipc.sleep(20)
--ALT
AltLvar=ipc.readLvar("L:AB_AP_ALT_Select")
AltOffset=ipc.readUW(0x66D5)
if AltOffset < 100 then
ipc.writeUW(0x66D5,100)
elseif AltOffset >49000 and AltOffset < 55000 then
ipc.writeUW(0x66D5,49000)
elseif AltOffset > 55000 then
ipc.writeUW(0x66D5,100)
end
if AltOffset~=AltLvar then
ipc.writeLvar("L:AB_AP_ALT_Select",AltOffset)
end
ipc.sleep(20)
--VS
if ipc.readLvar("AB_AP_HDGTRK") == 0 then
VsHdgLvar=ipc.readLvar("L:AB_AP_Vs_Select2")
VsHdgOffset=ipc.readSW(0x66C2)
if VsHdgOffset < -60 then
ipc.writeSW(0x66C2,-60)
elseif VsHdgOffset > 60 then
ipc.writeSW(0x66C2,60)
end
if VsHdgOffset ~=VsHdgLvar then
ipc.writeLvar("L:AB_AP_Vs_Select2", VsHdgOffset)
end
else
VsTrkLvar=ipc.readLvar("L:AB_AP_FPA_Select2")
VsTrkOffset=ipc.readSW(0x66C4)/10
if VsTrkOffset < -9.5 then
ipc.writeSW(0x66C4,-95)
elseif VsTrkOffset > 9.5 then
ipc.writeSW(0x66C4,95)
end
if VsTrkOffset ~= VsTrkLvar then
ipc.writeLvar("L:AB_AP_FPA_Select2", VsTrkOffset)
end
end
end