Results 1 to 9 of 9
  1. #1
    10+ Posting Member
    Join Date
    Nov 2007
    Location
    Paris
    Posts
    17
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    cdu keyboard interface

    hello
    i am now testing my home built fmc for 747 (from opencockpits)
    when i try to write a value at offset 5428, only the first time and only once a caracter is displayed in the magenta cdu
    by example if i write 65 at this offset a "A" is displayed in cdu but if i write 66 or 8 or another caracter, nothing happens !!!
    i have tried to toggle some bits in the same time (of hight byte) but i am always the same trouble.

    where can i find some examples or help to do this interface working?

    Thank you
    Patrick

  2. #2
    75+ Posting Member
    Join Date
    Dec 2006
    Location
    USA
    Posts
    127
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Patrick,

    What software are you using for your FMC?
    Project Magenta, Level-D, or something else?

    ~Polmer

  3. #3
    10+ Posting Member
    Join Date
    Nov 2007
    Location
    Paris
    Posts
    17
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Quote Originally Posted by Polmer View Post
    Patrick,

    What software are you using for your FMC?
    Project Magenta, Level-D, or something else?

    ~Polmer
    Polmer

    I am using project magenta software and i test my fmc by directly writing at offset 5428 as mentionned in the documentation

    Patrick

  4. #4
    75+ Posting Member
    Join Date
    Dec 2006
    Location
    USA
    Posts
    127
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    I couldnt find any PM FMC code, but here is a example of how it works for
    for Level-D FMC. The offsets,of course, wouldnt work for you though....

    Polmer





    ~Polmer



    Var 0000, Value 0 // Initialisation

    Var 0001, name OFF_LSK, Link FSUIPC_OUT, Offset $66C0, Length 4

    Var 0002, name OFF_LD, Link FSUIPC_OUT, Offset $66C4, Length 4

    Var 0003, name OFF_CY, Link FSUIPC_OUT, Offset $66C8, Length 2

    Var 0004, name LSK_L1, Link IOCARD_SW, Input 24, Type P
    {
    &OFF_LSK = CHANGEBIT 0, &LSK_L1
    }
    Var 0005, name LSK_L2, Link IOCARD_SW, Input 25, Type P
    {
    &OFF_LSK = CHANGEBIT 1, &LSK_L2
    }
    Var 0006, name LSK_L3, Link IOCARD_SW, Input 26, Type P
    {
    &OFF_LSK = CHANGEBIT 2, &LSK_L3
    }
    Var 0007, name LSK_L4, Link IOCARD_SW, Input 27, Type P
    {
    &OFF_LSK = CHANGEBIT 3, &LSK_L4
    }
    Var 0008, name LSK_L5, Link IOCARD_SW, Input 28, Type P
    {
    &OFF_LSK = CHANGEBIT 4, &LSK_L5
    }
    Var 0009, name LSK_L6, Link IOCARD_SW, Input 29, Type P
    {
    &OFF_LSK = CHANGEBIT 5, &LSK_L6
    }
    Var 0010, name LSK_R1, Link IOCARD_SW, Input 30, Type P
    {
    &OFF_LSK = CHANGEBIT 6, &LSK_R1
    }
    Var 0011, name LSK_R2, Link IOCARD_SW, Input 31, Type P
    {
    &OFF_LSK = CHANGEBIT 7, &LSK_R2
    }
    Var 0012, name LSK_R3, Link IOCARD_SW, Input 32, Type P
    {
    &OFF_LSK = CHANGEBIT 8, &LSK_R3
    }
    Var 0013, name LSK_R4, Link IOCARD_SW, Input 33, Type P
    {
    &OFF_LSK = CHANGEBIT 9, &LSK_R4
    }
    Var 0014, name LSK_R5, Link IOCARD_SW, Input 34, Type P
    {
    &OFF_LSK = CHANGEBIT 10, &LSK_R5
    }
    Var 0015, name LSK_R6, Link IOCARD_SW, Input 35, Type P
    {
    &OFF_LSK = CHANGEBIT 11, &LSK_R6
    }
    Var 0016, name INIT_REF, Link IOCARD_SW, Input 36, Type P
    {
    &OFF_LSK = CHANGEBIT 12, &INIT_REF
    }
    Var 0017, name RTE, Link IOCARD_SW, Input 37, Type P
    {
    &OFF_LSK = CHANGEBIT 13, &RTE
    }
    Var 0018, name DEP_ARR, Link IOCARD_SW, Input 38, Type P
    {
    &OFF_LSK = CHANGEBIT 14, &DEP_ARR
    }
    Var 0019, name ATC, Link IOCARD_SW, Input 39, Type P
    {
    &OFF_LSK = CHANGEBIT 15, &ATC
    }
    Var 0020, name VNAV, Link IOCARD_SW, Input 40, Type P
    {
    &OFF_LSK = CHANGEBIT 16, &VNAV
    }
    Var 0021, name FIX, Link IOCARD_SW, Input 41, Type P
    {
    &OFF_LSK = CHANGEBIT 17, &FIX
    }
    Var 0022, name LEGS, Link IOCARD_SW, Input 42, Type P
    {
    &OFF_LSK = CHANGEBIT 18, &LEGS
    }
    Var 0023, name HOLD, Link IOCARD_SW, Input 43, Type P
    {
    &OFF_LSK = CHANGEBIT 19, &HOLD
    }
    Var 0024, name F_COMM, Link IOCARD_SW, Input 44, Type P
    {
    &OFF_LSK = CHANGEBIT 20, &F_COMM
    }
    Var 0025, name PROG, Link IOCARD_SW, Input 45, Type P
    {
    &OFF_LSK = CHANGEBIT 21, &PROG
    }
    Var 0026, name EXEC, Link IOCARD_SW, Input 46, Type P
    {
    &OFF_LSK = CHANGEBIT 22, &EXEC
    }
    Var 0027, name MENU, Link IOCARD_SW, Input 47, Type P
    {
    &OFF_LSK = CHANGEBIT 23, &MENU
    }
    Var 0028, name NAV_RAD, Link IOCARD_SW, Input 48, Type P
    {
    &OFF_LSK = CHANGEBIT 24, &NAV_RAD
    }
    Var 0029, name PREV_PAGE, Link IOCARD_SW, Input 49, Type P
    {
    &OFF_LSK = CHANGEBIT 25, &PREV_PAGE
    }
    Var 0030, name NEXT_PAGE, Link IOCARD_SW, Input 50, Type P
    {
    &OFF_LSK = CHANGEBIT 26, &NEXT_PAGE
    }
    Var 0031, name FMC_A, Link IOCARD_SW, Input 51, Type P
    {
    &OFF_LD = CHANGEBIT 0, &FMC_A
    }
    Var 0032, name FMC_B, Link IOCARD_SW, Input 52, Type P
    {
    &OFF_LD = CHANGEBIT 1, &FMC_B
    }
    Var 0033, name FMC_C, Link IOCARD_SW, Input 53, Type P
    {
    &OFF_LD = CHANGEBIT 2, &FMC_C
    }
    Var 0034, name FMC_D, Link IOCARD_SW, Input 54, Type P
    {
    &OFF_LD = CHANGEBIT 3, &FMC_D
    }
    Var 0035, name FMC_E, Link IOCARD_SW, Input 55, Type P
    {
    &OFF_LD = CHANGEBIT 4, &FMC_E
    }
    Var 0036, name FMC_F, Link IOCARD_SW, Input 56, Type P
    {
    &OFF_LD = CHANGEBIT 5, &FMC_F
    }
    Var 0037, name FMC_G, Link IOCARD_SW, Input 57, Type P
    {
    &OFF_LD = CHANGEBIT 6, &FMC_G
    }
    Var 0038, name FMC_H, Link IOCARD_SW, Input 58, Type P
    {
    &OFF_LD = CHANGEBIT 7, &FMC_H
    }
    Var 0039, name FMC_I, Link IOCARD_SW, Input 59, Type P
    {
    &OFF_LD = CHANGEBIT 8, &FMC_I
    }
    Var 0040, name FMC_J, Link IOCARD_SW, Input 60, Type P
    {
    &OFF_LD = CHANGEBIT 9, &FMC_J
    }
    Var 0041, name FMC_K, Link IOCARD_SW, Input 61, Type P
    {
    &OFF_LD = CHANGEBIT 10, &FMC_K
    }
    Var 0042, name FMC_L, Link IOCARD_SW, Input 62, Type P
    {
    &OFF_LD = CHANGEBIT 11, &FMC_L
    }
    Var 0043, name FMC_M, Link IOCARD_SW, Input 63, Type P
    {
    &OFF_LD = CHANGEBIT 12, &FMC_M
    }
    Var 0044, name FMC_N, Link IOCARD_SW, Input 64, Type P
    {
    &OFF_LD = CHANGEBIT 13, &FMC_N
    }
    Var 0045, name FMC_O, Link IOCARD_SW, Input 65, Type P
    {
    &OFF_LD = CHANGEBIT 14, &FMC_O
    }
    Var 0046, name FMC_P, Link IOCARD_SW, Input 66, Type P
    {
    &OFF_LD = CHANGEBIT 15, &FMC_P
    }
    Var 0047, name FMC_Q, Link IOCARD_SW, Input 67, Type P
    {
    &OFF_LD = CHANGEBIT 16, &FMC_Q
    }
    Var 0048, name FMC_R, Link IOCARD_SW, Input 68, Type P
    {
    &OFF_LD = CHANGEBIT 17, &FMC_R
    }
    Var 0049, name FMC_S, Link IOCARD_SW, Input 69, Type P
    {
    &OFF_LD = CHANGEBIT 18, &FMC_S
    }
    Var 0050, name FMC_T, Link IOCARD_SW, Input 70, Type P
    {
    &OFF_LD = CHANGEBIT 19, &FMC_T
    }
    Var 0051, name FMC_U, Link IOCARD_SW, Input 71, Type P
    {
    &OFF_LD = CHANGEBIT 20, &FMC_U
    }
    Var 0052, name FMC_V, Link IOCARD_SW, Input 72, Type P
    {
    &OFF_LD = CHANGEBIT 21, &FMC_V
    }
    Var 0053, name FMC_W, Link IOCARD_SW, Input 73, Type P
    {
    &OFF_LD = CHANGEBIT 22, &FMC_W
    }
    Var 0054, name FMC_X, Link IOCARD_SW, Input 74, Type P
    {
    &OFF_LD = CHANGEBIT 23, &FMC_X
    }
    Var 0055, name FMC_Y, Link IOCARD_SW, Input 75, Type P
    {
    &OFF_LD = CHANGEBIT 24, &FMC_Y
    }
    Var 0056, name FMC_Z, Link IOCARD_SW, Input 76, Type P
    {
    &OFF_LD = CHANGEBIT 25, &FMC_Z
    }
    Var 0057, name FMC_BL, Link IOCARD_SW, Input 77, Type P
    {
    &OFF_LD = CHANGEBIT 26, &FMC_BL
    }
    Var 0058, name FMC_DEL, Link IOCARD_SW, Input 78, Type P
    {
    &OFF_LD = CHANGEBIT 27, &FMC_DEL
    }
    Var 0059, name FMC_SL, Link IOCARD_SW, Input 79, Type P
    {
    &OFF_LD = CHANGEBIT 28, &FMC_SL
    }
    Var 0060, name FMC_CLR, Link IOCARD_SW, Input 80, Type P
    {
    &OFF_LD = CHANGEBIT 29, &FMC_CLR
    }
    Var 0061, name FMC_1, Link IOCARD_SW, Input 81, Type P
    {
    &OFF_CY = CHANGEBIT 0, &FMC_1
    }
    Var 0062, name FMC_2, Link IOCARD_SW, Input 82, Type P
    {
    &OFF_CY = CHANGEBIT 1, &FMC_2
    }
    Var 0063, name FMC_3, Link IOCARD_SW, Input 83, Type P
    {
    &OFF_CY = CHANGEBIT 2, &FMC_3
    }
    Var 0064, name FMC_4, Link IOCARD_SW, Input 84, Type P
    {
    &OFF_CY = CHANGEBIT 3, &FMC_4
    }
    Var 0065, name FMC_5, Link IOCARD_SW, Input 85, Type P
    {
    &OFF_CY = CHANGEBIT 4, &FMC_5
    }
    Var 0066, name FMC_6, Link IOCARD_SW, Input 86, Type P
    {
    &OFF_CY = CHANGEBIT 5, &FMC_6
    }
    Var 0067, name FMC_7, Link IOCARD_SW, Input 87, Type P
    {
    &OFF_CY = CHANGEBIT 6, &FMC_7
    }
    Var 0068, name FMC_8, Link IOCARD_SW, Input 88, Type P
    {
    &OFF_CY = CHANGEBIT 7, &FMC_8
    }
    Var 0069, name FMC_9, Link IOCARD_SW, Input 89, Type P
    {
    &OFF_CY = CHANGEBIT 8, &FMC_9
    }
    Var 0070, name FMC_DOT, Link IOCARD_SW, Input 90, Type P
    {
    &OFF_CY = CHANGEBIT 9, &FMC_DOT
    }
    Var 0071, name FMC_0, Link IOCARD_SW, Input 91, Type P
    {
    &OFF_CY = CHANGEBIT 10, &FMC_0
    }
    Var 0072, name FMC_PLMIN, Link IOCARD_SW, Input 92, Type P
    {
    &OFF_CY = CHANGEBIT 11, &FMC_PLMIN
    }

  5. #5
    10+ Posting Member
    Join Date
    Nov 2007
    Location
    Paris
    Posts
    17
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Thank you Polmer

    but i think i can't use this code for pm cdu even if i change the offset.
    logic isn't the same.
    Patrick

  6. #6
    25+ Posting Member
    Join Date
    Dec 2006
    Location
    Madagascar - Antananarivo
    Posts
    29
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Hello Patrick, perhaps the problem isn't from PM offset but from your sioc code ?
    What do you use for entries ? USB KEY or inputs from MASTERCARD ?

    Perhaps you could show partially your code ?

    Stéphane

  7. #7
    10+ Posting Member
    Join Date
    Nov 2007
    Location
    Paris
    Posts
    17
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Hello Stéphane,

    i am using usbkeys and iockeys.exe software but i have tried to write directy with iocpconsole at offset 5428 an ascii value like 65 or 8 or another.
    the variable linked to this fsuipcc in/out display the value 65 and so on
    the first time and only the first time a caracter "A" is displayed in the CDU scratchpad but nothing happens for the others caracters.
    if i close and open again the magenta CDU software, i can display again only once the caracter sent by IOCPConsole and only the first one.
    CDU version is the last 394 like FSUIPC
    perhaps some bits of the high byte of this offset must be changed for another caracter and i have tried to send 65 + 256*2^3 (to setbit 3) without success.
    can you give some examples of sioc code to manage this interface?
    Thank you
    Patrick

  8. #8
    25+ Posting Member
    Join Date
    Dec 2006
    Location
    Madagascar - Antananarivo
    Posts
    29
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Not at this time because I use USBKEY card and Link_KEY function of SIOC too !

    But I will check this problem of repetition of caracters because I'm interrested by using offset assignement instead of key sending ( problem of risk of windows focus lossing)

    In documentation :
    "CDU "Keyboard Interface" (2 bytes)

    low byte, ascii character
    high byte shift = Bit0, Ctrl = Bit1, Alt = Bit2 ... other bits must change if you have two same characters after the other..."

    Yes...not very explicite as always... did you try to "reset" offset 5428 after every sending ( just an idea... )

    ( And be carefull too with USBkey and Link_KEYS about a similar problem with "reset"...)

    I understand this is not the case as you directly use IOCPconsole to test...

  9. #9
    10+ Posting Member
    Join Date
    Nov 2007
    Location
    Paris
    Posts
    17
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Stephane
    i will try to reset this offset (all bits to 0???)
    but i am waiting some information from PM
    perhaps this fonction isn't fully implemented ???

Similar Threads

  1. Hacked USB keyboard for interface
    By Rex Flyer in forum General Builder Questions All Aircraft Types
    Replies: 5
    Last Post: 08-19-2009, 03:34 PM
  2. Can a keyboard be used...
    By shearder in forum Where to Start Building a Home Cockpit
    Replies: 10
    Last Post: 03-23-2009, 02:32 PM
  3. Keyboard
    By Mac in forum MyCockpit Member Meetings
    Replies: 1
    Last Post: 01-06-2009, 10:19 AM