Sioc Pour B747 et Projet Magenta

Bonjour,

Je viens de tester mon script OVH B77 avec un bouton du mcp (ovh pas fait encore) et je maperçois qu'il faut que je reste appuyer sur le bouton pour que mon action soit pris en compte. Mes questions:
Est ce que je dois mettre des boutons on/off ?
Est ce que c'est la fonction setbit et clearbit qui moblige a mettre des on/off
Que dois je mettre comme fonction pour que ce soit des boutons mom?.
Si ma mémoire est bonne c'est pour cela que j'avais mis la fonction toggle.

merci
 
Je viens de regarder un ancien script que j'avais fais et je mett'ais la fonction changebit et toggle . C'est fonction est utilisé pour les boutons momentanés.

je teste..

J.
 
je dirais pareil mais en plus compliqué ...
la fonction changebit change un bit d'une variable en fonction d'un paramètre d'une autre variable ....
ici le setbit et clearbit c'est plus simple comme ton switch change le bit sans problème
et la fonction toogle ça met un bit de variable en marche puis ça le remet a zero en gros ça fait une impulsion de bit !
 
ha ok d'accord donc comme un gros naze j'ai tous changé en changebit et toggle mais il faut que je le remette et je rajoute le P.

Pfffff
 
essaye tu verras bien .... normalement le fait de mettre en changebit et toggle ca reviens au meme que de faire un setbit clearbit ....
mais si tu met la fonction P ca simule que ton bouton reste enfoncé il faudra rappuyer dessus pour le des'enclencher
 
Le test est fait et fonctionnel, du moins quand j'appuis sur le bouton il s'enclenche et la led s'allume, mais et je dirais MAIS la logique de PM déconne a plein nez avec x-plane enfin je crois, je vais tester avec P3D et on verra bien .
Je fais le test ce soir
 
Bonjour,

je voudrais faire mon propre script sioc MCP du 747 mais j'ai du mal avec sioc encore
Est ce que qq aurais un exemple d'un bouton style CMD en script sioc que je refasse le meme pour tous en changeant le nom,offsset etc.....
Merci d'avance
 
Je viens de finir une partie de mon scripts pour le 747 avec MCP+EFIS+ECAM+CDU que je vous mets si qq ce lance sur un 747 et

Code:
Var 0000, Value 0
{
  V0040 = 180         // COURSE
  V0045 = 180         // COURSE
  V0042 = 180         // HDG
  V0043 = 10         // ALT
  V0044 = 0         // 00 DEL ALT EL 00 ES FIJO
  V0006 = SETBIT 23     // PONE MODO IAS
  V0013 = V0004         // IAS LEIDAS EN IAS TEMPORAL
  V0014 = V0005         // MATH LEIDAS EN MATH TEMPORAL
  V0041 = V0004         // PONE POR IAS EN DISPLAY
  &0SUB_DH = 3000    
  &0SUB_BAR = 1013    
  &0SUB2_DH = 3000    
  &0SUB2_BAR = 1013    
}

Var 0001, Link FSUIPC_IN, Offset $04E6, Length 2, Type 1     // VS DE ENTRADA
{
  V0062 = V0001    
  CALL V0063     // PONE VALOR EN EL DISPLAY
}

Var 0002, Link FSUIPC_IN, Offset $051C, Length 2     // INDICADORES MCP
{
  C0 = TESTBIT V0002 ,0     // ESTà¡ APAGADO EL DISPLAY DEL VS ?
  IF C0         // SI ENTONCES
  {
    V0046 = -999999         // QUITA EL 00 FINAL DEL DISPLAY
    V0039 = -999999         // APAGA RESTO DE DIGITOS
    V0047 = -999999         // APAGO EL SIGNO -
  }
  ELSE     // NO ENTONCES
  {
    V0046 = 0         // ENCIENDE LOS 00 DEL DISPLAY
    CALL V0063     // PONE EL V/S EN EL DISPLAY
  }
}

Var 0003, Link FSUIPC_IN, Offset $04F0, Length 2     // LUCES DEL MCP
{
  V0049 = TESTBIT V0003 ,2     // V/S
  V0048 = TESTBIT V0003 ,11     // A/T
  V0050 = TESTBIT V0003 ,9     // SPEED
  V0051 = TESTBIT V0003 ,10     // N1
  V0052 = TESTBIT V0003 ,3     // ALT HOLD
  V0053 = TESTBIT V0003 ,4     // APP
  V0054 = TESTBIT V0003 ,5     // VORLOC
  V0055 = TESTBIT V0003 ,6     // LNAV
  V0056 = TESTBIT V0003 ,7     // HDG
  V0057 = TESTBIT V0003 ,8     // LVL CHG
  V0058 = TESTBIT V0003 ,14     // VNAV
  V0059 = TESTBIT V0003 ,0     // AP1
  V0060 = TESTBIT V0003 ,1     // AP2
  C0 = TESTBIT V0003 ,15     // MODO MATH O IAS ?
  IF C0         // MATH MODE
  {
    V0014 = V0005         // CARGO VALOR EN TEMPORAL
    V0061 = 1         // ENCIENDO EL PUNTO DECIMAL
    CALL V0064     // DISPLAY DEL VALOR
  }
  ELSE     // IAS MODE
  {
    V0013 = V0004         // CARGO VALOR EN TEMPORAL
    V0061 = 0         // APAGO EL PUNTO DECIMAL
    CALL V0064     // DISPLAY DEL VALOR
  }
}

Var 0004, Link FSUIPC_IN, Offset $04E0, Length 2     // IAS
{
  CALL V0064     // DISPLAY DEL VALOR
}

Var 0005, Link FSUIPC_IN, Offset $04E8, Length 2     // MATH
{
  CALL V0064     // DISPLAY DEL VALOR
}

Var 0006, Link FSUIPC_OUT, Offset $5410, Length 4     // PULSADORES-I PM

Var 0007, Link FSUIPC_OUT, Offset $5414, Length 4     // PULSADORES-II PM

Var 0008, Link FSUIPC_OUT, Offset $540C, Length 2, Type 1     // V/S DE SALIDA

Var 0009, Link FSUIPC_OUT, Offset $5414, Length 4     // BOTONES MCP

Var 0010, Link FSUIPC_OUT, Offset $0C4E, Length 2     // COURSE

Var 0011, Link FSUIPC_OUT, Offset $5408, Length 2     // HDG

Var 0012, Link FSUIPC_OUT, Offset $540A, Length 2     // ALT

Var 0013, Link FSUIPC_OUT, Offset $5406, Length 2     // IAS

Var 0014, Link FSUIPC_OUT, Offset $540E, Length 2     // MATH

Var 0015, Link FSUIPC_OUT, Offset $0C5E, Length 2     // COURSE 2

Var 0016, Link IOCARD_SW, Input 33     // #SC#MCP&EFIS_PMagenta.txt# INTERRUPTOR A
{
  IF V0016 = 1     // SI ESTà¡ ENCENDIDO
  {
    V0006 = TOGGLE 19     // HAGO TOGGLE DEL BIT 19
  }
  ELSE
  {
    V0006 = TOGGLE 20     // SI APAGADO TOGGLE DEL BIT 20
  }
}

Var 0017, Link IOCARD_SW, Input 16     // #SC#MCP&EFIS_PMagenta.txt# INTERRUPTOR F
{
  IF V0017 = 1
  {
    V0007 = TOGGLE 5
  }
  ELSE
  {
    V0007 = TOGGLE 6
  }
}

Var 0018, Link IOCARD_SW, Input 22, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON V/S
{
  V0009 = CHANGEBIT 11 ,V0018     // SI PULSADOR ENCENDIDO BIT 11 A 1 SI APAG
}

Var 0019, Link IOCARD_SW, Input 12, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON SPEED
{
  V0006 = CHANGEBIT 22 ,V0019
}

Var 0020, Link IOCARD_SW, Input 5, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON THR
{
  V0006 = CHANGEBIT 21 ,V0020
}

Var 0021, Link IOCARD_SW, Input 4, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON LVL CHG
{
  V0006 = CHANGEBIT 24 ,V0021
}

Var 0022, Link IOCARD_SW, Input 10, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON HDG
{
  V0006 = CHANGEBIT 11 ,V0022
}

Var 0023, Link IOCARD_SW, Input 0, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON ALT HOL
{
  V0006 = CHANGEBIT 30 ,V0023
}

Var 0024, Link IOCARD_SW, Input 2, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON APP
{
  V0006 = CHANGEBIT 29 ,V0024
}

Var 0025, Link IOCARD_SW, Input 6, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON VORLOC
{
  V0006 = CHANGEBIT 28 ,V0025
}

Var 0026, Link IOCARD_SW, Input 9, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON LNAV
{
  V0006 = CHANGEBIT 27 ,V0026
}

Var 0027, Link IOCARD_SW, Input 11, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON VNAV
{
  V0006 = CHANGEBIT 26 ,V0027
}

Var 0028, Link IOCARD_SW, Input 8, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON DISENGA
{
  IF V0028 = 0
  {
    V0009 = TOGGLE 8     // SI APAGO PONGO EL BIT A 0
  }
  ELSE
  {
    V0009 = TOGGLE 9     // SI ESTà¡ ENCENDIDO PONGO EL BIT A 1
  }
}

Var 0029, Link IOCARD_SW, Input 3, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON CMD1
{
  V0009 = CHANGEBIT 0 ,V0029
}

Var 0030, Link IOCARD_SW, Input 7, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON AP2
{
  V0009 = CHANGEBIT 1 ,V0030
}

Var 0031, Link IOCARD_SW, Input 100, Type P     // #SC#MCP&EFIS_PMagenta.txt# BOTON MATH
{
  V0006 = CHANGEBIT 23 ,V0031
}

Var 0032, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt# INTERRUPTOR F
{
  IF V0032 = 1
  {
    V0006 = TOGGLE 17
  }
  ELSE
  {
    V0006 = TOGGLE 18
  }
}

Var 0033, Link IOCARD_ENCODER, Input 100, Aceleration 4, Type 2     // #SC#MCP&EFIS_PMagenta.txt# ENCODER VS
{
  L0 = V0033 * -100     // INCREMENTA DE 100 EN 100
  V0062 = ROTATE -9000 ,9000 ,L0     // SUMA O RESTA DEL VALOR TEMPORAL DE V/S
  V0008 = V0062    
}

Var 0034, Link IOCARD_ENCODER, Input 100, Aceleration 4, Type 2     // #SC#MCP&EFIS_PMagenta.txt# ENCODER COURS
{
  L0 = V0034 * -1
  V0040 = ROTATE 0 ,359 ,L0     // ROTO EL VALOR DEL COURSE
}

Var 0035, Link IOCARD_ENCODER, Input 61, Aceleration 4, Type 2     // #SC#MCP&EFIS_PMagenta.txt# ENCODER IAS Y
{
  L0 = V0035 * -1
  C0 = TESTBIT V0003 ,15     // INDICADOR MATH O IAS ?
  IF C0         // MATH MODE
  {
    V0014 = LIMIT 25 ,95 ,L0     // INC O DECREMENTO EL VALOR DEL MATH
  }
  ELSE
  {
    V0013 = LIMIT 0 ,340 ,L0     // INC O DECREMENTO EL VALOR DEL IAS
  }
}

Var 0036, Link IOCARD_ENCODER, Input 58, Aceleration 4, Type 2     // #SC#MCP&EFIS_PMagenta.txt# ENCODER HDG
{
  L0 = V0036 * -1
  V0042 = ROTATE 0 ,359 ,L0
}

Var 0037, Link IOCARD_ENCODER, Input 256, Aceleration 4, Type 2     // #SC#MCP&EFIS_PMagenta.txt# ENCODER ALT
{
  L0 = V0037 * -1
  V0043 = LIMIT 0 ,500 ,L0
}

Var 0038, Link IOCARD_ENCODER, Input 100, Aceleration 4, Type 2     // #SC#MCP&EFIS_PMagenta.txt# ENCODER COURS
{
  L0 = V0038 * -1
  V0045 = ROTATE 0 ,359 ,L0     // ROTO EL VALOR DEL COURSE
}

Var 0039, Link IOCARD_DISPLAY, Digit 16, Numbers 2     // #SC#MCP&EFIS_PMagenta.txt# VS

Var 0040, Link IOCARD_DISPLAY, Digit 30, Numbers 3     // #SC#MCP&EFIS_PMagenta.txt# COURSE
{
  V0010 = V0040         // PASA EL VALOR AL PM
}

Var 0041, Link IOCARD_DISPLAY, Digit 14, Numbers 3     // #SC#MCP&EFIS_PMagenta.txt# IAS Y MATH

Var 0042, Link IOCARD_DISPLAY, Digit 11, Numbers 3     // #SC#MCP&EFIS_PMagenta.txt# HEADING
{
  V0011 = V0042         // PASA EL VALOR AL PM
}

Var 0043, Link IOCARD_DISPLAY, Digit 0, Numbers 3     // #SC#MCP&EFIS_PMagenta.txt# ALT
{
  V0012 = V0043         // PASA EL VALOR AL PM
}

Var 0044, Link IOCARD_DISPLAY, Digit 3, Numbers 2     // #SC#MCP&EFIS_PMagenta.txt# ALT 00

Var 0045, Link IOCARD_DISPLAY, Digit 19, Numbers 3     // #SC#MCP&EFIS_PMagenta.txt# COURSE 2
{
  V0015 = V0045         // PASA EL VALOR AL PM
}

Var 0046, Link IOCARD_DISPLAY, Digit 9, Numbers 2     // #SC#MCP&EFIS_PMagenta.txt# VS 00

Var 0047, Link IOCARD_DISPLAY, Digit 5, Numbers 1     // #SC#MCP&EFIS_PMagenta.txt# SIGNO VS

Var 0048, Link IOCARD_OUT, Output 0     // #SC#MCP&EFIS_PMagenta.txt# LED A/T

Var 0049, Link IOCARD_OUT, Output 0     // #SC#MCP&EFIS_PMagenta.txt# LED DEL BOTON

Var 0050, Link IOCARD_OUT, Output 37     // #SC#MCP&EFIS_PMagenta.txt# LED SPEED

Var 0051, Link IOCARD_OUT, Output 36     // #SC#MCP&EFIS_PMagenta.txt# LED THR

Var 0052, Link IOCARD_OUT, Output 42     // #SC#MCP&EFIS_PMagenta.txt# LED ALT HOLD

Var 0053, Link IOCARD_OUT, Output 43     // #SC#MCP&EFIS_PMagenta.txt# LED APP

Var 0054, Link IOCARD_OUT, Output 44     // #SC#MCP&EFIS_PMagenta.txt# LED VORLOC

Var 0055, Link IOCARD_OUT, Output 40     // #SC#MCP&EFIS_PMagenta.txt# LED LNAV

Var 0056, Link IOCARD_OUT, Output 33     // #SC#MCP&EFIS_PMagenta.txt# LED HDG

Var 0057, Link IOCARD_OUT, Output 34     // #SC#MCP&EFIS_PMagenta.txt# LED LVL CHG

Var 0058, Link IOCARD_OUT, Output 35     // #SC#MCP&EFIS_PMagenta.txt# LED VNAV

Var 0059, Link IOCARD_OUT, Output 45     // #SC#MCP&EFIS_PMagenta.txt# LED AP1

Var 0060, Link IOCARD_OUT, Output 46     // #SC#MCP&EFIS_PMagenta.txt# LED AP2

Var 0061, Link IOCARD_OUT, Output 2     // #SC#MCP&EFIS_PMagenta.txt# LED . DECIMAL

Var 0062     // VALOR TEMPORAL DEL V/S

Var 0063, Link SUBRUTINE     // PINTA V/S
{
  C0 = TESTBIT V0002 ,0     // COMPRUEBA SI DEBEN DE ESTAR APAGADOS
  C0 = NOT C0
  IF C0         // Sà³LO EN EL CASO DE ESTAR ENCENDIDOS
  {
    IF V0062 < 0     // SI V/S ES NEGATIVO PASA A POSITIVO
    {
      L0 = ABS V0062
      V0047 = -999998         // ENCIENDO EL SIGNO -
    }
    ELSE
    {
      V0047 = -999999         // APAGO EL SIGNO -
      L0 = V0062    
    }
    V0039 = L0 / 100     // MANDA EL VALOR AJUSTADO DE V/S A DISPLAY
  }
}

Var 0064, Link SUBRUTINE     // PINTA IAS / MATH
{
  C0 = TESTBIT V0003 ,15     // MODO MATH O IAS ?
  IF C0         // MATH MODE
  {
    V0061 = 1         // ENCIENDO EL PUNTO DECIMAL
    V0041 = V0005         // PONE VALOR MATH EN EL DISPLAY
  }
  ELSE
  {
    V0061 = 0         // ENCIENDO EL PUNTO DECIMAL
    V0041 = V0004         // PONE VALOR IAS EN EL DISPLAY
  }
}

Var 0065, name 0I_5, Link IOCARD_SW, Input 42     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_5 = 1
  {
    &0PM_RANG = 0    
  }
}

Var 0066, name 0I_10, Link IOCARD_SW, Input 39     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_10 = 1
  {
    &0PM_RANG = 1    
  }
}

Var 0067, name 0I_20, Link IOCARD_SW, Input 41     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_20 = 1
  {
    &0PM_RANG = 2    
  }
}

Var 0068, name 0I_40, Link IOCARD_SW, Input 44     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_40 = 1
  {
    &0PM_RANG = 3    
  }
}

Var 0069, name 0I_80, Link IOCARD_SW, Input 38     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_80 = 1
  {
    &0PM_RANG = 4    
  }
}

Var 0070, name 0I_160, Link IOCARD_SW, Input 43     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_160 = 1
  {
    &0PM_RANG = 5    
  }
}

Var 0071, name 0I_320, Link IOCARD_SW, Input 40     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_320 = 1
  {
    &0PM_RANG = 6    
  }
}

Var 0072, name 0I_640, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_640 = 1
  {
    &0PM_RANG = 7    
  }
}

Var 0073, name 0I_APP, Link IOCARD_SW, Input 33     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_APP = 1
  {
    &0PM_MODO = 5    
  }
}

Var 0074, name 0I_VOR, Link IOCARD_SW, Input 34     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_VOR = 1
  {
    &0PM_MODO = 3    
  }
}

Var 0075, name 0I_MAP, Link IOCARD_SW, Input 32     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_MAP = 1
  {
    &0PM_MODO = 1    
  }
}

Var 0076, name 0I_PLN, Link IOCARD_SW, Input 35     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_PLN = 1
  {
    &0PM_MODO = 4    
  }
}

Var 0077, name 0I_S1, Link IOCARD_SW, Input 66     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_S1 = 1
  {
    &0PM_MODO = 90         // STA
  }
}

Var 0078, name 0I_S2, Link IOCARD_SW, Input 67     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_S2 = 1
  {
    &0PM_MODO = 93         // WPT
  }
}

Var 0079, name 0I_S3, Link IOCARD_SW, Input 65     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_S3 = 1
  {
    &0PM_MODO = 70         // WXR
  }
}

Var 0080, name 0I_S4, Link IOCARD_SW, Input 68     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_S4 = 1
  {
    &0PM_MODO = 94         // ARPT
  }
}

Var 0081, name 0I_S5, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_S5 = 1
  {
  }
}

Var 0082, name 0I_S6, Link IOCARD_SW, Input 69     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_S6 = 1
  {
    &0PM_MODO = 95         // DATA
  }
}

Var 0083, name 0I_S7, Link IOCARD_SW, Input 70     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_S7 = 1
  {
    &0PM_MODO = 96         // POS
  }
}

Var 0084, name 0I_SR1, Link IOCARD_SW, Input 63     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_SR1 = 1
  {
    &0PM_MODO = 14         // FPV
  }
}

Var 0085, name 0I_SR2, Link IOCARD_SW, Input 64     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_SR2 = 1
  {
    &0PM_MODO = 26         // MTRS
  }
}

Var 0086, name 0I_BARONSW, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_BARONSW = 1
  {
    &0SUB_BAR = 1013    
    L0 = 1013 * 16
    L0 = L0 + 1
    &0FS_QNH = L0    
  }
}

Var 0087, name 0I_MINSW, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_MINSW = 1
  {
    &0SUB_DH = 3000    
  }
}

Var 0088, name 0I_VOR1, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_VOR1 = 1
  {
    &0PM_MODO = 75    
  }
  ELSE
  {
    IF &0I_ADF1 = 0
    {
      &0PM_MODO = 73    
    }
  }
}

Var 0089, name 0I_ADF1, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_ADF1 = 1
  {
    &0PM_MODO = 74    
  }
  ELSE
  {
    IF &0I_VOR1 = 0
    {
      &0PM_MODO = 73    
    }
  }
}

Var 0090, name 0I_VOR2, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_VOR2 = 1
  {
    &0PM_MODO = 78    
  }
  ELSE
  {
    IF &0I_ADF2 = 0
    {
      &0PM_MODO = 76    
    }
  }
}

Var 0091, name 0I_ADF2, Link IOCARD_SW, Input 100     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I_ADF2 = 1
  {
    &0PM_MODO = 77    
  }
  ELSE
  {
    IF &0I_VOR2 = 0
    {
      &0PM_MODO = 76    
    }
  }
}

Var 0092, name 0E_BARO, Link IOCARD_ENCODER, Input 100, Aceleration 1, Type 2     // #SC#MCP&EFIS_PMagenta.txt#
{
  L0 = &0E_BARO * -1
  &0SUB_BAR = &0SUB_BAR + L0
}

Var 0093, name 0E_MIN, Link IOCARD_ENCODER, Input 100, Aceleration 1, Type 2     // #SC#MCP&EFIS_PMagenta.txt#
{
  L0 = &0E_MIN * -100
  &0SUB_DH = &0SUB_DH + L0
}

Var 0094, name 0SUB_DH, Link SUBRUTINE
{
  IF &0SUB_DH > 20000
  {
    &0SUB_DH = 20000    
  }
  IF &0SUB_DH < 0
  {
    &0SUB_DH = 0    
  }
  L0 = DIV &0SUB_DH ,100
  &0PM_DH = L0    
}

Var 0095, name 0SUB_BAR, Link SUBRUTINE
{
  L0 = &0SUB_BAR * 16
  &0FS_QNH = L0    
}

Var 0096, name 0SUB2_DH, Link SUBRUTINE
{
  IF &0SUB2_DH > 20000
  {
    &0SUB2_DH = 20000    
  }
  IF &0SUB2_DH < 0
  {
    &0SUB2_DH = 0    
  }
  L0 = DIV &0SUB2_DH ,100
  &0PM2_DH = L0    
}

Var 0097, name 0SUB2_BAR, Link SUBRUTINE
{
  L0 = &0SUB2_BAR * 16
  &0FS2_QNH = L0    
}

Var 0098, name 0PM_MODO, Link FSUIPC_INOUT, Offset $04F4, Length 2     // PM_EFIS_MODO

Var 0099, name 0PM_RANG, Link FSUIPC_OUT, Offset $04F8, Length 2     // PM_EFIS_RANG

Var 0100, name 0PM_DH, Link FSUIPC_OUT, Offset $04FA, Length 2     // PM_EFIS_DH

Var 0101, name 0FS_QNH, Link FSUIPC_OUT, Offset $0330, Length 2     // FS_QNH_MB

Var 0102, name 0PM2_RANG, Link FSUIPC_OUT, Offset $5524, Length 2     // PM_EFIS_RANG FO

Var 0103, name 0PM2_DH, Link FSUIPC_OUT, Offset $5532, Length 2     // PM_EFIS_DH FO

Var 0104, name 0FS2_QNH, Link FSUIPC_OUT, Offset $552E, Length 2     // FS_QNH_MB FO

Var 0105, name 0I2_5, Link IOCARD_SW, Device 2, Input 0     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_5 = 1
  {
    &0PM2_RANG = 0    
  }
}

Var 0106, name 0I2_10, Link IOCARD_SW, Device 2, Input 1     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_10 = 1
  {
    &0PM2_RANG = 1    
  }
}

Var 0107, name 0I2_20, Link IOCARD_SW, Device 2, Input 2     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_20 = 1
  {
    &0PM2_RANG = 2    
  }
}

Var 0108, name 0I2_40, Link IOCARD_SW, Device 2, Input 3     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_40 = 1
  {
    &0PM2_RANG = 3    
  }
}

Var 0109, name 0I2_80, Link IOCARD_SW, Device 2, Input 4     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_80 = 1
  {
    &0PM2_RANG = 4    
  }
}

Var 0110, name 0I2_160, Link IOCARD_SW, Device 2, Input 5     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_160 = 1
  {
    &0PM2_RANG = 5    
  }
}

Var 0111, name 0I2_320, Link IOCARD_SW, Device 2, Input 6     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_320 = 1
  {
    &0PM2_RANG = 6    
  }
}

Var 0112, name 0I2_640, Link IOCARD_SW, Device 2, Input 7     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_640 = 1
  {
    &0PM2_RANG = 7    
  }
}

Var 0113, name 0I2_APP, Link IOCARD_SW, Device 2, Input 9     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_APP = 1
  {
    &0PM_MODO = 105    
  }
}

Var 0114, name 0I2_VOR, Link IOCARD_SW, Device 2, Input 10     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_VOR = 1
  {
    &0PM_MODO = 103    
  }
}

Var 0115, name 0I2_MAP, Link IOCARD_SW, Device 2, Input 11     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_MAP = 1
  {
    &0PM_MODO = 101    
  }
}

Var 0116, name 0I2_PLN, Link IOCARD_SW, Device 2, Input 12     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_PLN = 1
  {
    &0PM_MODO = 104    
  }
}

Var 0117, name 0I2_S1, Link IOCARD_SW, Device 2, Input 27     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_S1 = 1
  {
    &0PM_MODO = 190         // STA
  }
}

Var 0118, name 0I2_S2, Link IOCARD_SW, Device 2, Input 28     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_S2 = 1
  {
    &0PM_MODO = 193         // WPT
  }
}

Var 0119, name 0I2_S3, Link IOCARD_SW, Device 2, Input 29     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_S3 = 1
  {
    &0PM_MODO = 106         // CTR
  }
}

Var 0120, name 0I2_S4, Link IOCARD_SW, Device 2, Input 30     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_S4 = 1
  {
    &0PM_MODO = 194         // ARPT
  }
}

Var 0121, name 0I2_S5, Link IOCARD_SW, Device 2, Input 31     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_S5 = 1
  {
  }
}

Var 0122, name 0I2_S6, Link IOCARD_SW, Device 2, Input 32     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_S6 = 1
  {
    &0PM_MODO = 195         // DATA
  }
}

Var 0123, name 0I2_S7, Link IOCARD_SW, Device 2, Input 33     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_S7 = 1
  {
    &0PM_MODO = 196         // POS
  }
}

Var 0124, name 0I2_SR1, Link IOCARD_SW, Device 2, Input 34     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_SR1 = 1
  {
    &0PM_MODO = 114         // FPV
  }
}

Var 0125, name 0I2_SR2, Link IOCARD_SW, Device 2, Input 38     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_SR2 = 1
  {
    &0PM_MODO = 126         // MTRS
  }
}

Var 0126, name 0I2_BARONSW, Link IOCARD_SW, Device 2, Input 22     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_BARONSW = 1
  {
    &0SUB2_BAR = 1013    
    L0 = 1013 * 16
    L0 = L0 + 1
    &0FS2_QNH = L0    
  }
}

Var 0127, name 0I2_MINSW, Link IOCARD_SW, Device 2, Input 25     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_MINSW = 1
  {
    &0SUB2_DH = 3000    
  }
}

Var 0128, name 0I2_VOR1, Link IOCARD_SW, Device 2, Input 36     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_VOR1 = 1
  {
    &0PM_MODO = 175    
  }
  ELSE
  {
    IF &0I2_ADF1 = 0
    {
      &0PM_MODO = 173    
    }
  }
}

Var 0129, name 0I2_ADF1, Link IOCARD_SW, Device 2, Input 37     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_ADF1 = 1
  {
    &0PM_MODO = 174    
  }
  ELSE
  {
    IF &0I2_VOR1 = 0
    {
      &0PM_MODO = 173    
    }
  }
}

Var 0130, name 0I2_VOR2, Link IOCARD_SW, Device 2, Input 18     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_VOR2 = 1
  {
    &0PM_MODO = 178    
  }
  ELSE
  {
    IF &0I2_ADF2 = 0
    {
      &0PM_MODO = 176    
    }
  }
}

Var 0131, name 0I2_ADF2, Link IOCARD_SW, Device 2, Input 19     // #SC#MCP&EFIS_PMagenta.txt#
{
  IF &0I2_ADF2 = 1
  {
    &0PM_MODO = 177    
  }
  ELSE
  {
    IF &0I2_VOR2 = 0
    {
      &0PM_MODO = 176    
    }
  }
}

Var 0132, name 0E2_BARO, Link IOCARD_ENCODER, Device 2, Input 20, Aceleration 1, Type 2     // #SC#MCP&EFIS_PMagenta.txt
{
  L0 = &0E2_BARO * -1
  &0SUB2_BAR = &0SUB2_BAR + L0
}

Var 0133, name 0E2_MIN, Link IOCARD_ENCODER, Device 2, Input 23, Aceleration 1, Type 2     // #SC#MCP&EFIS_PMagenta.txt#
{
  L0 = &0E2_MIN * -100
  &0SUB2_DH = &0SUB2_DH + L0
}

Var 0134, Link IOCARD_SW, Input 14     // #SC#MCP&EFIS_PMagenta.txt# INTERRUPTOR F
{
  IF V0134 = 1
  {
    &BATTERIE = SETBIT 0
    V0040 = 180    
    V0041 = 200    
    V0042 = 0    
    V0043 = 10    
    V0044 = 0    
    V0045 = 180    
    V0039 = 0    
    V0046 = 0    
  }
  ELSE
  {
    &BATTERIE = CLEARBIT 0
    V0040 = -999999    
    V0041 = -999999    
    V0042 = -999999    
    V0043 = -999999    
    V0044 = -999999    
    V0045 = -999999    
    V0039 = -999999    
    V0046 = -999999    
  }
}

Var 0135, name BATTERIE, Link FSUIPC_INOUT, Offset $5628, Length 2

Var 0136, name PM_MODO, Link FSUIPC_INOUT, Offset $04F4, Length 4

Var 0525, name P_ECAM_ENG, static, Link IOCARD_SW, Input 52, Type P     // SWITCHE PED ECAM ENG
{
  &P_ECAM_ENG = 0    
  &PM_MODO = 301    
}

Var 0526, name P_ECAM_STAT, static, Link IOCARD_SW, Input 53, Type P     // SWITCHE PED ECAM STAT
{
  &P_ECAM_STAT = 0    
  &PM_MODO = 302    
}

Var 0527, name P_ECAM_ELEC, static, Link IOCARD_SW, Input 49, Type P     // SWITCHE PED ECAM ELEC
{
  &P_ECAM_ELEC = 0    
  &PM_MODO = 303    
}

Var 0528, name P_ECAM_FUEL, static, Link IOCARD_SW, Input 50, Type P     // SWITCHE PED ECAM FUEL
{
  &P_ECAM_FUEL = 0    
  &PM_MODO = 304    
}

Var 0529, name P_ECAM_ECS, static, Link IOCARD_SW, Input 51, Type P     // SWITCHE PED ECAM ECS
{
  &P_ECAM_ECS = 0    
  &PM_MODO = 305    
}

Var 0530, name P_ECAM_HYD, static, Link IOCARD_SW, Input 46, Type P     // SWITCHE PED ECAM HYD
{
  &P_ECAM_HYD = 0    
  &PM_MODO = 306    
}

Var 0531, name P_ECAM_DRS, static, Link IOCARD_SW, Input 47, Type P     // SWITCHE PED ECAM DOORS
{
  &P_ECAM_DRS = 0    
  &PM_MODO = 307    
}

Var 0532, name P_ECAM_GEAR, static, Link IOCARD_SW, Input 48, Type P     // SWITCHE PED ECAM GEAR
{
  &P_ECAM_GEAR = 0    
  &PM_MODO = 308    
}

Var 0533, name P_ECAM_CANC, static, Link IOCARD_SW, Input 123, Type P     // SWITCHE PED ECAM FUEL
{
  &P_ECAM_CANC = 0    
  &PM_MODO = 318    
}

Var 0534, name P_ECAM_RCL, static, Link IOCARD_SW, Input 122, Type P     // SWITCHE PED ECAM HYD
{
  &P_ECAM_RCL = 0    
  &PM_MODO = 319    
}

Var 0137, name iocp_teclas

Var 0138, name teclado, Link IOCARD_KEYS, Device 3
{
  IF &teclado = 71     // menu
  {
    &k = 629    
  }
  IF &teclado = 79     // perf init
  {
    &k = 624    
  }
  IF &teclado = 78     // rte
  {
    &k = 625    
  }
  IF &teclado = 75     // des
  {
    &k = 628    
  }
  IF &teclado = 70     // legs
  {
    &k = 630    
  }
  IF &teclado = 67     // prog
  {
    &k = 633    
  }
  IF &teclado = 63     // n1 altn
  {
    &k = 634    
  }
  IF &teclado = 62     // fix
  {
    &k = 635    
  }
  IF &teclado = 77     // clb
  {
    &k = 626    
  }
  IF &teclado = 76     // crz
  {
    &k = 627    
  }
  IF &teclado = 69     // dep
  {
    &k = 631    
  }
  IF &teclado = 68     // hold
  {
    &k = 632    
  }
  IF &teclado = 66     // ENTER
  {
    &k = 13    
  }
  IF &teclado = 55     // Prev Pg
  {
    &k = 33    
  }
  IF &teclado = 54     // Next Pg
  {
    &k = 34    
  }
  IF &teclado = 7     // 0
  {
    &k = 48    
  }
  IF &teclado = 32     // 1
  {
    &k = 49    
  }
  IF &teclado = 31     // 2
  {
    &k = 50    
  }
  IF &teclado = 30     // 3
  {
    &k = 51    
  }
  IF &teclado = 24     // 4
  {
    &k = 52    
  }
  IF &teclado = 23     // 5
  {
    &k = 53    
  }
  IF &teclado = 22     // 6
  {
    &k = 54    
  }
  IF &teclado = 16     // 7
  {
    &k = 55    
  }
  IF &teclado = 15     // 8
  {
    &k = 56    
  }
  IF &teclado = 14     // 9
  {
    &k = 57    
  }
  IF &teclado = 8     // .
  {
    &k = 190    
  }
  IF &teclado = 2     // barra
  {
    &k = 191    
  }
  IF &teclado = 6     // +
  {
    &k = 107    
  }
  IF &teclado = 3     // Delete
  {
    &k = 46    
  }
  IF &teclado = 1     // Clr
  {
    &k = 8    
  }
  IF &teclado = 4     // Clr
  {
    &k = 32    
  }
  IF &teclado = 61     // A
  {
    &k = 65    
  }
  IF &teclado = 60     // B
  {
    &k = 66    
  }
  IF &teclado = 59     // C
  {
    &k = 67    
  }
  IF &teclado = 58     // D
  {
    &k = 68    
  }
  IF &teclado = 57     // E
  {
    &k = 69    
  }
  IF &teclado = 53     // F
  {
    &k = 70    
  }
  IF &teclado = 52     // G
  {
    &k = 71    
  }
  IF &teclado = 51     // H
  {
    &k = 72    
  }
  IF &teclado = 50     // I
  {
    &k = 73    
  }
  IF &teclado = 49     // J
  {
    &k = 74    
  }
  IF &teclado = 29     // K
  {
    &k = 75    
  }
  IF &teclado = 28     // L
  {
    &k = 76    
  }
  IF &teclado = 27     // M
  {
    &k = 77    
  }
  IF &teclado = 26     // N
  {
    &k = 78    
  }
  IF &teclado = 25     // O
  {
    &k = 79    
  }
  IF &teclado = 21     // P
  {
    &k = 80    
  }
  IF &teclado = 20     // Q
  {
    &k = 81    
  }
  IF &teclado = 19     // R
  {
    &k = 82    
  }
  IF &teclado = 18     // S
  {
    &k = 83    
  }
  IF &teclado = 17     // T
  {
    &k = 84    
  }
  IF &teclado = 13     // U
  {
    &k = 85    
  }
  IF &teclado = 12     // V
  {
    &k = 86    
  }
  IF &teclado = 11     // W
  {
    &k = 87    
  }
  IF &teclado = 10     // X
  {
    &k = 88    
  }
  IF &teclado = 9     // Y
  {
    &k = 89    
  }
  IF &teclado = 5     // Z
  {
    &k = 90    
  }
  IF &teclado = 56     // Linea 1L
  {
    &k = 112    
  }
  IF &teclado = 64     // Linea 2L
  {
    &k = 113    
  }
  IF &teclado = 72     // Linea 3L
  {
    &k = 114    
  }
  IF &teclado = 80     // Linea 4L
  {
    &k = 115    
  }
  IF &teclado = 88     // Linea 5L
  {
    &k = 116    
  }
  IF &teclado = 87     // Linea 6L
  {
    &k = 117    
  }
  IF &teclado = 86     // Linea 1R
  {
    &k = 118    
  }
  IF &teclado = 85     // Linea 2R
  {
    &k = 119    
  }
  IF &teclado = 84     // Linea 3R
  {
    &k = 120    
  }
  IF &teclado = 83     // Linea 4R
  {
    &k = 121    
  }
  IF &teclado = 82     // Linea 5R
  {
    &k = 122    
  }
  IF &teclado = 74     // Linea 6R
  {
    &k = 123    
  }
}

Var 0139, name k, Link SUBRUTINE
{
  IF &k <> 0
  {
    IF &k = &tempk
    {
      &offsetk = &k + &shift
      IF &shift = 0
      {
        &shift = 2048    
      }
      ELSE
      {
        &shift = 0    
      }
    }
    ELSE
    {
      &offsetk = &k    
      &tempk = &k    
    }
    &k = 0    
  }
}

Var 0140, name tempk

Var 0141, name shift

Var 0142, name offsetk, Link FSUIPC_INOUT, Offset $5428, Length 2     // CDU Functions

Var 0143, name fmcLeds, Link FSUIPC_INOUT, Offset $052C, Length 2     // FMC LEDs
{
  &OUTPUT2 = TESTBIT &fmcLeds ,0     // EXEC LED
  &OUTPUT1 = TESTBIT &fmcLeds ,1     // MSG LED
  &OUTPUT4 = TESTBIT &fmcLeds ,2     // FAIL
  &OUTPUT0 = TESTBIT &fmcLeds ,3     // OFST
}

Var 0144, name OUTPUT2, Link IOCARD_OUT, Device 3, Output 2     // FMC EXEC green led

Var 0145, name OUTPUT1, Link IOCARD_OUT, Device 3, Output 1     // FMC MSG amber led

Var 0146, name OUTPUT4, Link IOCARD_OUT, Device 3, Output 4     // FMC FAIL red led

Var 0147, name OUTPUT0, Link IOCARD_OUT, Device 3, Output 0     // FMC OFST amber led
 
Retour
Haut