Jump to content
The simFlight Network Forums

shorthauler

Members
  • Posts

    85
  • Joined

  • Last visited

Posts posted by shorthauler

  1. Thank you. I have two virtual joysticks named "New" for the Arduino / Arcaze set-up, so I kept two, identifying them by the GUID.

    I still have a question regarding this section:

     

    [Buttons]
    PollInterval=25
    ButtonRepeat=20,10
    1=RC,6,K188,8     -{Key press: ,<key}-
    2=RG,6,K113,8     -{Key press: F2}-
    3=PC,4,K90,8     -{Key press: Z}-
    4=PF,31,C65720,0     -{BRAKES_LEFT}-
    5=PF,30,C65721,0     -{BRAKES_RIGHT}-
    6=PG,4,K90,8     -{Key press: Z}-
    7=RA,6,K113,8     -{Key press: F2}-

     

    RC is the Logitech Attack joystick "C" that I use for the sidestick, "comma" needs to be pressed to use the nosewheel steering. The key press "Z" (A/P engage/disengage) should also be on this joystick. The F2 key press should be on the other Logitech Attack (throttle, for reverse) anumerated by FSUIPC as "A". Should I delete lines 2 and 6 since there is no joystick "G"?

    Best regards,

    - shorthauler

     

     

  2. I am using two Logitech Attack 3 (throttle, side stick), one BU836X for rudder and vJoy and "New" are virtual joystick buttons connected to a FCU unit via Mobiflight / Arduino + Arcaze.

    The Arduino + Arcaze need to be unplugged before I shut down the PC, otherwise it will "hang". It also does not boot with the Arduino plugged in. Also, I sometines need my frond USB ports for external HDDs.

    So I might indeed have connected devices while FSX was running, simply because I forgot to plug them back in before starting FSX. I will keep this in mind in the future. USB is not as simple as the marketing of this technology seems to suggest, I think.

     

  3. Dear all,

    I have a certain number of joysticks that I sometimes need to unplug when I have to use the USB plugs for other purposes. When I replug them, they register again, so they show up more than once in FSUIPC. I am not so happy that also the joystick buttons register again and with different designators, What should I do, should I simply delete from FSUIPC.ini?

     

    Best regards,

    - shorthauler

     


    [JoyNames]
    AutoAssignLetters=Yes
    3=vJoy Device
    3.GUID={D8B3BA80-232A-11EE-8002-444553540000}
    5=BU0836X Interface
    5.GUID={0D6270A0-A302-11EC-8002-444553540000}
    A=Logitech Attack 3
    A.GUID={9698C860-A302-11EC-8003-444553540000}
    B=New
    B.GUID={0646FAD0-3568-11EE-8001-444553540000}
    C=Logitech Attack 3
    C.GUID={D6A2A1C0-A301-11EC-8001-444553540000}
    D=vJoy Device
    D.GUID={D8B3BA80-232A-11EE-8002-444553540000}
    E=New
    E.GUID={B6842680-EFD1-11EC-8001-444553540000}
    F=BU0836X Interface
    F.GUID={0D6270A0-A302-11EC-8002-444553540000}
    2=Logitech Attack 3
    2.GUID={D6A2A1C0-A301-11EC-8001-444553540000}
    G=New
    G.GUID={B6842680-EFD1-11EC-8001-444553540000}
    H=New
    H.GUID={0D6270A0-A302-11EC-8002-444553540000}
    4=Logitech Attack 3
    4.GUID={9698C860-A302-11EC-8003-444553540000}
    J=SparkFun Pro Micro
    J.GUID={FE922B50-F44F-11EE-8001-444553540000}
    0=New
    0.GUID={B6842680-EFD1-11EC-8001-444553540000}
    1=New
    1.GUID={0646FAD0-3568-11EE-8001-444553540000}

    (...)

    [Buttons]
    PollInterval=25
    ButtonRepeat=20,10
    1=RC,6,K188,8     -{Key press: ,<key}-
    2=RG,6,K113,8     -{Key press: F2}-
    3=PC,4,K90,8     -{Key press: Z}-
    4=PF,31,C65720,0     -{BRAKES_LEFT}-
    5=PF,30,C65721,0     -{BRAKES_RIGHT}-
    6=PG,4,K90,8     -{Key press: Z}-
    7=RA,6,K113,8     -{Key press: F2}-

     

     

     

     

  4. Hi John, I deleted the complete [Axes.A320] section, restarted FSX and assigned the Axes anew (profile specific, FSX, FSL A320).

    Unfortunately, at some point during the flight, I touched the throttle and then aileron went to maximum deflection and stuck there.

    In order to continue the flight, I went back into FSUIPC and checked the axis assignments. They all seemed to be ok.

    After the flight I found multiple axis again:

     

    [Axes.A320]
    RangeRepeatRate=10
    0=0X,256,D,1,0,0,0    -{ DIRECT: Aileron }-
    1=0Y,256,D,2,0,0,0    -{ DIRECT: Elevator }-
    2=0Z,256,D,4,0,0,0    -{ DIRECT: Throttle }-
    3=2X,256,D,1,0,0,0    -{ DIRECT: Aileron }-
    4=2Y,256,D,2,0,0,0    -{ DIRECT: Elevator }-
    5=5R,256,D,3,0,0,0    -{ DIRECT: Rudder }-

     

    Best

    - shorthauler

     

     

     

    FSUIPC4.ini

  5. Thank you, it's FSX, FSUIPC 4.977. The aircraft is FSLABS A320. It's probably aircraft specific. But no problem working around all this with a lua script. In the beginning, I would have preferred the macro because I was not sure about the mouse positions, but with the little tool "MPos", it was quite easy. The easiest lua script I have ever written.

     

  6. Hi John, sometimes, preferrably during take off, my joystick freezes with a maximum deflection sideways (aileron) although the (physical) joystick is centered. I then go into the FSUIPC menue, axis assignment, and only need to move the joystick to unstick it. Still, it has ruined a number of take offs. I cannot conjure this situation, but is there anything I can log and send to you, so you can have a look? I have made sure that no other joystick axis, for example from my separate throttle, interferes.

    Best regards,

    -shorthauler

  7. Hi John, I am using a home made Airbus FCU with MobiFlight, and MobiFlight converts my hardware inputs into vJoy signals. I then use these in FSUIPC to trigger Lua scripts. Unfortunately, after adding Stream Deck / PilotsDeck, FSUIPC does not recognize these MobiFlight / vJoy inputs anymore. Any idea what I could try? I already deleted the [JoyNames] section in FSUIPC.ini (Version 4.977), and they were automatically re-added with the next restart of FS, but it did not help.

     

    Best regards

    -shorthauler

     

    FSUIPC4.ini

  8. I was afraid of this, thank you for confirming. Just in case someone who is looking for the same is coming across this thread: I have written a small macro for Stream Deck's Super Macro plugin that some might find helpful. Please note that it follows the German menue bar and the corresponding mnemonic underlined letters.

     

    {{KeyDown:LALT}}{{S}}{{M}}{{KeyUp:LALT}}{{pause:50}}{{KeyDown:DOWN}}{{KeyUp:DOWN}}{{pause:50}}{{KeyDown:DOWN}}{{KeyUp:DOWN}}{{pause:50}}{{KeyDown:DOWN}}{{KeyUp:DOWN}}{{pause:50}}{{KeyDown:DOWN}}{{KeyUp:DOWN}}{{pause:50}}{{KeyDown:DOWN}}{{KeyUp:DOWN}}{{pause:50}}{{KeyDown:DOWN}}{{KeyUp:DOWN}}{{pause:50}}{{KeyDown:RIGHT}}{{KeyUp:RIGHT}}{{pause:50}}{{KeyDown:RETURN}}{{KeyUp:RETURN}}

  9. Dear John,

    Thank you very much for looking into this. I am attaching two log files: FSUIPC4_1.txt (starting with trike, cutting motor and then changing to FSL A320) and FSUIPC4_2.txt (starting right away from c&d). The offsets monitored are

    54B6 (EFIS value)
    66D2 (EFIS state)
    54BC (LED FD)
    54BD (LED LS)

    The files are too large, so I have uploaded them to Wetransfer: https://we.tl/t-Iaf3id4Lmh

    Best regards,

    Holger

     

  10. I have a small home-made Airbus FCU that I am using on the FSLabs A320 in FSX. If you want to start this plane from cold and dark, you have to first load the trike, cut the motor and then load the FS Bus. This leads to some offsets behaving erratically (not sending data or sending wrong data). This is not a case when I save a cold and dark flight, exit FSX, restart and then directly load the cold and dark flight. Is there any explanation? It seems to me that by starting the trike, some offset processes might be started and they might still be running, even though a new plane has been loaded. I wonder whether it mey help to clear all offsets and how this could be done.

    Best regards

    - shorthauler

  11. Dear John,
    I am working on a Lua script for the mode knob on an A320 EFIS. The knob has five positions which are five separate buttons. Each button calls a LuaValue function and assigns a parameter, "0" for the left most position (ILS), "10" for the next (VOR) etc. until "40" for the right most position (PLAN).

    This moves the button as planned but does not change the display on the ND. The display can only be changed by sending rotor brake codes for decreasing and increasing.

    My script sends four decreasing ipc.control commands for the left most and four increasing for the right most position. This syncs the display with the knob, but only in these positions.

    I would like to send a decreasing or increasing command for the positions in between, but I can't get it to work. Could you have a look at my script?

     

    function modeKnob(param)
        old_param = ipc.readLvar("VC_GSLD_CP_EFIS_ND_Mode_Knob")
    -- reads the position of the knob from the Lvar before the new param is written and names it "old_param"
        ipc.writeLvar("VC_GSLD_CP_EFIS_ND_Mode_Knob", ipcPARAM) -- writes the new param into the Lvar
        new_param = ipc.readLvar("VC_GSLD_CP_EFIS_ND_Mode_Knob") -- names the new param as global function
        if ipcPARAM == 0 then -- four decreasing inputs for the left most position
            ipc.control(66587,71021)
            ipc.control(66587,71024)
            ipc.control(66587,71021)
            ipc.control(66587,71024)
            ipc.control(66587,71021)
            ipc.control(66587,71024)
            ipc.control(66587,71021)
            ipc.control(66587,71024)
        elseif ipcPARAM == 40 then
    -- four increasing inputs for the right most position
            ipc.control(66587,71025)
            ipc.control(66587,71022)
            ipc.control(66587,71025)
            ipc.control(66587,71022)
            ipc.control(66587,71025)
            ipc.control(66587,71022)
            ipc.control(66587,71025)
            ipc.control(66587,71022)
        elseif (old_param < new_param) then
    -- compare old and new param and increase of decrease setting of ND accordingly
            ipc.control(66587,71021)
            ipc.control(66587,71024)
        else
            ipc.control(66587,71022)
            ipc.control(66587,71025)
        end
    end

    event.param("modeKnob")

     

    ------------------

    Extract from the log:

     

    811109 LUA: Waiting for an event in "E:\FSX\Flight Simulator X\Modules\A320 Mode.lua"
       811890 LUA: ipcPARAM event: calling "modeKnob" in "E:\FSX\Flight Simulator X\Modules\A320 Mode.lua"
       811890 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:2
       811890 LUA: Global: ipcPARAM = 20
       811890 LUA: Local: param = 20
       811890 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:3
       811906 LUA: Global: old_param = 30
       811953 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:4
       811953 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:5
       811953 LUA: Global: new_param = 20
       811953 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:14
       811953 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:23
       811968 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:27
       812015 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:28
       812031 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:30
       812031 LUA: Waiting for an event in "E:\FSX\Flight Simulator X\Modules\A320 Mode.lua"
       813156 LUA: ipcPARAM event: calling "modeKnob" in "E:\FSX\Flight Simulator X\Modules\A320 Mode.lua"
       813156 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:2
       813156 LUA: Global: ipcPARAM = 10
       813156 LUA: Local: param = 10
       813156 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:3
       813156 LUA: Global: old_param = 20
       813218 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:4
       813218 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:5
       813218 LUA: Global: new_param = 10
       813218 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:14
       813218 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:23
       813218 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:27
       813265 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:28
       813265 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:30
       813265 LUA: Waiting for an event in "E:\FSX\Flight Simulator X\Modules\A320 Mode.lua"
       813609 LUA: ipcPARAM event: calling "modeKnob" in "E:\FSX\Flight Simulator X\Modules\A320 Mode.lua"
       813609 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:2
       813625 LUA: Global: ipcPARAM = 0
       813625 LUA: Local: param = 0
       813625 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:3
       813625 LUA: Global: old_param = 10
       813765 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:4
       813765 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:5
       813765 LUA: Global: new_param = 0
       813781 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:6
       813781 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:7
       813781 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:8
       813781 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:9
       813937 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:10
       813937 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:11
       813953 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:12
       813953 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:13
       813953 LUA: E:\FSX\Flight Simulator X\Modules\A320 Mode.lua:30
       813953 LUA: Waiting for an event in "E:\FSX\Flight Simulator X\Modules\A320 Mode.lua"

     

     

  12. Thank you, I was not aware of this. I replaced offset 66C1 by 66C0. The values stored in 66C0 still "leak" into 66C1.

    I am not sure how I should apply "event.offset" to 0xABCD here. I made a line event.offset (0x54C4, "STR", 9, "getnumbersfromtext") and put it in front of everything else as first line. But this does not work.

    If the format is event.offset(offset, "STR", length, "function-name") what should I use as function name?

    Best

    - shorthauler

  13. Thanks a lot, *100 and then /100 in MobiFlight works great!

    I am using free offset 66C1 for the speed and it occupies 66C2 as well, but not 66C3 and beyond. For "speed100" I am logging U16 in the simulator and a 2 byte integer in MobiFlight.

    This is the final script. It works well. There is, however, a noticeable delay between the digit changes in the simulator and the digit changes in my FCU.

    I am using "repeat ... until condition" to have the script constantly run over the string and check for changes. Maybe this can be done more efficiently.

    - shorthauler

     

    repeat

    spdstate = ipc.readSTR(0xABCD, 9)

    function getnumbersfromtext(spdstate)
    return tonumber(spdstate:match"%d+[%d.,]*")
    end

    if (string.find(spdstate, "%-") and string.find(spdstate, "%*")) then
        ipc.writeUB(0x66C5,1)
        ipc.writeUB(0x66C6,1)
      elseif string.find(spdstate, "%-") then
        ipc.writeUB(0x66C5,1)
        ipc.writeUB(0x66C6,0)
      elseif string.find(spdstate, "%*") then
        ipc.writeUB(0x66C5,0)
        ipc.writeUB(0x66C6,1)
      else
        ipc.writeUB(0x66C5,0)
        ipc.writeUB(0x66C6,0)
    end

    if string.find(spdstate, "SPD") then
        ipc.writeUB(0x66C7,1)
    else
        ipc.writeUB(0x66C7,0)
    end

    if string.find(spdstate, "MACH") then
        ipc.writeUB(0x66C8,1)
    else
        ipc.writeUB(0x66C8,0)
    end

    if string.find(spdstate, "%-") then
        ipc.writeSW(0x66C1, 0)                    -- speed hast to be forced to 0, when the dashes appear in managed mode, otherwise there will be interferences with the dashes
    else
        speed = getnumbersfromtext(spdstate)
        speed100 = speed*100
        ipc.writeUW(0x66C1, speed100)      -- logging "speed100" with U16 in the simulator and a 2 byte integer in MobiFlight
    end

    until condition

×
×
  • 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.