August 25, 201510 yr Linda Module for Flight 1 KingAir B200 Version 1.0 original This is my first attempt at a module for the KingAir. You can control all of it's functions but Autopilot (fsx standard controls) Wiper switch Fire extinguishers (in the works) Cabin Pressure (in the works) Tested and works in FSX-SE Please test and give some feedback. If you can help with the missing functions or If anyone has any suggestions send me a pm. Tony Shade Download Edited April 2, 20188 yr by ScotFlieger Original download reinstated OORAH! It's a Marine Thing. USMC Retired.
August 26, 201510 yr Author Version 1.1 update added Cabin Pressure gauge function enjoy :smile: OORAH! It's a Marine Thing. USMC Retired.
September 21, 201510 yr Author Module is being updated. Will reupload after testing OORAH! It's a Marine Thing. USMC Retired.
September 21, 201510 yr Here is what I have done for a Saitek ProFlight Yoke and TQ. Engines is mostly ushifted page 0, AP Page 1 and AP Landing Page 2. B200 Cold & Dark F6 and F7 to ext or retr Flaps 1 more note: i use trackerIR Feel free to add or comment on any feature. -- EMPTY TEMPLATE ---- Fill with what functions you need ---- ## System functions ##-- configured for Saitek ProFlight Yoke and Throttle. I use aSaitek Switch Panel using SPAD and use Engine start swith to select Rifgt or Left Engine select for single throttle quadrantfunction InitVars () IgnR=1 IgnL=1 GenR=1 GenL=1 BShift = 0 ipc.display("## VARS Set ") ipc.sleep(1000) ipc.display("") -- uncomment to disable display -- AutopilotDisplayBlocked ()end-- ## LUA Options ############function B200_Button_Shift_0n() -- Shift Button to Combine 2 rolls to each button in each Shifted mode. Button 0 on press BShift = 1endfunction B200_Button_Shift_off() -- Button 0 on release BShift = 0end function Display_BShift_On() --Any Button to see Button 0 set value. set to repeate ipc.display(BShift) endfunction Display_BShift_Off() --Any Button to see Button 0 set value. set to repeate ipc.display("") end-- ## Engine Controls ###############function B200_Left_Ignition_Start_On_Off () --BShift -0 for on - 1 for off if BShift == 0 then if IgnL == 1 then ipc.writeLvar("B200LSTARTER",2) ipc.control(66300) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound IgnL=2 end else if IgnL == 2 then ipc.writeLvar("B200LSTARTER",1) ipc.control(66300) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound IgnL=1 end endendfunction B200_Right_Ignition_Start_On_Off () --BShift -0 for on - 1 for off if BShift == 0 then if IgnR == 1 then ipc.writeLvar("B200RSTARTER",2) ipc.control(66301) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound IgnR=2 end else if IgnR == 2 then ipc.writeLvar("B200RSTARTER",1) ipc.control(66301) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound IgnR=1 end endendfunction B200_Left_Generator_On_Off () --BShift -0 for on - 1 for off (this fixes Gen off BatBusOn when Bat off) if BShift == 0 then if GenL == 1 then ipc.writeLvar("B200LEFTGEN",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200LEFTGEN",2) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200LEFTGEN",1) ipc.control(66363) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound GenL=2 end else if GenL == 2 then ipc.writeLvar("B200LEFTGEN",0) ipc.control(66363) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound GenL=1 end endendfunction B200_Right_Generator_On_Off () --BShift -0 for on - 1 for off if BShift == 0 then if GenR == 1 then ipc.writeLvar("B200RIGHTGEN",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200RIGHTGEN",2) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200RIGHTGEN",1) ipc.control(66364) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound GenR=2 end else if GenR == 2 then ipc.writeLvar("B200RIGHTGEN",0) ipc.control(66364) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound GenR=1 end end endfunction B200_AutoIgn_R_Toggle_AutoFthr_On_Off() --BShift -0 for on - 1 for Autofeather Toggle if BShift == 0 then AutoIgnR = ipc.readLvar("B200RAutoIgn") -- AutoIgn R On Off if AutoIgnR == 0 then ipc.sleep(200) ipc.writeLvar("B200RAutoIgn",1) -- Turn On AutoIng Right ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) else ipc.writeLvar("B200RAutoIgn",0) -- Turn Off AutoIng Right ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) end else AUTOF = ipc.readLvar("B200AUTOFEATHER") -- Auto Feather On Off if AUTOF == 0 then -- AutoF in test ipc.sleep(200) ipc.writeLvar("B200AUTOFEATHERLUA",1) -- Turn AUTOF off ipc.sleep(200) elseif AUTOF == 2 then -- AUTOF is On ipc.sleep(200) ipc.writeLvar("B200AUTOFEATHERLUA",1) -- AUTOF is OFF ipc.sleep(200) else ipc.sleep(200) ipc.writeLvar("B200AUTOFEATHERLUA",2) -- AUTOF is on ipc.sleep(200) end endendfunction B200_AutoIgn_L_Toggle_AutoFthr_Test_Toggle() --BShift -0 for on - 1 for Autofeather Test Toggle if BShift == 0 then AutoIgnL = ipc.readLvar("B200LAutoIgn") -- AutoIgn L On Off if AutoIgnL == 0 then ipc.sleep(200) ipc.writeLvar("B200LAutoIgn",1) -- Turn On AutoIng Left ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) else ipc.writeLvar("B200LAutoIgn",0) -- Turn Off AutoIng Left ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) end else AUTOF = ipc.readLvar("B200AUTOFEATHER") -- AutoFeather Test Toggle if AUTOF == 1 then -- AutoF in test ipc.sleep(200) ipc.writeLvar("B200AUTOFEATHERLUA",0) -- Turn AUTOF off ipc.sleep(200) elseif AUTOF == 2 then -- AUTOF is On ipc.sleep(200) ipc.writeLvar("B200AUTOFEATHERLUA",1) -- AUTOF is OFF ipc.sleep(200) else ipc.sleep(200) ipc.writeLvar("B200AUTOFEATHERLUA",1) -- AUTOF is OFF ipc.sleep(200) end endendfunction Reverse_Throttle() --Reverse Throttle ipc.keypress(113)end-- ## FUEL PANEL ###############function B200_Left_Fuel_Shutoff_On_Off() --BShift -0 for on - 1 for off if BShift == 0 then ipc.writeLvar("B200LFuelShutoff",0 ) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound else ipc.writeLvar("B200LFuelShutoff",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound endendfunction B200_Right_Fuel_Shutoff_On_Off() --BShift -0 for on - 1 for off if BShift == 0 then ipc.writeLvar("B200RFuelShutoff",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound else ipc.writeLvar("B200RFuelShutoff",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound endendfunction B200_StndbyPumpsOn_CrossFDTest() --This is shared with next function if BShift == 0 then ipc.writeLvar("B200RStdbyPump",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(2400) ipc.writeLvar("B200LStdbyPump",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(2400) else ipc.writeLvar("B200CROSSFEED",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(2400) ipc.writeLvar("B200CROSSFEED",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(2400) ipc.writeLvar("B200CROSSFEED",2) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(2400) ipc.writeLvar("B200CROSSFEED",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200RAuxTransfer",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200RAuxTransfer",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200LAuxTransfer",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200LAuxTransfer",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(400) ipc.writeLvar("B200RStdbyPump",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200LStdbyPump",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) end endfunction B200_StndbyPumpsOff__FuelMnAux() if BShift == 0 then ipc.writeLvar("B200RStdbyPump",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) ipc.writeLvar("B200LStdbyPump",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) else FLMainAux = ipc.readLvar("F1B200_FUEL_MAINAUX") if FLMainAux == 0 then ipc.writeLvar("F1B200_FUEL_MAINAUX",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) else ipc.writeLvar("F1B200_FUEL_MAINAUX",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) end end end -- ## Control Surfices #############function Rudder_Boost_On_Prop_Gov_Test_On() ----This is shared with next function if BShift == 0 then PROPG = ipc.readLvar("B200propgov_sw") if PROPG == 0 then ipc.writeLvar("B200propgov_sw",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) end else RuddBost = ipc.readLvar("B200RudderBoost") if RuddBost == 0 then ipc.writeLvar("B200RudderBoost",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) end endend function Rudder_Boost_Off_Prop_Gov_Test_Off() if BShift == 0 then PROPG = ipc.readLvar("B200propgov_sw") if PROPG == 1 then ipc.writeLvar("B200propgov_sw", 0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) end else RuddBost = ipc.readLvar("B200RudderBoost") if RuddBost == 1 then ipc.writeLvar("B200RudderBoost",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(200) end endendfunction Elevator_Trim_Up_Rudder_Trim_Right() --This is shared with next function (This should be button repeat only) if BShift == 0 then ipc.control(65615, 0) ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) else ipc.control(66279, 0) ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) endendfunction Elevator_Trim_Down_Rudder_Trim_Left() if BShift ==0 then ipc.control(65607, 0) ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) else ipc.control(66278, 0) ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) endend-- ## AutoPilot Controls ###############function AP_On_Off() --This is shared with next function-- AP on/Off with YD and FD--Set Z key on press ans B200_YD_Off on Release ipc.control(65580) -- Togglr AP ipc.control(65793) -- Toggle Yaw Damper ipc.control(66288) -- Toggle FDendfunction B200_AP_APR_On_Off() ipc.keypress(65, 2)endfunction B2000_G1000_TOGA_on() -- Button 1 using one press. I use on Take-off and Landing Shifted Mode-- YD OFF ipc.writeLvar("G1000AP",0) ipc.control(66070)-- AP OFF (required second write to execute TO/GA as a single button press) ipc.writeLvar("G1000AP",0)-- Recycle FD if ipc.readUW(0x2EE0)==1 then -- FD is active (0=inactive, 1=active) ipc.control(66288) -- FD toggle off ipc.sleep(50) ipc.control(66288) -- FD toggle on else ipc.control(66288) -- just toggle FD onend-- Activate TO/GA mode on FD by toggle (no auto-throttle to climb power) if ipc.readLvar("L:G1000GA") ~= 1 then ipc.writeLvar("G1000GA",1) else ipc.writeLvar("G1000GA",0)end if ipc.readUB(0x07bc)==1 then -- Turn off AP if on ipc.control(65580) endendfunction B200_AP_ALT_or_VS_Select() -- on or off. There is a bug. if you turn ALT off and turn VS on, VS must be toggled twice if BShift == 0 then ALTTOG = ipc.readLvar("G1000ALT") if ALTTOG == 0 then ALTTOG = 1 else ALTTOG =0 end ipc.writeLvar("G1000ALT", ALTTOG) -- AP ALT Toggle else VS = ipc.readLvar("G1000VS") if VS == 0 or VS > 1 then VS = 1 else VS = 0 end ipc.writeLvar("G1000VS", VS) -- AP VS Toggle -- AP VS Toggle endendfunction B200_AP_ALT_BShilt_VS_Incr() --This is shared with next function 3 pos switch (This should be button repeat only) if BShift == 0 then -- ALT Incr ipc.control(65823, 71) ipc.control(65823, 0) ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) alt = ipc.readLvar("F1G1000APALT") -- ipc.log("Alt: " .. alt) ALT=alt else -- VS Inc ipc.control(65894) ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) endendfunction B200_ALT_BShilt_VS_Dec() if BShift == 0 then -- ALT Decreas ipc.control(65823, 70) ipc.control(65823, 0) ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) alt = ipc.readLvar("F1G1000APALT") -- ipc.log("Alt: " .. alt) ALT=alt else ipc.control(65895) -- VS Dec ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound ipc.sleep(100) endendfunction B200_AP_HDG_or_NAV_Toggle() -- on or off. if BShift == 0 then HDG = ipc.readLvar("G1000HDG") if HDG == 0 then HDG = 1 else HDG = 0 end ipc.writeLvar("G1000HDG", HDG) -- HDG Toggle else NAV = ipc.readLvar("G1000NAV") if NAV == 0 then NAV = 1 else NAV = 0 end ipc.writeLvar("G1000NAV", NAV) -- NAV Toggle endendfunction B200_HDG_BShift_CRS1_Incr() --This is shared with next function 3 pos switch (This should be button repeat only) if BShift == 0 then ipc.control(65879) -- HDB Inc ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound --ipc.sleep(100) else ipc.control(65663) --CRS1 Inc ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound --ipc.sleep(100) endendfunction B200_HDG_BShilt_CRS1_Dec() if BShift == 0 then ipc.control(65880) -- HDB Dec ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound --ipc.sleep(100) else ipc.control(65662) -- CRS1 Dec ipc.control(65823, 11) -- knob sound ipc.control(65823, 0) -- knob sound --ipc.sleep(100) endend-- ## Other Controls ###############function B200_Cabin_Pressure_Incr_Dec() if BShift == 0 then ipc.writeLvar("PressAltIncLUA" ,1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound else ipc.writeLvar("PressAltDecLUA" ,1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound endendfunction ATC_AP_Windows_Toggle() --ATC Window or 2D AP Window if BShift == 0 then ipc.keypress(145) else ipc.keypress(53,1) endendfunction Cockpit_Views() --This is shared with next function 3 pos switch if BShift == 0 then ipc.control(66153) else ipc.control(66154) endendfunction Outside_Views() if BShift == 0 then ipc.control(65567) else ipc.control(65749) endendfunction StallWarnTest() --Toggle StallWTest = ipc.readLvar("B200stallwarntest_sw") if StallWTest == 0 then ipc.writeLvar("B200stallwarntest_sw",1) ipc.sleep(1000) else ipc.writeLvar("B200stallwarntest_sw",0) endend
September 22, 201510 yr Here is the Alternator fix if you hit the gen switch by accedent (this just bugged me). The alternator not active unless the Altenator is off and the eng is running during Reset or toggle off twice. Replace in text above. Let me Know function B200_Right_Generator_On_Off () --BShift -0 for on - 1 for off if BShift == 0 then GenROn = ipc.readLvar("B200CRGen") -- Right Altenator needs to be off ipc.writeLvar("B200RIGHTGEN",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200RIGHTGEN",2) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200RIGHTGEN",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(100) EngROn = ipc.readUB(0x092C,0) -- Returns a 1 when Right engine is running if EngROn == 1 and GenROn == 1 then ipc.control(66364) -- Turn on Right Alternator end else GenROn = ipc.readLvar("B200CRGen") ipc.writeLvar("B200RIGHTGEN",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(100) EngROn = ipc.readUB(0x092C,0) if GenROn == 0 and EngROn == 1 then -- Altenator On and Eng On both off ipc.control(66364) end end endfunction B200_Left_Generator_On_Off () --BShift -0 for on - 1 for off if BShift == 0 then GenLOn = ipc.readLvar("B200CLGen") -- Right Altenator needs to be off ipc.writeLvar("B200LEFTGEN",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200LEFTGEN",2) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(600) ipc.writeLvar("B200LEFTGEN",1) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(100) EngLOn = ipc.readUB(0x0894,0) -- Returns a 1 when Left engine is running if GenLOn == 1 and EngLOn == 1 then ipc.control(66363) end else GenLOn = ipc.readLvar("B200CLGen") ipc.writeLvar("B200LEFTGEN",0) ipc.control (65823, 1) -- knob sound ipc.control (65823, 0) -- knob sound ipc.sleep(100) EngLOn = ipc.readUB(0x0894,0) if GenLOn == 0 and EngLOn == 1 then -- Altenator On and Eng On both off ipc.control(66363) end endend
September 22, 201510 yr Author I can see what you are doing and that's great but this is all in the version 1.1 of the module. How about giving the original creator of the module some credit would be the correct thing to do? Wouldn't you say? OORAH! It's a Marine Thing. USMC Retired.
September 22, 201510 yr Apsolutly. And I took a few from the F1 Mustang as well. This is my first time working with LUA and FSUIPC offsets and you guys gave me a great running start. Thanks Shadyowl2. Take anything you need. Anything we post is a shared effort to a better flight experience for everyone.
September 24, 201510 yr One more thing Shadyowl2. I did not mean to hijack your post or efforts here but I now realize that's is what happened. When or if you are done with the information I posted here, we can see if we can delete my posts so your next version can be properly posted and replied to. If you like I can add my BShift code as a supplement to your next version by providing a link or starting a new thread adding your name as a main contributor. Let me know what you want to do.
September 24, 201510 yr Author I appreciate that mcp5500. I will let you know more once module testing is complete. OORAH! It's a Marine Thing. USMC Retired.
September 27, 201510 yr Shadyowl2, were you able to write a function to test the No Transfer Lights on the fuel panel?
October 1, 201510 yr Author This should work but it is untested...I would say it has to be on a constant on switch because you must hold the mouse buttion on it to stay lit. function B200_No_fuel_transfer_left_Test() ipc.writeLvar("B200LFuelNoTransfer",1) end function B200_No_fuel_transfer_right_Test() ipc.writeLvar("B200RFuelNoTransfer",1) end OORAH! It's a Marine Thing. USMC Retired.
February 16, 201610 yr Hey ShadyOwl, Just wondering what has happened with your link to Dropbox, it is saying that the file is missing or deleted. I noticed in this forum that you were updating it, just wondering where you are at as I would like to use it with the B200. Thanks, Trooping.
December 19, 20169 yr Any news on when version 1.1 of shadowyowl2's LINDA LUA will be available? Mark CYYZ
Archived
This topic is now archived and is closed to further replies.