UN SIMULATEUR DE BEECHCRAFT B200

UN SIMULATEUR DE BEECHCRAFT B200

Tutoriel pour rajouter un groupe de parc sur un avion

Dans ce tutoriel  nous allons voir comment rajouter un groupe de parc sur un avion pour éviter la décharge trop rapide de la batterie.

 

Le problème est posé.

Sur certains avions et notamment le B200 de FlightOne, lorsque l'interrupteur batterie est mis sur On sans que les génératrices soient en fonction, ce qui est le cas moteurs à l'arrêt, on a pas le temps de faire sa première checklist que déjà la batterie est à 17 volts et ne permet plus le démarrage des moteurs

On peut bien sûr utiliser une fonction de FSUIPC enregistré qui consiste à rendre la batterie non déchargeables mais ce n'est pas élégant.

Alors dans ce tutoriel je vais vous guider pour installer cela dans votre avion.

Ce qu'il vous faudra c'est une jauge de Doug Dawson à télécharger ici : https://www.douglassdawson.ca/dsd_p3d_battery_charger_x64.zip et que l'on mettra dans le panel.cfg de votre avion, préparer un interrupteur Input d'une carte IOC, modifier le code SIOC pour l'intégrer et rédiger un code Lua pour interfacer tout ce joli monde.

 

Comment cela fonctionne ?

 

La jauge est une dll qui crée une Lvar dans la liste des Lvars de votre avion, L: Batterycharger, cette jauge dans le panel n'affiche rien.

Quand cette Lvar est mise à 1, elle maintient la batterie à 24 volts et imite donc la charge d'un groupe de parc.

Pour mettre cette Lvar à 1, nous allons utiliser un interrupteur connecté à une input et recopier sa valeur dans un offset libre de Fsuipc, ensuite c'est cet offset qui sera "écouté" par le script LUA et qui, en cas de changement écrira la valeur de l'offset dans la Lvar,  simple non  ?

 

1ère Etape   Installer la jauge

 

Après décompression du zip livré par Doug Dawson, on se retrouve avec une Dll  dsd_p3d_battery_charger_x64.dll qu'il faut copier dans le répertoire Gauges de P3DV4.

Ensuite il faut modifier le panel.cfg de votre avion pour l'y intégrer sous la forme d'une ligne :

 

gauge60=dsd_p3d_battery_charger_x64!charger,  552,559,20,20 dans votre windows 0 par exemple

 

Au rechargement de P3DV4, si la gauge est opérationnelle vous devez avoir la Lvar L: BatteryCharger qui apparait dans la liste des Lvars, vérifiez avec l'édition de la liste des Lvars depuis FSCUIPC, je ne reprend pas ici la façon de faire vous devez savoir le faire maintenant.

 

2 ème étape

 

Reprenez votre code Sioc pour y intégrer à minima l'input du switch et la déclaration de l'offset libre qui sera écouté par Lua, chez moi çà donne çà :

 

Var 0165, name LVAR_ext_powSW, Link FSUIPC_INout, Offset $66D1, Length 1 // position du switch groupe de parc

 

Var 4060, name ext_power_SW, Link IOCARD_SW, device 1, Input 51    // inter pour connecter le groupe de parc
{
  &LVAR_ext_powSW = &ext_power_sw    // l'offset 66d1 prend la valeur du switch
}

A cette étape et après compilation il faut vérifier par la console sioc que l'offset 66D1 prend bien la valeur 1 quand l'inter est enclenché, c'est une étape de déboggage et de tests importante sinon galère

 

3 ème étape écriture du script LUA

 

A ce stade nous avons donc un inter qui fait changer la valeur d'un offset libre ( $66D1) et une Lvar ( L:BatteryCharger )

Il faut maintenant écrire ( ou compléter ) un script Lua qui va ranger la valeur de l'offset dans la Lvar

 

Dans ce script ( à la fin ) il faut écouter l'offset et s'il change lancer une fonction, on fait çà avec une ligne :

 

event.offset("66D1","UB","groupedeparc") -- écoute de l'offset interrupteur groupe de parc

 

event.offset c'est la commande d'écoute

66D1  c'est l'offset fsuipc à écouter

UB c'est la taille de l'offset     ( byte non signé )

groupedeparc c'est la fonction qui va être lancée quand l'offset change

 

Maintenant il faut écrire la fonction, elle sera placée au dessus de la ligne que l'on vient d'écrire


function groupedeparc()

  if ipc.readLvar('L:BatteryCharger')~=ipc.readUB(0x66D1) then
     ipc.writeLvar('L:BatteryCharger',ipc.readUB(0x66D1))
  end

end

Que fait-elle cette fonction écrite par nos soins ?

Eh bien quand elle est lancée, si la valeur de la Lvar L:BatteryCharger est différente de la valeur de 0x66D1 alors elle range par un ipc.writeLvar la valeur de l'offset 66D1 dans la Lvar  et c'est tout.

 

Dernière étape sauvegarder son script et le lancer automatiquement par FSUIPC

 

- On sauvegarde ce script avec une extension .lua dans le répertoire modules de P3DV4, celui où doit normalement se situer aussi le fsuipc.ini

- dans le fsuipc.ini on rajoute le script dans la section [AUTO] pour qu'il se lance

 

Les vérifications

 

Après avoir relancé toute la mécanique on prend l' iocp console de SIOC et on vérifie la variable de voltage de la battery normalement c'est l'offset $2834, si l'inter Master Battery est enclenché sans l'inter de Chargeur enclenché et moteurs éteints la valeur de tension batterie doit baisser et dès que l'on enclenche le chargeur, la tension doit remonter et osciller entre 23,99 et 24 volts.

 

Voilà un bon pas de franchi sur la compréhension de ces mécanismes d'interfaçage d'offset et de Lvars

 

Bonnes découvertes et n'oubliez pas de me faire part de vos éventuels soucis ou incompréhensions.

Dites vous que si vous ne comprenez pas c'est que j'ai mal expliqué

 

 

 

 

 

 

 



21/02/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