UN SIMULATEUR DE BEECHCRAFT B200

UN SIMULATEUR DE BEECHCRAFT B200

Comment gérer les Ice Vannes sur le B200 Flight One

Si vous avez lu mes 2 tutos sur la façon d'interfacer des Lvars avec des offsets Fsuipc vous savez déjà faire pas mal de choses mais pour gérer le système Ignition il manque encore un artifice de programmation c'est à dire la possibilité de lancer des contrôles Fsuipc par script LUA.

Que sont les contrôles ?

 

Petite révision

 

Vous connaissez sûrement les Offsets de Fsuipc, en plus de ces offsets il y a une liste de contrôles. Ce sont ces contrôles que l'on voit dans la fenêtre FSUIPC quand on veut programmer une touche par exemple.

La liste de ces contrôles est fourni avec Fsuipc dans un document nommé Revised_List_of_Fsx_Controls.pdf, ces contrôles vont de 65537 à 66887.

Regardons dans la liste ces 2 lignes :   KOHLSMAN DEC 65884
                                                                 KOHLSMAN INC 65883

 Elles nous indiquent que pour incrémenter le baro de l'altimètre il faut lancer le contrôle 65883 et 65884 pour décrémenter

 

Pour faire cela à partir de Sioc , il faut déclarer un offset $3110 qui servira à loger le code de la commande par exemple

 

Var 0123, name fs_commande, Link FSUIPC_OUT, Offset $3110, Length 4    puis lancer le contrôle souhaité, derrière un encodeur par exemple

 

Var 0504, name QNH_ROT, Link IOCARD_ENCODER, Input 34, Aceleration 2, Type 2     // Encodeur QNH by Nico entrée 34
{
 IF &BATTERY = 1     // Si général on
 {
   IF &AVNCS = 1     // Si avionics on
   {
      L0 = &QNH_ROT    
      IF L0 > 0     // à droite
      {
         &fs_commande = 65883
         &fs_commande = DELAY 0 ,10     // raz après 100 msec
      }
      ELSE
      {
        IF L0 < 0     // à gauche
        {
         &fs_commande = 65884
         &fs_commande = DELAY 0 ,10
        }
      }
   }
 }
}

Voilà comment on fait pour lancer un contrôle Fsuipc par Sioc.

 

Maintenant voyons comment lancer ces contrôles non plus par SIOC mais par un script LUA et pourquoi c'est utile dans le problème qui nous occupe à savoir gérer les inters Ice Vannes, les voyants d'alarme et surtout la baisse du torque lorsqu'elles sont enclenchées.

 

D'abord on écoute les variables libres déclarées dans sioc

 

event.offset("66D2","UB","Eng_Ice_van")  -- écoute de l'offset switch R eng ice vanne  
event.offset("66D3","UB","Eng_Ice_van")  -- écoute de l'offset switch L eng ice vanne 

 

On voit donc par ces lignes que si l'offset 66D2 change, cela lance la fonction Eng_Ice_van, cette fonction je l'ai écrite au dessus des lignes d'écoutes  ( rappel ,  pas en dessous )

 

Et c'est dans cette fonction que je lance une commande ipc.control(66489,1) qui met 1 dans le controle pour l'activer ou 0 si l'inter est off

 

function Eng_Ice_van()
       
  if ipc.readLvar('L:B200_icevane_right')~=ipc.readUB(0x66D2) then  -- si la Lvar est différente de l'inter
    
    ipc.writeLvar('L:B200_icevane_right',ipc.readUB(0x66D2)) -- j'ecris la valeur de l'inter dans la Lvar
    if ipc.readLvar('L:B200_icevane_right') == 1 then -- si la Lvar est égale à 1
        ipc.control(66489,1)  -- je lance le controle 66489 Fsuipc à 1 , c'est le set pour eng ice 2 moteur droit
    else
        ipc.control(66489,0)
    end         
    ipc.writeLvar('L:B200CREngAntiIce',ipc.readUB(0x66D2))
    
  end
 
  if ipc.readLvar('L:B200_icevane_left')~=ipc.readUB(0x66D3) then  -- si la Lvar est différente de l'inter
    
    ipc.writeLvar('L:B200_icevane_left',ipc.readUB(0x66D3)) -- j'ecris la valeur de l'inter dans la Lvar
    if ipc.readLvar('L:B200_icevane_left') == 1 then -- si la Lvar est égale à 1
        ipc.control(66488,1)  -- je lance le controle 66488 Fsuipc à 1 , c'est le set pour eng ice 1 moteur gauche
    else
        ipc.control(66488,0)
    end         
    ipc.writeLvar('L:B200CREngAntiIce',ipc.readUB(0x66D3))
    
  end
   
end

Voilà donc un complément de programmation LUA qui va vous permettre avec l'instruction ipc.control de lancer des contrôles FSUIPC et dans le cas présent de gérer automatiquement les inters Ice vannes en concordance avec le panel virtuel du B200 et surtout de faire baisser automatiquement le torque quand elles sont déployées car le simple fait de passer les inters à On sans lancer le contrôle ne le permet pas et ce n'est donc pas réaliste.

 

Remarque importante :  il n'y a toujours pas de boucle while dans le script Lua

Je rappelle qu'il faut éviter cela,  on écoute les Lvars ou les Offsets et on lance des fonctions quand ils changent

 

Bonne découverte

 

 

 



04/03/2019
2 Poster un commentaire

A découvrir aussi


Ces blogs de Loisirs créatifs pourraient vous intéresser

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 121 autres membres