Résultats de la recherche (Page 2) / Pilote-Virtuel.com - Forum de simulation aérienne

Vous n'êtes pas identifié(e).

#26 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 20/11/2014 07:26

@ Bo : Je vais déjà essayer de maîtriser un module radio ... C'est sûr que plusieurs modules c'est pratique en plus de faire un bel effet ... wink ... Mais je reste humble, et dans mes limites techniques pour l'instant !

@ Patrick : Je tiens à arriver au  bout ... Mais ça va être plus long que prévu ! Hier soir, au lieu de coder, j'ai essayé de réfléchir à l'arborescence de ce que je voulais mettre en place, histoire de ne pas écrire des tas de lignes pour rien ...

Donc en gros :

1- Lorsque le Module radio est initialisé, je dois mémoriser la position des deux sélecteurs. (pour moi, par défaut, COM1 et NAV1)
2- Lorsque je mets l'avionique en service, je dois synchroniser COM1 et NAV1 les deux sélecteurs précédemment mémorisés de FSX vers le module radio.
3- Lorsque je change un sélecteur de position, je dois mémoriser sa nouvelle position et synchroniser l'affichage en fonction (en tenant compte du second sélecteur, et de l'affichage associé)

Vu que moi je n'ai qu'un seul module ( dédicace à Bo wink ), je garde mon sélecteur du haut en COM1, puis je jongle avec le  second sélecteur pour les autres fonctions. Je pense me focaliser sur ce fonctionnement dans un premier temps, histoire d'essayer d'arriver à un résultat.

Si c'est ok, je n'aurai plus qu'à adapter le code dans l'autre sens ...

Voilà... il n'y a plus qu'à laugh blink ça a l'air tout facile, dit comme ça ! solv_gif

J'entre en mode codeur (mais modeste,hein !) wink Je crois que je vais pondre un truc qui va pas fonctionner, et Patrick va devoir s'arracher les cheveux pour m'aider ... wacko

#27 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 19/11/2014 16:24

Bonjour Bo,

Sois rassuré, je ne tienspas à lâcher le morceau ! Du moins, tant que Patrick et Philippe ont la patience de me donner les billes nécessaires ! laugh

Amitiés.

#28 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 19/11/2014 16:05

Patrick,

Je te ferai un petit topo sur le DME (que je n'ai pas encore utilisé) et le XPDR.

Quant à la logique de Saïtek, peut-être est-ce en vue de cockpits bien "garnis" avec de nombreux modules radio, ce qui permet d'en dédier un aux COM, un aux NAV, etc... ?

Amtiés.

#29 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 19/11/2014 14:10

Bonjoour Patrick,

Merci pour le code corrigé et expliqué; C'est vraiment une aide très précieuse ...

Je n'ai rien pu faire hier faute de temps. De plus, j'ai pensé à quelques détails concernant mon approche de la gestion du Radio Panel :

En partant du principe que la ligne de code qui permet de configurer son affichage tient compte des 4 valeurs (2 Active / 2 stand-by) :

s=string.char(0,241,v1,v2,v3,v4,241,v5,v6,v7,v8,241,v9,v10,v11,v12,241,v11,v12,v13,v14,v15,0,0)

Donc, si à l'aide des bouton rotatifs du haut, je modifie la Com1 Stand-By, je dois avant tout lire les valeurs Com1 active, nav1 active et nav2 stand-by, pour pouvoir les réutiliser dans la fameuse ligne de commande, sans les modifier.

Cela implique que je dois savoir sur quelles position sont mes deux selecteurs (com1, com2, ...) pour pouvoir connaître le format des infos à passer. Il me faudrait donc initialiser deux variables globales indiquant l'état des deux sélecteurs.

A mettre en oeuvre avec ton code (après lecture plus pointue et compréhension !)

Amitiés.
Et encore merci pour le temps consacré.
Olivier.

#30 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 18/11/2014 09:17

Bonjour Philippe,

J'espère que vous passez de bonnes vacances ...

Amitiés.

#31 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 18/11/2014 07:47

Bonjour Patrick,

J'ai perdu beaucoup de temps à essayer de mettre place une boucle pour traiter les infos à envoyer au radiopanel après avoir mis en route l'avionique.

En gros ce que je voulais faire :

- Création d'un array avec la valeur des offsets désirés (par ex com1, com1stb, com2 et com2 stb)
- une boucle : Pour chaque valeur dans l'array, traitement de celui-ci et génération des variables.
- écriture des variables dans le module Saïtek

Tout cela dans le but de minimiser le code et les répétitions.

Voici ce que j'avais imaginé, et qui bien entendu ne fonctionne pas. Mais le principe y est :

ComArray = {ipc.readUW(0x034E), ipc.readUW(0x034E), ipc.readUW(0x3118),ipc.readUW(0x311C)}

for i, v in ipairs(ComArray) do
    ipc.log(i,v)
    -- Conversion en HEX
       setval = DEC_HEX(v)
    -- Extraction du 1er chiffre et conversion "saïtek"
    ipc.log(string.sub(setval, 1, 1))
    v[i] = 240 + tonumber(string.sub(setval, 1, 1))
    -- Extraction du 2eme chiffre et conversion "saïtek"        
    ipc.log(string.sub(setval, 2, 2))
    v[i] = 208 + tonumber(string.sub(setval, 2, 2))
    -- Extraction du 3eme chiffre et conversion "saïtek"
    ipc.log(string.sub(setval, 3, 3))
    v[i] = 240 + tonumber(string.sub(setval, 3, 3))
    -- Extraction du 4eme chiffre et conversion "saïtek"
    ipc.log(string.sub(setval, 4, 4))
    v[i] = 240 + tonumber(string.sub(com1, 4, 4))   
end

-- Définition de la variable s : Valeurs à écrire dans le module Saïtek
s=string.char(0,241,v1,v2,v3,v4,241,v5,v6,v7,v8,241,v9,v10,v11,v12,241,v11,v12,v13,v14,v15,0,0)
       
-- Envoi des valeurs dans le module Saïtek
com.writefeature (devradio, s, wrfradio)
end

N'y arrivant pas, j'ai donc écrit ceci, qui fonctionne parfaitement :

[Spoiler]

Ce code me semble très lourd et répétitif, même s'il a le mérite d'être"simple". En le collant ici, je viens de tilter que je pourrais appeler la fonction avec des paramètres, comme ceci :

RadioInit(com1,com1stb)

Après réflexion, la boucle n'était peut-être pas forcément une très bonne idée pour la suite. Je vais tester ça ! (ainsi que le passage de la fréquence Stand-by à Active) ... Je suis ambitieux aujourd'hui ! wink

Il est aussi temps que je note précisément ce que je veux faire avec ce module Radio et les interactions que cela engendre avec FSX, pour ne pas partir dans tous les sens ...

Au plaisir de lire ton avis sur tout ça ...

PS : Je pensais t'avoir posé la question, mais je ne la retrouve pas : je reviens sur les valeurs retournées par le module. Qui sont l'addition de plusieurs bits. Moi j'étais parti sur la somme de ces bits, et toi tu en as sélectionné un. Comment détermines-tu, pour une valeur, le bit qui est réellement concerné par l'action ?

#32 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 17/11/2014 10:08

Bonjour Patrick,

Merci pour tes explications. Bon, finalement, je n'étais pas si loin du but ! ça me rassure un peu...

Mes deux bourdes :

- string.sub(test, 1) au lieu de string.sub(test, 1, 1) ... Lecture inattentive de ma part. Et le pire c'est que d'ordinaire, je mets des ipc.display, des ipc.log, ou des MsgBox dans d'autres cas ... Pourquoi ne l'ais-je pas fait hier ? Mystère !

- J'avais déjà utilisé tonumber() dans mon code, mais sans succès. Par exemple, je faisais :

tonumber(v1) au lieu de tonumber(string.sub(test, 1, 1)). Je faisais une conversion après ... Mais pour moi cela revenait au même ...

Voici donc un code qui fonctionne parfaitement (en plus d'être considérablement simplifié !)

[Spoiler]

Je suis en train de programmer ça pour l'initialisation du module Saïtek quand le switch "Avionic" est basculé sur OFF. Essais ce soir ....

#33 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 16/11/2014 18:30

une bonne partie de la journée à grenouiller sur le web pour un résultat décevant.

Objectif ? Lire la fréquence COM1 de FSX pour l'afficher sur le Radio Panel.

La lecture :

com1_frq = ipc.readUW(0x034E)

Me donne une valeur Décimale.  Alors je la convertis grâce à la fonction ci-dessous (pas de moi ...)

function DEC_HEX(IN)
    local B,K,OUT,I,D=16,"0123456789ABCDEF","",0
    while IN>0 do
        I=I+1
        IN,D=math.floor(IN/B),math.mod(IN,B)+1
        OUT=string.sub(K,D,D)..OUT
    end
    return OUT
end

Du coup j'exécute la commande :

test = DEC_HEX(com1_frq)

J'obtiens dans mon exemple, 3425. Ce qui est cohérent, puisque le premier chiffre est implicitement 1.
Donc la fréquence que j'obtiens ainsi est 134,25 qui est bien celle affichée sur le com1 de FSX.

là où je sèche complètement, c'est comment injecter ces valeurs dans cette ligne de commande, représentées ici par v1,v2,v3,v4 :

s=string.char(0,241,v1,v2,v3,v4,241,241,209,241,241,242,242,210,242,242,243,243,211,243,243,0,0)

car quoi que je fassed, j'obtien un message d'erreur :

[E] *** LUA Error: ...\Microsoft Flight Simulator X\Modules\RadioPanel.lua:134: bad argument #3 to 'char' (number expected, got nil)

Très naîvement, j'ai testé ce code, où test est la valeur extraite (3425). Il va de soit qu'en plus de faire de très nombreuses et à mon avis superflues lignes de code, la valeur v1 en l'état est refusée dans le string.char ...

if string.sub(test, 1) == 0 then
                v1 = 240
            elseif string.sub(test, 1) == 1 then
                v1 = 241
            elseif string.sub(test, 1) == 2 then
                v1 = 242
            elseif string.sub(test, 1) == 3 then
                v1 = 243
            elseif string.sub(test, 1) == 4 then
                v1 = 244
            elseif string.sub(test, 1) == 5 then
                v1 = 245
            elseif string.sub(test, 1) == 6 then
                v1 = 246
            elseif string.sub(test, 1) == 7 then
                v1 = 247
            elseif string.sub(test, 1) == 8 then
                v1 = 248+0
            elseif string.sub(test, 1) == 9 then
                v1 = 249
            end

Tout ça pour dire que j'y travaille ... c'est pas brillant, mais je creuse ...
Pour aujourd'hui je me mets en stand-by ... je n'y vois plus clair, et toutes ces infos lues aujourd'hui se mélangent lamentablement !

Amitiés.

#34 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 16/11/2014 11:23

laugh=8

Non non, je te rassure ! Les drivers Saïtek ont été virés sur le champ et SPAD est inactif ! Je sais que je suis un newbee de base, mais quand même !!! laugh

Ceci dit, tu as raison, on ne sait jamais ... Dans un grand moment de fatigue ...Ou le nez dans le guidon ...

Passe un bon dimanche, et passe quand tu peux !

#35 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 15/11/2014 23:13

Bonsoir Patrick,

Le rouge de la honte me monte aux joues ! Au cours de mes essais sur les LEDS, je me suis demandé si FSX n'écrasait pas mon paramétrage, alors que je fais tous mes tests avec mon C172 à train fixe ... argh ! Si.

Au premier vol chargé avec le beech baron par défaut, les trois leds vertes s'allument et restent allumées ...

En attendant, tes premiers essais d'affichage sont plutôt bons. As-tu essayé d'afficher une fréquence réelle sur un des afficheurs (ex : 122.05 en active et 122.25 en stand-by  sur Com1 sur l'afficheur du haut)?

Oui j'affiche ces fréquences avec ces deux lignes de code :

s=string.char(0,240,240,208,240,240,241,241,209,241,241,242,242,210,242,242,243,243,211,243,243,0,0)
com.writefeature (devradio, s, wrfradio)

Explications des valeurs :

Code           Display
0-9          0-9
10-15      <blank>
This repeats in modulo 16 until a character code of 207.

208-217        0.-9. (decimal dot set)
218-223        .
224-239        -
240-248        0-9
250-255        <blank>

En revanche, Via le bouton du ACT/STBY, je ne parviens à les intervertir ...

C'est clair qu'on n'est pas sortis de l'auberge, et que je vais ramer encore quelques heures. Maisc'est franchement passionant ...

Encore, merci. Amitiés.

#36 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 15/11/2014 16:07

Patrick,

J'ai testé ton script concernant les leds. Résultat :

Quand RED s'affiche, elles flashent rouge puis séteignent.
Quant GREEN s'affiche, elles flashent vert puis s'éteignent
OFF s'affiche, tout est déjà éteint.

Quant à ton script RadioPanel.lua ... Il fonctionne parfaitement. Du coup, si j'ai bien compris la conversion de la valeur en bit grâce à ta méthode, j'avoue ne pas saisir ce qui te permet de déterminer que dans le cas ou 2 bits sont modifiés pour un bouton, lequel des deux concerne l'action en cours ?

Erratum : Les boutons de sélection de fréquences ne fonctionnent pas à tous les coups. Cela dépend de la position du sélecteur (Com1, com2 ...)

Edit : a l'aide de ton script, et avec le code concernant les leds, j'ai pu afficher des valeurs pour COM1.

Ce code :

function TLS_COM1()
    testVar = ipc.readUD(0x3358)
    if logic.And(testVar,1) ~= 0 then
        ipc.display('com1_haut',10)
        devradio = ipc.get("devradio")
        wrfradio = ipc.get("wrfradio")
        s=string.char(0,242,240,208,240,240,241,241,209,241,241,242,242,210,242,242,243,243,211,243,243,0,0)
        com.writefeature (devradio, s, wrfradio)
        ipc.log('com1_haut')
    end
end

Donne ceci :

[img align=c]http://www.fsfiles.org/flightsimshotsv2/images/2014/11/15/CoM2l.jpg[/img]

#37 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 15/11/2014 12:20

Bonjour Patrick,

Pendant que je t'ai sous la main pour effectuer les tests, peux-tu me dire si tu allumes les Led en rouge et vert à la fois (valeur 63 pour le deuxième octet) celles-ci changent-elles réellement de couleur?  (Peut-être en ambre).

Je viens de faire le test. La couleur dominante est le vert, et un semblant de rouge (ambre) très faible ...
Précision complémentaire : Les leds s'allument les temps d'une boucle. La commande en elle même ne fonctionne pas comme un interrupteur ON/OFF

Je teste le reste cet après midi.

Amitiés, et bon week-end.

#38 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 14/11/2014 17:17

@ Pat :

Tu m'en vois très heureux car sans matériel pour pouvoir tester (malgré la proposition de Phillipe), j'en étais resté aux conjectures.

C'est agaçant !!! Même sans le matériel tu y arrives ... solv_gif ...
Moi je l'ai sous la main et je rame pour allumer trois pauvres leds ! merlot

#39 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 14/11/2014 17:12

@ Pat :

Mon RadioPanel.lua ne pouvait pas fonctionner, et pour cause ! Les valeurs testées étaient erronées ... castet

Je m'étais basé sur un document déjà cité ici, et trouvé sur le forum de Pete. Du coup, un utilisant les logs de fsX, plus la méthode de la calculatrice ( ... merci ! ...) j'ai pu faire un too des valeurs à scanner :

Bouton        Valeur        Bit

Commandes  du haut       
Com1        129            0+7        2^0 + 2^7 = 1 + 129 = 129
Com2        130            1+7        2^1 + 2^7 =    2 + 128 = 130
Na1            132            2+7        2^2 + 2^7 =    4 + 128 = 132
Nav2                136            3+7        2^3 + 2^7 =    8 + 128 = 136
Adf            144            4+7        2^4 + 2^7 = 16 + 128 = 144
Dme            160            5+7        2^5 + 2^7 = 32 + 128 = 160
XPDR                192            6+7        2^6 + 2^7 = 64 + 128 = 192
Outer ho            524417        1+7+19    2^1 + 2^7 + 2^19 = 1 + 128 + 524288 = 524417
Outer aho       262273        1+7+18    2^1 + 2^7 + 2^18 = 1 + 128 + 262144 = 262273
Inner ho            65665        1+7+16    2^1 + 2^7 + 2^16 = 1 + 128 + 65536 = 65665
Inner aho            131201        1+7+17    2^1 + 2^7 + 2^17 = 1 + 128 + 131072 = 131201
StdBy        16576        6+7+14    2^6 + 2^7 + 2^14 = 64 + 128 + 16384 = 16576

Commandes du bas
Com1        129            0+7        2^0 + 2^7 = 1 + 128 = 129
Com2         257            0+8        2^0 + 2^8 = 1 + 256 = 257
Na1            513            0+9        2^0 + 2^9 = 1 + 512 = 513
Nav2                1025                0+10        2^0 + 2^10 = 1 + 1024 = 1025
Adf            2049                0+11            2^0 + 2^11 = 1 + 2048 = 2049
Dme            4097                0+12     2^0 + 2^12 = 1 + 4096 = 4097
XPDR                8193                0+13     2^0 + 2^13 = 1 + 8192  = 8193
Outer ho        4194433               0+7+22    2^0 + 2^7 + 2^22 = 1 + 128 + 4194304 = 4194433
Outuer aho    8388737        0+7+23    2^0 + 2^7 + 2^23 = 1 + 128 + 8388608 = 8388737
Inner ho        2097281        0+7+21    2^0 + 2^7 + 2^21 = 1 + 128 + 2097152 = 2097281
Inner aho       1048705        0+7+20    2^0 + 2^7 + 2^20 = 1 + 128 + 1048576 = 1048705
StdBy        32897        1+7+15    2^1 + 2^7 + 2^15 = 2 + 128 + 32768 = 32898

Il y a deux valeurs qui ne coîncident pas, C'est le Stand-by du bas ...

En revanche, dans la console de linda (et dans le log FSX), les valeurs sont correctes si je "descends" de com1 à xpdr. Mais si je "remonte" de xpdr à com1, un décalage se crée.

Par exemple si je suis sur COM2, c'est NAV1 qui s'affiche. Et quand je reviens en COM1, c'est l'affichage du knob du haut qui s'affiche ...

Mon script RadioPanel.lua :

[Spoiler]

#40 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 14/11/2014 16:47

@ Pat et Philippe :

Sur les indications de pat, cela fonctionne parfaitement pour les leds du Switch Panel ! eusa_clap
Encore une fois, bravo ! C'est vraiment une logique qu'il faut acquérir ...

Voilà mon script de test, led.lua : (juste pour tester et s'amuser, hein !)

test = 0
dev = ipc.get("dev")
wrf = ipc.get("wrf")

while test < 20 do
ipc.display('red',20)
s = string.char(0,56)
com.writefeature (dev, s, wrf)
test = test+1
end

test = 50

if test < 100 then
    while test <100 do
        ipc.display('green',20)
        s = string.char(0,07)
        com.writefeature (dev, s, wrf)
        test = test+1
    end
end

#41 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 14/11/2014 07:14

@ Bo : Malheureusement SPAD ne règle pas tous mes soucis. Et c'est bien dommage, car ça serait une solution simple et redoutablement efficace ! Autant en profiter pour retrousser les manches et s'y mettre ! wink

@ Pat : La radio du A2A fait appel à des contrôles FSX et à des L:Var. Mais la difficulté n'est pas. Bien que le HIDRadio.lua soit bien déclaré, toute action de mon RadioPanel.lua ne fonctionne pas. Dans le doute, j'ai juste fait des ipc.display, et il ne se passe strictement rien.

De plus, si je déclare le HIDRadio en plus du HIDSwitch, le SwitchPanel ne fonctionne plus. Pour l'instant je me concentre sur le RadioPanel, déclaré seul dans le FSUIPC4.ini ...

@ Philippe :  Si j'ai bien compris, si je souhaite utiliser cette comande, je devrais l'écrire ainsi :

com.writefeature (0x66C0, 0, 07) pour avoir les leds vertes ?

dev=0x66C0 , le switch panel
0= le premier octet est égal à zéro
07 = Les leds vertes

J'ai tout bon ou bien .... ? wink

Amitiés.

#42 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 13/11/2014 17:57

@ Bo :

Dreambox, mon avionique s’allume que quand j’allume le master avionique et la batterie wink pas quand mon ordi est ON, c'est quoi cette histoire? wink

Par-contre, je suis pas arrivé à avoir un on et off indépendant de chaque module (mon PA, mes 3 radios et mon BIP panel), il leur manque un interrupteur au module Saitek wink

laugh Je veux bien croire que sur ce forum (et sur bien d'autres), les questions peuvent parfois laisser pantois ... Mais il faut bien commencer un jour ... D'où mes remerciements aux acteurs du forum, pour leurs connaissances, leur patience et leur présence régulière ...

Smiley qui s'incline !
wink


Amitiés.

#43 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 13/11/2014 17:53

@ Philippe : Tu as bien résumé les choses ... Et je crois que notre ami Bo est d'humeur taquine ... laugh

#44 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 13/11/2014 17:48

@ Bobonhom : Cher cousin ! Avant tout, merci, au passage, pour toutes tes participations riches d'apprentissages sur ce forum ! eusa_clap

Philippe a déjà répondu en partie à la question. C'est vrai, il y a SPAD et LINDA. Mais ... Je découvre l'univers FSX et de tout ce qui gravite autour. Ou plus précisément, pour répondre à quelques questions à priori très simples, je suis amené à creuser un peu.

Confronté à un souci entre mes modules Saïtek et mon C172 de A2A fraîchement acquis, j'en arrive, au fil des recherches, à découvrir FSUIPC que je possédais en ignorant crassement toutes ses possibilités, Lua, Linda et de bien d'autres choses encore.

Les premiers essais que j'ai fait nécessitaient de combiner SPAD et LINDA ... C'est vrai, ça faisait ce que je voulais (ou presque), mais cela restait superficiel et surtout, je n'avais réellement aucune idée de la mécanique du système ...

Donc, en avant pour FSUIPC, LUA, A2A, GOOGLE et le FORUM ... wink

Le but n'est vraiment pas de réinventer la roue : SPAD et LINDA sont vraiment de très beaux outils, et je n'ai pas la prétention de vouloir faire mieux. Seulement de progresser dans mes connaissances et dans l'univers de mon simulateur adoré ! laugh

Faire les scripts qui permettent à ma très modeste config de fonctionner correctement ...

Et comme l'a dit Philippe, je souhaite également interfacer des boutons physiques à mes gauges virtuelles; autant pur le plaisir du réalisme que celui de la découverte et de l'apprentissage ... La cerise sur le gâteau ? On fait connaissance avec des gens passionnés qui partagent leurs connaissances et qui ont une patience folle ! wink

Bref : apprendre, découvrir et partager, autour de passions communes ...

Je crois que c'est une bonne raison ... wink

Amitiés !

#45 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 13/11/2014 10:54

e_colere


Me revoilà à l'arrêt ...

- Je n'imaginais pas me trouver coincé sur ce sujet : L'usage des contrôles FSX en ce qui concerne la radio et l'avionique en général (autopilote, transpondeur ...) J'ai bien les offsets à modifier, mais j'ignore quelles valeurs, ou quelles syntaxes utiliser. De plus, ne maîtrisant pas l'usage radio/autopilote (newbie de base), je ne suis pas certain d'opter pour les bons offsets dans mes tests (dont les résultats sont à peu près nuls d'ailleurs !)

- Le second point, je l'avais vu venir : L'affichage des LEDS et des afficheurs sur les modules Saïtek ... Cet article y fait référence, mais j'ignore comment articuler les choses ...

Bref, Je croyais avoir bien avancé, mais je ne suis pas allé très loin...

Je repasse en mode investigations !

Edit : J'ai trouvé une piste chez Pete Dowson pour les contrôles FSX ... Je teste ce soir !

#46 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 12/11/2014 13:33

Je me cite ( laugh ) :

EDIT : De plus, dans la console Linda (vraiment très pratique, un Must Have), j'ai d'incessants contrôles qui tournent en boucle. Je suppose que j'ai donc dans un des LUA quelque chose qui met un peu le souc ...

Edit 2 : Dans aucun de mes LUA je cherche à adresser ces contrôles ...

Il s'agit de PANEL_ID_OPEN et PANEL_ID_CLOSE :

Ce comportement est normal et spécifique aux fonctionnalités AccuSim de A2A. Voir ce bref post

#47 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 12/11/2014 06:30

Bonjour Pat,

Merci pour ton message vraiment sympa. C'est vrai que plonger dans FSUIPC et LUA semble ouvrir la voie à de nombreuses possibilités dont je ne soupçonne encore même pas toute l'étendue ... Vous savez (Philippe et toi) donner les infos avec pédagogie et c'est pas donné à tout le monde ...

Et j'ai bien conscience d'être encore bien loin de maîtriser le sujet (les astuces viendront avec l'habitude et l'expérience), mais je commence à dégrossir les contours et c'est déjà pas si mal après m'être creusé la tête tout seul et en vain !

Pour répondre à ta question, le fait de manipuler simultanément plusieurs interrupteurs ne semble pas poser de problèmes; toutes les actions sont bien répercutées dans FSX. Mon script qui est désormais complet fonctionne bien, mais il comporte deux failles :

- Si pour une raison quelconque, (par exemple, batterie à plat), je bascule le magneto sur START, il va automatiquement revenir sur BOTH. Et du coup, derrière c'est u peu l'anarchie dans la gestion. C'est le gros point que je dois améliorer.

- De manière aléatoire, les Master BAT et ALT agissent bizarrement. Actionné plusieurs fois, le master BAT finit pas agir sur les deux (BAT et ALT). Parfois, il me faut actionner plusieurs fois le ALT pour le couper enfin ...

Comme tu le dis, ce n'est pas à priori une procédure très "académique" que de les actionner ainsi plusieurs fois de suite, mais je suppose que de le prévoir peut me prémunir de tracas ...

Quant au magneto, la doc A2A fait référence à une L:var, mais celle-ci influe sur la valeur du magneto, mais pas sur le positionnement de la clé dans le VC. Du coup j'utilise également le Magneto1_set.

Très bonne journée et au plaisir de te lire !

Edit : Effectivement, suite à la question de Philippe, j'ai posté sur le forum de l'admirable Pete Dowson. Il fait un travail remarquable et est d'une efficacité redoutable. J'espère avoir une réponse au sujet des leds, car je reconnais très humblement que j'aurais bien besoin d'un exemple de code pour que ça soit un peu plus ... lumineux ! laugh Et j'ai bon espoir de pouvoir apporter une réponse à Philippe ce qui serait un juste retour des choses ...

Edit bis : Après le Switch Panel, il me reste le Radio Panel, et le Multi Panel ... Diantre ... mad2_gif ... laugh ... Encore quelques heures de pressage de citron en vue !!! wink

Edit ter : J'oubliais le Bip Panel !!! wink Mais là, sans SPAD, point de salut à mon avis merlot ... Malgré des heures de recherches (je n'ai peut-être pas regardé au bon endroit), je n'ai rien trouvé qui permette de le programmer via LUA.

Voilà le script dans sa dernière version :

-- Init Cold and Dark ---

ipc.writeLvar('Magnetos1Pct', 0)
ipc.writeLvar('Battery1Switch', 0)
ipc.writeLvar('Eng1_GeneratorSwitch', 0)
ipc.control(66701,0)
ipc.control(66237,0)
ipc.control(66031,0)
ipc.control(65858,0)
ipc.control(66162,0)
ipc.control(66058,0)
ipc.control(66239,0)
ipc.control(66379,0)
ipc.control(66054,0)
ipc.control(66054,0)
ipc.control(66240,0)
ipc.control(66061,0)
ipc.control(66080,0)
percent = 0

-- Gestion du Magneto ---

function Magneto_OFF()
    -- Magneto Selector OFF
    -- 8192 : 2^13
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,8192) ~= 0 then
        ipc.writeLvar('Magnetos1Pct', 0)
        ipc.control(66400,0)
    end
end   
   
function Magneto_LEFT()   
    -- Magneto Selector LEFT
    -- 16384 : 2^14
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,16384) ~= 0 then
        ipc.writeLvar('Magnetos1Pct', 16)
        ipc.control(66400,1)
    end
end

function Magneto_RIGHT()
    -- Magneto Selector RIGHT
    -- 32768 : 2^15
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,32768) ~= 0 then
        ipc.writeLvar('Magnetos1Pct', 38)
        ipc.control(66400,2)
    end
end

function Magneto_BOTH()
    -- Magneto Selector BOTH
    -- 65536 : 2^16
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,65536) ~= 0 then
        ipc.writeLvar('Magnetos1Pct', 64)
        ipc.control(66400,3)
    end
end
   
function Magneto_START()
    -- Magneto Selector START
    -- 131072 : 2^17
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,131072) ~= 0 then
        ipc.writeLvar('Magnetos1Pct', 100)
        ipc.control(66400,4)
    end
end

-- Gestion des Switchs
   
function Master_BAT()   
    -- Master Battery Bit : 2^0 = 1
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,1) ~= 0 then
            ipc.writeLvar('Battery1Switch', 1)
    else
            ipc.writeLvar('Battery1Switch', 0)
    end
end

function Master_ALT()   
    -- Master Alternator Bit : 2^1 = 2
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,2) ~= 0 then
            ipc.writeLvar('Eng1_GeneratorSwitch', 1)
        else
            ipc.writeLvar('Eng1_GeneratorSwitch', 0)
    end
end
 
function Avionics()
    -- Avionics Bit : 2^2 = 4
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,4) ~= 0  then
            ipc.control(66701,1)
        else
            ipc.control(66701,0)
    end
end

function Fuel_PUMP()
    -- Fuel Pump Bit : 2^3 = 8
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,8) ~= 0  then
            ipc.control(66237,1)
        else
            ipc.control(66237,0)
    end
end
   
function De_ICE()   
    -- De-Ice Bit : 2^4 = 16
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,16) ~= 0  then
            ipc.control(66031,1)
        else
            ipc.control(66031,0)
    end
end

function Pitot_HEAT()
    -- Pitot Heat Bit : 2^5= 32
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,32) ~= 0  then
            ipc.control(65858,1)
        else
            ipc.control(65858,0)
    end
end

function Cowl_FLAPS()
    -- Cowl Bit : 2^6= 64
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,64) ~= 0  then
            ipc.control(66162,1)
        else
            ipc.control(66162,0)
    end
end
   
function Panel_LIGHT()   
    -- Panel LIGHTs Bit : 2^7= 128
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,128) ~= 0  then
            ipc.control(66058,1)
        else
            ipc.control(66058,0)
    end
end

function Beacon_LIGHT()
    -- Beacon LIGHTs Bit : 2^8= 256
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,256) ~= 0  then
            ipc.control(66239,1)
        else
            ipc.control(66239,0)
    end       
end
   
function Nav_LIGHT()   
    -- Nav LIGHTs Bit : 2^9= 512
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,512) ~= 0  then
            ipc.control(66379,1)
        else
            ipc.control(66379,0)
    end
end   

function Strobe_LIGHT()
    -- Strobe LIGHTs Bit : 2^10= 1024
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,1024) ~= 0  then
            ipc.control(66054,1)
        else
            ipc.control(66054,0)
    end
end
   
function Taxi_LIGHT()   
    -- Taxi LIGHTs Bit : 2^11= 2048
   if logic.And(testVar,2048) ~= 0  then
            ipc.control(66240,1)
        else
            ipc.control(66240,0)
    end
end

function Landing_LIGHT()   
    -- Landing LIGHTs Bit : 2^12= 4096
    testVar = ipc.readUD(0x66C0)
   if logic.And(testVar,4096) ~= 0  then
            ipc.control(66061,1)
        else
            ipc.control(66061,0)
    end
end
   
-- Gestion du Train ---
   
function Gear_UP()   
    -- Landing Gear Up Bit : 2^12= 262144
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,66079) ~= 0  then
            ipc.control(66079,1)
    end
end   

function Gear_DOWN()
    -- Landing Gear Down Bit : 2^12= 524288
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,66080) ~= 0  then
            ipc.control(66080,0)
    end
end

-- Events Magneto --

event.offsetmask(0x66C0, 8192,'UD', 'Magneto_OFF')
event.offsetmask(0x66C0, 16384,'UD', 'Magneto_LEFT')
event.offsetmask(0x66C0, 32768,'UD', 'Magneto_RIGHT')
event.offsetmask(0x66C0, 65536,'UD', 'Magneto_BOTH')
event.offsetmask(0x66C0, 131072,'UD', 'Magneto_START')

-- Events Switchs --

event.offsetmask(0x66C0, 1,'UD', 'Master_BAT')
event.offsetmask(0x66C0, 2,'UD', 'Master_ALT')
event.offsetmask(0x66C0, 4,'UD', 'Avionics')
event.offsetmask(0x66C0, 8,'UD', 'Fuel_PUMP')
event.offsetmask(0x66C0, 16,'UD', 'De_ICE')
event.offsetmask(0x66C0, 32,'UD', 'Pitot_HEAT')
event.offsetmask(0x66C0, 64,'UD', 'Cowl_FLAPS')
event.offsetmask(0x66C0, 128,'UD', 'Panel_LIGHT')
event.offsetmask(0x66C0, 256,'UD', 'Beacon_LIGHT')
event.offsetmask(0x66C0, 512,'UD', 'Nav_LIGHT')
event.offsetmask(0x66C0, 1024,'UD', 'Strobe_LIGHT')
event.offsetmask(0x66C0, 2048,'UD', 'Taxi_LIGHT')
event.offsetmask(0x66C0, 4096,'UD', 'Landing_LIGHT')

-- Events Gear ---

event.offsetmask(0x66C0, 262144,'UD', 'Gear_UP')
event.offsetmask(0x66C0, 524288,'UD', 'Gear_DOWN')

#48 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 11/11/2014 11:21

@ Pat :

J'ai ! eusa_clap Merci pour la piste ... Plongé dans la doc de LUA Library, j'ai trouvé ceci :

event.offsetmask(offset, mask,"type", "function-name")

Ce qui adapté à mon script, donne ceci (partiel car juste un test, week-end en famille !) wink :

function Fuel_Pump()
-- Fuel Pump Bit : 2^3 = 8
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,8) ~= 0  then
            ipc.control(66237,1)
        else
            ipc.control(66237,0)
    end
end

function Beacon_Light()
-- Beacon Lights Bit : 2^8= 256
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,256) ~= 0  then
            ipc.control(66239,1)
        else
            ipc.control(66239,0)
    end       
end

function Strobe_Light()
-- Strobe Lights Bit : 2^10= 1024
    testVar = ipc.readUD(0x66C0)
    if logic.And(testVar,1024) ~= 0  then
            ipc.control(66054,1)
        else
            ipc.control(66054,0)
    end
end

event.offsetmask(0x66C0, 8,'UD', 'Fuel_Pump')
event.offsetmask(0x66C0, 256,'UD', 'Beacon_Light')
event.offsetmask(0x66C0, 1024,'UD', 'Strobe_Light')

Ne me reste plus qu'à adresser tous les boutons du switch panel et tester l'ensemble ...

Je vous tiens au courant !

Pat, encore un grand merci ! Je n'ai pas trouvé le smiley qui s'incline, mais l'intention y est !!! laugh

Edit : Le code mérite sûrement d'être amélioré ou simplifié ...

#49 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 10/11/2014 15:27

Pour une fois que je peux très modestement aider !


Dans l'article cité, il y a cette commande : com.writefeature(dev, s, wrf) ....

Je ne parviens pas à trouver de référence à son sujet ...

#50 Re : Matériel et configuration des logiciels » [FSX] Script LUA, Saitek et FSUIPC » 10/11/2014 13:10

@ Philippe :

Juste une petit question, quelqu'un a une idée pour allumer les loupiotes du train d'atterrissage sur le module Saitek ?

Je savais bien que j'avais vu un post à ce sujet ! Voici le lien. En espérant que cela pourra t'aider...

Pied de page des forums

Propulsé par AvroBB