EFIS OC PMDG

Questions de programmation / Offset FSUIPC et IOCP

EFIS OC PMDG

Messagede johnbee » Mar 21 Déc 2010 11:52

Bonjour

J'ai un problème avec le code suivant (c'est le code fourni par OC avec le manuel de leur EFIS) :
Code: Tout sélectionner
[color=#800000]
Var 0546, name I_VOR1, Link IOCARD_SW, Input 36
{
  CALL &VOR1
}

Var 0548, name I_ADF1, Link IOCARD_SW, Input 37
{
  CALL &ADF1
}
Var 0997, name VOR1, Link SUBRUTINE
{
  IF &I_VOR1 = 1
  {
    IF &I_ADF1 = 0
    {
      &TECLAS = 89   
      &TECLAS = 0   
    }
  }
  IF &I_VOR1 = 0
  {
    IF &I_ADF1 = 0
    {
      &TECLAS = 90   
      &TECLAS = 0   
    }
  }
}

Var 0996, name ADF1, Link SUBRUTINE
{
  IF &I_ADF1 = 1
  {
    IF &I_VOR1 = 0
    {
      &TECLAS = 89   
      &TECLAS = 0   
      &TECLAS = 89   
      &TECLAS = 0   
    }
  }
  IF &I_VOR1 = 0
  {
    IF &I_ADF1 = 0
    {
      &TECLAS = 90   
      &TECLAS = 0   
      &TECLAS = 90   
      &TECLAS = 0   
    }
  }
}[/color]



Les codes claviers sont respectivement :
- 89 = increase NAVL CTRL-SHIFT-1
- 90=decrease NAVL CTRL-1
Les assignations des touches clavier sont correctes côté PMDG

Ce qui ne marche pas c'est le déroulé :
- switch basculé vers le haut : pris correctement en compte, SIOC bascule sur VOR1
- switch basculé vers le le milieu (off) : pas pris en compte
- switch basculé vers le bas : pris en compte SIOC bascule vers ADF1
- switch basculé vers le milieu ou vers le haut : pas pris en compte, il reste virtuellement scotché en bas.


etonneyeux
johnbee
 

Re: EFIS OC PMDG

Messagede jéjé07 » Mar 21 Déc 2010 11:57

Salut Jean

Robert a eu le même soucis que toi la dessus essais ce code la
Code: Tout sélectionner
// **************************       EFIS      **************************************


//  IOCP

Var 0077, name METERS, Link IOCP, Offset 3622

Var 0078, name FPV, Link IOCP, Offset 3568

Var 0079, name VOR1STWICH, Link IOCP, Offset 3835

Var 0080, name VOR2STWICH, Link IOCP, Offset 3836

Var 0081, name DISP_SCALE, Link IOCP, Offset 3833

Var 0082, name MITEM_SHOW, Link IOCP, Offset 3834  // boutons du bas

Var 0083, name EFIS_MODE, Link IOCP, Offset 3832

Var 0084, name MFD_CENTERED, Link IOCP, Offset 3837

Var 0085, name BaroSetting, Link IOCP, Offset 73

Var 0086, name DH_DEC, Link IOCP, Offset 1798

Var 0087, name DH_INC, Link IOCP, Offset 1799


// EFIS Switches CAPTAIN


Var 0088, name I_5, Link IOCARD_SW, Device 11, Input 0
{
  IF &I_5 = 1
  {
    &DISP_SCALE = 1   
  }
}

Var 0089, name I_10, Link IOCARD_SW, Device 11, Input 1
{
  IF &I_10 = 1
  {
    &DISP_SCALE = 2 
  }
}

Var 0090, name I_20, Link IOCARD_SW, Device 11, Input 2
{
  IF &I_20 = 1
  {
    &DISP_SCALE = 3   
  }
}

Var 0091, name I_40, Link IOCARD_SW, Device 11, Input 3
{
  IF &I_40 = 1
  {
    &DISP_SCALE = 4 
  }
}

Var 0092, name I_80, Link IOCARD_SW, Device 11, Input 4
{
  IF &I_80 = 1
  {
    &DISP_SCALE = 5   
  }
}

Var 0093, name I_160, Link IOCARD_SW, Device 11, Input 5
{
  IF &I_160 = 1
  {
    &DISP_SCALE = 6   
  }
}

Var 0094, name I_320, Link IOCARD_SW, Device 11, Input 6
{
  IF &I_320 = 1
  {
    &DISP_SCALE = 7 
  }
}

Var 0095, name I_640, Link IOCARD_SW, Device 11, Input 7
{
  IF &I_640 = 1
  {
    &DISP_SCALE = 8 
  }
}

Var 0096, name I_APP, Link IOCARD_SW, Device 11, Input 9
{
  IF &I_APP = 1
  {
    &EFIS_MODE = 1   
  }
}

Var 0097, name I_VOR, Link IOCARD_SW, Device 11, Input 10
{
  IF &I_VOR = 1
  {
    &EFIS_MODE = 2   
  }
}

Var 0098, name I_MAP, Link IOCARD_SW, Device 11, Input 11
{
  IF &I_MAP = 1
  {
    &EFIS_MODE = 3   
  }
}

Var 0099, name I_PLN, Link IOCARD_SW, Device 11, Input 12
{
  IF &I_PLN = 1
  {
    &EFIS_MODE = 4   
  }
}

Var 0100, name I_S1, Link IOCARD_SW, Device 11, Input 27, TYPE P
{
    &MITEM_SHOW = CHANGEBIT 0 &I_S1     
}
Var 0101, name I_S2, Link IOCARD_SW, Device 11, Input 28, TYPE P
{
    &MITEM_SHOW = CHANGEBIT 1 &I_S2     
}

Var 0102, name I_S3, Link IOCARD_SW, Device 11, Input 29, TYPE P
{
    &MITEM_SHOW = CHANGEBIT 2 &I_S3     
}

Var 0103, name I_S4, Link IOCARD_SW, Device 11, Input 30, TYPE P
{
    &MITEM_SHOW = CHANGEBIT 3 &I_S4     
}

Var 0104, name I_S5, Link IOCARD_SW, Device 11, Input 31, TYPE P
{
    &MITEM_SHOW = CHANGEBIT 4 &I_S5     
}

Var 0105, name I_S6, Link IOCARD_SW, Device 11, Input 32, TYPE P
{
    &MITEM_SHOW = CHANGEBIT 5 &I_S6     
}

Var 0106, name I_S7, Link IOCARD_SW, Device 11, Input 33, TYPE P
{
    &MITEM_SHOW = CHANGEBIT 6 &I_S7     
}

Var 0107, name I_SR1, Link IOCARD_SW, Device 11, Input 34, TYPE P // Bouton FPV
{
    &FPV = &I_SR1
}

Var 0108, name I_SR2, Link IOCARD_SW, Device 11, Input 38, TYPE P // Bouton Meters
{
   &METERS = &I_SR2
}

Var 0109, name I_BARONSW, Link IOCARD_SW, Device 11, Input 22
{
  IF &I_BARONSW = 1
  {
    &BaroSetting = 1013   
  }
}

Var 0110, name I_MINSW, Link IOCARD_SW, Device 11, Input 25

Var 0111, name I_VOR1, Link IOCARD_SW, Device 11, Input 36
{
  IF &I_VOR1 = 1
  {
    &VOR1STWICH = 1   
  }
  ELSE
  {
    IF &I_ADF1 = 1
    {
      &VOR1STWICH = 2   
    }
    ELSE
    {
      &VOR1STWICH = 0   
    }
  }
}

Var 0112, name I_ADF1, Link IOCARD_SW, Device 11, Input 37
{
  IF &I_ADF1 = 1
  {
    &VOR1STWICH = 2   
  }
  ELSE
  {
    IF &I_VOR1 = 1
    {
      &VOR1STWICH = 1   
    }
    ELSE
    {
      &VOR1STWICH = 0   
    }
  }
}

Var 0113, name I_VOR2, Link IOCARD_SW, Device 11, Input 18
{
  IF &I_VOR2 = 1
  {
    &VOR2STWICH = 1   
  }
  ELSE
  {
    IF &I_ADF2 = 1
    {
      &VOR2STWICH = 2   
    }
    ELSE
    {
      &VOR2STWICH = 0   
    }
  }
}

Var 0114, name I_ADF2, Link IOCARD_SW, Device 11, Input 19
{
  IF &I_ADF2 = 1
  {
    &VOR2STWICH = 2   
  }
  ELSE
  {
    IF &I_VOR2 = 1
    {
      &VOR2STWICH = 1   
    }
    ELSE
    {
      &VOR2STWICH = 0   
    }
  }
}

Var 0115, name E_BARO, Link IOCARD_ENCODER, Device 11, Input 20, Aceleration 1, Type 2
{
  L0 = &E_BARO * -1
  &BaroSetting = LIMIT 948 ,1084 ,L0
}

Var 0116, name E_MIN, Link IOCARD_ENCODER, Device 11, Input 23, Aceleration 1, Type 2
{
  L0 = &E_MIN * -1
  IF L0 > 0
  {
    &DH_INC = 10   
  }
  ELSE
  {
    IF L0 < 0
    {
      &DH_DEC = 10   
    }
  }
}


amicalement gg
jéjé07
 

Re: EFIS OC PMDG

Messagede johnbee » Mar 21 Déc 2010 12:30

Super !! merci affiche
Il faut que je modifie quelque chose au niveau du paramétrage IOCP ?
Les valeurs d'offset sont reconnues par PMDG ?

J'essaye ce soir grandsoleil
johnbee
 

Re: EFIS OC PMDG

Messagede jéjé07 » Mar 21 Déc 2010 13:08

C'est un script efis pour orion apres j'essais de regarder pour le pmdg dans le sioc tu ne change rien mais verifie quand meme les offssets .

Je te conseille de mettre les offsets que tu as pour le pmdg que tu mets dans mon scripts

teste et dis moi
jéjé07
 

Re: EFIS OC PMDG

Messagede johnbee » Mar 21 Déc 2010 14:45

Les offset PMDG...that's the question gratgrat

J'ai trouvé sur le net les offset pour les encodeurs MAP/PLN/... et RANGE (5/10/25...) mais pas pour le reste, du coup je pensait passer par des raccourcis claviers.


Je pense que le code donné par OC n'est pas le bon, je vais essayer une autre séquence en y allant pas à pas... car devrait marcher cligneoeil

(PMDG gère bizarrement les rac claviers pour cet interrupteur mais une fois qu'on a décodé cette logique, il suffira de la sioquiser)
je poste qq chose ce soir si j'ai le temps de tester ou demain
johnbee
 

Re: EFIS OC PMDG

Messagede johnbee » Mar 21 Déc 2010 14:46

johnbee a écrit:Les offset PMDG...that's the question gratgrat

J'ai trouvé sur le net les offset pour les encodeurs MAP/PLN/... et RANGE (5/10/25...) et ca marche nickel, mais pas pour le reste, du coup je pensait passer par des raccourcis claviers.


Je pense que le code donné par OC n'est pas le bon, je vais essayer une autre séquence en y allant pas à pas... car devrait marcher cligneoeil

(PMDG gère bizarrement les rac claviers pour cet interrupteur mais une fois qu'on a décodé cette logique, il suffira de la sioquiser)
je poste qq chose ce soir si j'ai le temps de tester ou demain
johnbee
 

Re: EFIS OC PMDG

Messagede johnbee » Mer 22 Déc 2010 01:35

Bon ce soir grosse prise de tete sur l'efis !... gratgrat

Je suis parti des offsets pmdg publiés sur le net, j'ai reussi par hasard a faire fonctionner le vor/adf de gauche mais pas celui de droite

L'offset du vor/adf gauche c'est $6206, quand je lui passe la valeur 4 il descend sur adf et quand je lui passe 5, il modifie l'offset $6208 qui gere le rotatif map/pln/vor... ecroulerire J'essaye d'autres valeurs et soit il descend sur adf, soit il fait tourner le rotatif...jamais il monte sur vor

Je VAIS y arriver tapebaton





Jean
johnbee
 

Re: EFIS OC PMDG

Messagede johnbee » Jeu 23 Déc 2010 00:23

Question pour les trapus lunettesnoires

J'ai l'offset pmdg suivant :

offset 620b

Bit 0 =1 EFIS TERR
Bit 1 =1 EFIS POS
Bit 2 =1 EFIS DATA
Bit 3 =1 EFIS ARPT
Bit 4 =1 EFIS WPT
Bit 5 =1 EFIS STA
Bit 6 =1 EFIS WXR

Et j'ai fait le code suivant qui ne marche pas gratgrat

Var 0240, Link FSUIPC_INOUT, Offset $620B, Length 2

Var 0242, name EFC_STASwitch, Link IOCARD_SW, Device 20, Input 28     // EFIS Captain STA Switch
{
 IF &EFC_STASwitch = 1
  {
     v0240 = CHANGEBIT 5 1
  }
 ELSE
  {
     v0240 = CHANGEBIT 5 0
  }

}


C'est la longuer de l'offset (2) qui n'est pas la bonne ? Comment la determiner ?


Merci de votre aide !
johnbee
 

Re: EFIS OC PMDG

Messagede stevelep » Jeu 23 Déc 2010 00:31

Pour la longueur c'est peut-être 1, tu dois simplement essayer ...

Ensuite tu peux tester les bits un par un avec la console (bouton dans le SIOC)
Tu va sur la variable 0240 et tu lui envoie des valeurs 2 4 8 16 32 ...
tu verras que ca va mettre les differents bit sur 1

J'aurais mis comme code

IF &EFC_STASwitch = 1
{
v0240 = SETBIT 5
}
ELSE
{
v0240 = CLEARBIT 5
}

ou plus simplement:

{
v0240 = CHANGEBIT 5 &EFC_STASwitch
}

sans IF / ELSE
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: EFIS OC PMDG

Messagede johnbee » Jeu 23 Déc 2010 09:21

merci affiche

Je vais changer la longueur de l'offset et faire un essai ce soir
johnbee
 

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 35 invités