Jump to content

FSC190

Members
  • Content Count

    275
  • Donations

    $0.00 
  • Joined

  • Last visited

Everything posted by FSC190

  1. Moin, du belegst eine Taste mit einer der Funktion aus den Shift Modes. mit "Shifted 0ne" und "Shifted two" wechselst du in die entsprechende Ebene. In der entsprechenden Ebene muss immer eine Taste mit Unshifted belegt werden, sonst kommst du nicht wieder zurück. Für die Saitek Pro Flight Yokes gibt es die Möglichkeit den Modeschalter zu benutzen. Dazu muss man aber einen kleinen Trick anwenden, der an anderer Stelle beschrieben ist. http://www.avsim.com/topic/387069-multiple-shift-buttons-saitek-mode-switch/
  2. Hi, I found in P3D LINDA does save the2D panel position by typing ALT-SHIFT_CTRL_F1. But other than Version 1.1 it does not restore this position when the position is on a 2nd monitor. Also, when I hide the window frame of the undocked window with ALT-SHIFT_CTRL_F3 it is not possible to get the frame back, so the window stuck on its place. ALT-SHIFT_CTRL_F2 to hide the main window frame works as it should. It would be nice if this could work again.
  3. That would be very nice. Take your time, there's no hurry.
  4. Hi Andrew, to set VSpeed Data in my MJ Dash8 Pro I use theLUA script V-Speed Calculator LUA 1.2 from ttp://www.twitch.tv/mrroper_75 I have to assign a button or key via FSUIPC calling the lua function "lua Q400VSpeeds" out of the FS Control List. What is the easiest way to assign this via LINDA? I tried copy and paste into the user.lua of the MJ Q400 but no luck none of the functions start the script in the right way. Here is the content of the lua script Vspeeds = {} Vfri = {} vlanding = {} minWeight = 39500 maxWeight = 64000 minAlt = 0 maxAlt = 10000 weightDiv = 4500 altDiv = 2000 indexMultiplier = 12 flapsMultiplier = 84 landingFlapsMultiplier = 7 tempOffset = 6 ReadSuccess = 9991999 ReadFail = 9992999 bug1 = 48086 bug2 = 49010 bug3 = 48114 bug4 = 47393 bug5 = 47420 function readSpeeds(filename) local file = io.open(filename) for n=1, 252 do local v1, vr, v2 v1 = file:read("*n") vr = v1 file:read(1) v2 = file:read("*n") file:read(1) Vspeeds[#Vspeeds+1] = {["v1"] = v1, ["vr"] = vr, ["v2"] = v2} end for y=1, 7 do local vf5, vf10, vf15, vclmb vf5 = file:read("*n") file:read(1) vf10 = file:read("*n") file:read(1) vf15 = file:read("*n") file:read(1) vclmb = file:read("*n") file:read(1) Vfri[#Vfri+1] = {["vf5"] = vf5,["vf10"] = vf10,["vf15"] = vf15, ["vclmb"] = vclmb} end for y=1, 21 do local vapp, vreff vapp = file:read("*n") file:read(1) vref = file:read("*n") file:read(1) vlanding[#vlanding+1] = {["vapp"] = vapp,["vref"] = vref} end file:close() end function file_exists(name) local f=io.open(name,"r") if f~=nil then io.close(f) return true else return false end end function GetQ400Value(offset) ipc.writeLvar("MJC_VAR_READ_CODE", offset) local retVal = ipc.readLvar("MJC_VAR_READ_CODE") while retVal ~= ReadSuccess and retVal ~= ReadFail do retVal = ipc.readLvar("MJC_VAR_READ_CODE") ipc.sleep(100) end return ipc.readLvar("MJC_VAR_READ_VALUE") end function SetQ400Value(offset, value) ipc.writeLvar("MJC_VAR_WRITE_VALUE", value) ipc.writeLvar("MJC_VAR_WRITE_CODE", offset) end function GetWeightOffset() local weight = math.floor(GetWeight()) if (weight < minWeight) then return 1 end if (weight > maxWeight) then return 7 * indexMultiplier end --Not zero based so add one return (((math.floor((weight - minWeight) / weightDiv)) * indexMultiplier)+1) + indexMultiplier end function GetWeightOffsetLanding() local weight = math.floor(GetWeight()) if (weight < minWeight) then return 1 end if (weight > maxWeight) then return 7 end --Not zero based so add one return math.floor((weight - minWeight) / weightDiv) + 2 end function GetVfriOffset() local weight = math.floor(GetWeight()) if (weight < minWeight) then return 1 end if (weight > maxWeight) then return 7 end return (math.floor((weight - minWeight) / weightDiv))+2 end function GetAltOffset() local alt = math.floor(GetAltitude()) local offset if (alt > maxAlt) then offset = 6 else offset = math.floor(alt / altDiv) end if (offset < 1) then offset = 0 end if (GetTemp() > 20) then offset = offset + tempOffset end return offset end function SetBugs(v1, vref, vfri, vclmb) SetQ400Value(bug1, v1) ipc.sleep(50) SetQ400Value(bug2, v1) ipc.sleep(50) SetQ400Value(bug3, vref) ipc.sleep(50) SetQ400Value(bug4, vfri) ipc.sleep(50) SetQ400Value(bug5, vclmb) ipc.sleep(50) end function SetLandingBugs(vapp, vref) SetQ400Value(bug4, vapp) ipc.sleep(50) SetQ400Value(bug5, vref) ipc.sleep(50) end function GetIcingSwitched() return ipc.readLvar("OHD_AICE_ENG_INTAKE_REF_SW") end function GetTemp() return math.floor(ipc.readSW(0x0e8c) / 255) end function GetAltitude() return ipc.readFLT(0x0664) end function GetWeight() return ipc.readDBL(0x30C0) end function GetOnGround() return ipc.readSW(0x0366) end function GetEngine1CombustionFlag() return ipc.readSW(0x0894) end function GetEngine2CombustionFlag() return ipc.readSW(0x092C) end function GetIcingIncrease() if (GetIcingSwitched() == 0) then return 0 else return 20 end end --returns 1 if on ground and engines not running, 2 if in air and 3 if on ground with engines running function GetState() local onGround = GetOnGround() local enginesRunning = 0 local eng1 = GetQ400Value(56911) local eng2 = GetQ400Value(56888) if (eng1 > 0 or eng2 > 0) then enginesRunning = 1 end if (onGround == 1) then if (enginesRunning == 1) then return 3 else return 1 end else return 2 end end function DisplayTakeOffData() ipc.display ("TOM : " .. math.floor(GetWeight()) .. "\n" .. "Temp : " .. math.floor(GetTemp()) .. "C \n" .. "Alt : " .. math.floor(GetAltitude()) .. "ft \n" .. "Ice : " .. GetIcingSwitched() .. "\n \n" .. "1> Flps 5 : " .. Vspeeds[GetWeightOffset()+GetAltOffset()].v1 .. "/" .. Vspeeds[GetWeightOffset()+GetAltOffset()].vr .. "/" .. Vspeeds[GetWeightOffset()+GetAltOffset()].v2 + GetIcingIncrease() .. "/" .. Vfri[GetVfriOffset()].vf5 + GetIcingIncrease() .. "/" .. Vfri[GetVfriOffset()].vclmb + GetIcingIncrease() .. "\n2> Flps 10 : " .. Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *1)].v1 .. "/" .. Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *1)].vr .. "/" .. Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *1)].v2 + GetIcingIncrease() .. "/" .. Vfri[GetVfriOffset()].vf10 + GetIcingIncrease() .. "/" .. Vfri[GetVfriOffset()].vclmb + GetIcingIncrease() .. "\n3> Flps 15 : " .. Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *2)].v1 .. "/" .. Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *2)].v1 .. "/" .. Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *2)].v2 + GetIcingIncrease() .. "/" .. Vfri[GetVfriOffset()].vf15 + GetIcingIncrease() .. "/" .. Vfri[GetVfriOffset()].vclmb + GetIcingIncrease() ) end function DisplayLandingData() ipc.display ("LM : " .. math.floor(GetWeight()) .. "\n" .. "Ice : " .. GetIcingSwitched() .. "\n \n" .. "1> Flps 10 :" .. vlanding[GetWeightOffsetLanding()].vapp + GetIcingIncrease() .. "/" .. vlanding[GetWeightOffsetLanding()].vref + GetIcingIncrease() .. "\n" .. "2> Flps 15 :" .. vlanding[GetWeightOffsetLanding() + (landingFlapsMultiplier)].vapp + GetIcingIncrease() .. "/" .. vlanding[GetWeightOffsetLanding() + (landingFlapsMultiplier)].vref + GetIcingIncrease() .. "\n" .. "3> Flps 35 :" .. vlanding[GetWeightOffsetLanding() + (landingFlapsMultiplier) * 2].vapp + GetIcingIncrease() .. "/" .. vlanding[GetWeightOffsetLanding() + (landingFlapsMultiplier * 2)].vref + GetIcingIncrease() .. "\n" ) end function SetSpeeds(config) if (config == "1") then --Get the speeds we need for flaps 5 vr = Vspeeds[GetWeightOffset()+GetAltOffset()].v1 v2 = Vspeeds[GetWeightOffset()+GetAltOffset()].v2+ GetIcingIncrease() vfri = Vfri[GetVfriOffset()].vf5+ GetIcingIncrease() vclmb = Vfri[GetVfriOffset()].vclmb+ GetIcingIncrease() SetBugs(vr, v2, vfri, vclmb) elseif (config == "2") then --Get the speeds we need for flaps 10 vr = Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *1)].v1 v2 = Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *1)].v2+ GetIcingIncrease() vfri = Vfri[GetVfriOffset()].vf10+ GetIcingIncrease() vclmb = Vfri[GetVfriOffset()].vclmb+ GetIcingIncrease() SetBugs(vr, v2, vfri, vclmb) elseif (config == "3") then --Get the speeds we need for flaps 10 vr = Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *2)].v1 v2 = Vspeeds[GetWeightOffset()+GetAltOffset() + (flapsMultiplier *2)].v2+ GetIcingIncrease() vfri = Vfri[GetVfriOffset()].vf15+ GetIcingIncrease() vclmb = Vfri[GetVfriOffset()].vclmb+ GetIcingIncrease() SetBugs(vr, v2, vfri, vclmb) end end function SetLandingSpeeds(config) if (config == "1") then vapp = vlanding[GetWeightOffsetLanding()].vapp + GetIcingIncrease() vref = vlanding[GetWeightOffsetLanding()].vref + GetIcingIncrease() SetLandingBugs(vapp, vref) elseif (config == "2") then vapp = vlanding[GetWeightOffsetLanding()+ (landingFlapsMultiplier)].vapp + GetIcingIncrease() vref = vlanding[GetWeightOffsetLanding()+ (landingFlapsMultiplier)].vref + GetIcingIncrease() SetLandingBugs(vapp, vref) elseif (config == "3") then vapp = vlanding[GetWeightOffsetLanding()+ (landingFlapsMultiplier * 2)].vapp + GetIcingIncrease() vref = vlanding[GetWeightOffsetLanding()+ (landingFlapsMultiplier * 2)].vref + GetIcingIncrease() SetLandingBugs(vapp, vref) end end function PerformAfterLandingFlow() ipc.writeLvar("Q400_CONTROL_LOCK", 100) ipc.sleep(100) ipc.writeLvar("OHD_EXT_LT_ACOL_SW", 1) ipc.sleep(100) ipc.control(65597) ipc.sleep(100) ipc.control(65595) ipc.sleep(100) ipc.writeLvar("PED_WR_MODE", 1) ipc.sleep(100) SetQ400Value(63194, 0) ipc.sleep(100) SetQ400Value(63210, 0) ipc.sleep(100) SetQ400Value(81038, 0) ipc.sleep(100) SetQ400Value(61497, 0) ipc.sleep(100) SetQ400Value(180709, 0) ipc.sleep(100) SetQ400Value(93613, 0) ipc.sleep(100) SetQ400Value(55267, 0) ipc.sleep(100) SetQ400Value(55267, 0) ipc.sleep(100) SetQ400Value(70232, 0) ipc.sleep(100) SetQ400Value(70269, 0) ipc.sleep(100) SetQ400Value(54207, 0) ipc.sleep(100) SetQ400Value(54327, 0) ipc.sleep(100) SetQ400Value(82531, 0) ipc.sleep(100) SetQ400Value(58492, 1) ipc.sleep(100) SetQ400Value(31461, 0) end function ShowData() if (GetState() == 1) then DisplayTakeOffData() local n = ipc.ask("Press 1, 2 or 3 for required flaps configuration") ipc.display("Setting Bugs") SetSpeeds(n) end if (GetState() == 2) then DisplayLandingData() local n = ipc.ask("Press 1, 2 or 3 for required flaps configuration") ipc.display("Setting Bugs") SetLandingSpeeds(n) end if (GetState() == 3) then ipc.ask("Press enter to perform the After Landing Flow") PerformAfterLandingFlow() ipc.display("After Landing Flow complete") ipc.sleep(2000) end end if (file_exists("speeds.dat")) then ipc.log(math.floor(GetWeight())) ipc.log(math.floor(GetTemp())) ipc.log(math.floor(GetAltitude())) ipc.log("weightoffset " .. GetWeightOffset()) ipc.log("altOffset " .. GetAltOffset()) ipc.display("Reading VSpeeds") readSpeeds("speeds.dat") ShowData() else ipc.display("Error reading V speeds") end
  5. Hi Andrew, the Can not open failure is back. Linda is started by FSUIPC4.ini Any hint is welcome. Stop investigating in this. I made a fresh install of GSX and LINDA works normal. I'll keep an eye on it.
  6. No Problem Andrew, I will have a look, if I buy Xplane 11 :-)
  7. Hi, I'm just wondering if it is posible to use LINDA for XPLANE in a way it is shown here: https://www.youtube.com/watch?v=R1GTaBRzvfc This guy only sends keyboard code via VRInsight keymapper and XUIPC to Xplane. That could be helpful to use some basic functions via MCP
  8. 2nd Problem with 2.8.0. using VRInsigt MCP 1 Prep3d v3 when starting a warning comes up with the message "Problem Opening FSUIPC4.ini file" aboard or retry. After retry Linda starts with the problems in my other thread.
  9. Hi Andrew, just installed the new version and btw congrats to 5 years of great work, I made a fresh install and copied back my Aircraft-files (LINDA and LINDA-Config) I have some user functions an not default assignments. They all seem to work, but they are not shown in the GUI. For example 737NGX CRS. the increase and decrease functions are working, but the GUI says "not assigned". Same to radio panel. The user buttons read 1: Lights Panel toggle but works as decrease autobrake. When I change one assignment and save LINDA writes a config-mcp file without the lua extension. The backup file is correct. Any suggestions? Kind regards Roland
  10. Great and sorry to name you Scot :-)
  11. Hi Andrew, Using MCP1 EFIS Section EFIS_ND_Mode_Inc and EFIS_ND_Mode_Dec are twisted. Inc turns the knob left dec turns the knob to the right.
  12. Hi Andrew, it would be perfect, if the user.lua will not be overwritten by installing the ..\linda\aircrafts\PMDG 737NGX folder.
  13. Copied the FLTAlt and LDGAlt part of V4.0 into the old module, that works very well. If you fix something I will test V4 again.
  14. Hi Scott seems to me, all assignments only move the switches and knobs, but do not write LVAR, so there is no action. I know there are different variables for the moving things and the action it selve. switching of packs, move the switch but do not switch the packs off. also any engine assignment is not working. Using P3D v3.2.3 old MCP1 I have to downgrade my NGX-Modul until this is fixed.
  15. Hi Scott, I've the problem with several modules, that the On Repeat function does not stop, when the button is released. That disengaged the autopilot when switching on and when trimm is used before. But that is with every function assigned to On Repeat. EDIT: after some testing, it seems, new assigning the function fixes this problem. After installing the latest Version 2.7.0 rev1, I copied my old assignments (PMDG737) back to Linda out of my backup. I will monitor this.
  16. Hi Scot, I wonder why LINDA shows in the window title LINDA 2.7.0, but under Settings in colum "latest updates" Version 2.6.10 // 15 Apr 2016 and Version 2.6.9 // 12 Apr 2016. Just a little confusing :-)
  17. Hi Scot, the Key is on the very LEFT side of the keyboard of course. Any chance to get this working?
  18. Hi Andrew, in FSUIPC4 you can assign several Key combinations. The codes are listed in the FSUIPC for advanced Users.pdf Page 28 I use some combinations with the tabulator-Key (you find the key on the very right site of the keyboard, the key with the to arrows pointing to the left and right.) because they are not assigned in FSX/P3D by default.
  19. Hi Andrew, I'd like to see, that TAB would be able in Key combinations. And could you reactivate CTRL+SHIFT+ALT+F3 for hiding the window frame of 2D panel. CTRL+SHIFT+ALT+F1 for saving panel positions isn't nessesary in P3D v3 with panel serialization enabled.
  20. Hi Scott, I found that is it not possible to assign TAB as a shift value for key press like TAB + C or SHIFT + TAB + C. Would be great to have it in a future update of V2.6.4
  21. Hi, I just moved my Duke B60 V2, including the RealAir folder from FSX to P3D v2.5 and P3D v3 without any problem. I just had to correct a wrong entry in the aircraft.cfg See the comma that must be a point. Without, the B60 only retracts front and left gear.
  22. Hi Andrew, that fixed the problem when Linda is started automatically with P3D, great! BTW any Ideas regarding the display issue? I compared the common.lua of 2.6.2 and 2.6.4 and found some differences in the function Dsp0 and function Dsp1 if (_MCP2 () or _MCP2a ()) then cmd = "DSP0" else cmd = "MSG0" end It seems this does not work quite right. In V2.6.2 there is if... else funktion.
  23. In P3D Modul PMDG 737NGX V3.3 no display info like flaps etc on my MCP1 anymore (I know, if receiving issues use Version 1.# :-) but it works in V2.6.3 V2 Only Speed, HDG and ALT on the left display. I'll try NGX-Modul 3.4
  24. OK Andrew, switched to this thread. It seems, that P3D and FSX handle LINDA in a different way. No Problem in FSX to terminate the new version, everything OK. In P3D I allways have problems tó terminate the Linda-Prozess, i.E. LINDA does never end, when autoloaded starting P3D after ending P3D, LINDA always was active on the Screen. In FSX no such problem.
  25. Hi Neal, try LINDA 2.6.3 V2, now available again. It works for me, using MCP1 without any problem. No range Error so far.
×
×
  • Create New...