#51 [↑][↓]  10-11-2014 16:52:47

dreambox62
Pilote confirmé
Lieu: Nord / Pas de Calais
Date d'inscription: 04-02-2013
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

Message Effacé

Dernière modification par dreambox62 (12-05-2015 10:30:08)

Hors ligne

 

#52 [↑][↓]  10-11-2014 19:09:56

Pat_59
Copilote
Lieu: Sailly sur la lys près de LFQT
Date d'inscription: 11-05-2013
Renommée :   17 

Re: [FSX] Script LUA, Saitek et FSUIPC

Oliver77 a écrit:

Le Fuel Pump déclenche aussi le Pitot Heat, et vice-versa. Je suppose donc que je fais encore une bourde ... Mais je ne vois pas où. J'ai vérifié les offsets, et ce sont à priori les bons ...

Le problème provient de l'utilisation des "Toggle".

Quand ton script est appelé lorsque l'offset 0x66C0 est modifié, il repasse par toutes les conditions depuis le début et exécute à nouveau toutes les actions ce qui pose problème aux contrôles "Toggle" qui reviennent dans l'état précédent.

Pour le Pitot Heat, utilise plutôt les contrôles 66072 (On) et 66073 (Off) comme ceci:

-- Pitot Heat Bit 2 : 2^5= 32
    if logic.And(testVar,32) ~= 0  then
            ipc.control(66072,1)           
        else
            ipc.control(66073,1)           
    end

De toute façon, le problème persistera pour le "Fuel Pump" et pour certains "Light" qui ne fonctionnent qu'en Toggle.

Il faudrait trouver une solution pour que le script ne refasse pas toutes les comparaisons mais uniquement celle qui correspond au bit qui a changé.

J'ai ma petite idée là-dessus ...


Amicalement  Patrickhttp://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

 

#53 [↑][↓]  11-11-2014 11:21:37

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

@ 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é ...

Dernière modification par Oliver77 (11-11-2014 11:30:35)

Hors ligne

 

#54 [↑][↓]  11-11-2014 13:37:24

Pat_59
Copilote
Lieu: Sailly sur la lys près de LFQT
Date d'inscription: 11-05-2013
Renommée :   17 

Re: [FSX] Script LUA, Saitek et FSUIPC

Bonjour Olivier,

Bravo! Tu es en progrès constant. Que de chemin parcouru depuis ta première ébauche.

Mon idée était un peu différente parce que je n'aime pas utiliser plusieurs "event" dans le même script. J'ai eu par le passé quelques problèmes en faisant de la sorte (les conditions n'étaient pas les mêmes) où je surveillais plusieurs offset en même temps. Il est arrivé que même si un des offsets "surveillés" changeait, ce n'était pas pris en compte par le script (peut-être une histoire d'ordre dans les event qu'il aurait fallu classer par ordre d'importance, je n'ai pas testé).

De ce fait, en ne se basant que sur le changement de l'offset 0x66C0 (sans les mask), j'avais prévu de mémoriser la valeur précédant le changement. Il suffisait alors de comparer la valeur actuelle de l'offset et sa précédente pour connaître le bit qui avait changé.
En suite, en faisant une comparaison avec une boucle if, elseif (qui permet de sauter toutes les autres comparaisons quand la bonne est trouvée), il suffisait d'appeler la fonction correspondante (ce que tu fais actuellement).
J'avais même prévu (en programmation, il faut tout prévoir même ce qui paraît inconcevable) que plusieurs bits pouvaient être modifiés simultanément et, dans ce cas, refaire une boucle jusqu'à ce que tous les bits modifiés aient été traités. Je ne suis pas sûr que ta succession d' "event" puisse réaliser cela mais tes tests te le diront (appuie sur deux boutons en même temps pour voir).

Bon 11 novembre en famille, à te lire.

Édit: Je viens de m'apercevoir que tu "post" également sur le forum de Pete Dowson. Bravo pour l'anglais, là c'est toi qui pourras me donner des leçons. Je suis assez à l'aise pour le lire et le comprendre mais pour m'exprimer c'est une autre paire de manches.

Dernière modification par Pat_59 (11-11-2014 14:13:09)


Amicalement  Patrickhttp://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

 

#55 [↑][↓]  12-11-2014 06:30:54

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

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')

Dernière modification par Oliver77 (12-11-2014 06:44:13)

Hors ligne

 

#56 [↑][↓]  12-11-2014 13:33:47

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

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

Dernière modification par Oliver77 (12-11-2014 15:01:36)

Hors ligne

 

#57 [↑][↓]  13-11-2014 10:54:14

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

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 !

Dernière modification par Oliver77 (13-11-2014 12:31:07)

Hors ligne

 

#58 [↑][↓]  13-11-2014 13:58:03

Bobonhom
Pilote Virtuel
Membre donateur
Lieu: Les Laurentides Québecoise
Date d'inscription: 24-04-2012
Renommée :   125 
Site web

Re: [FSX] Script LUA, Saitek et FSUIPC

Pourquoi, veux tu passer les radio au LUA, je comprend mal le but ici... Ce qui marche, marche...


Je parle peu, mais je suis cette conversation de près wink

Dernière modification par Bobonhom (13-11-2014 13:58:36)


https://i.goopics.net/79et5g.jpg

Hors ligne

 

#59 [↑][↓]  13-11-2014 14:18:55

dreambox62
Pilote confirmé
Lieu: Nord / Pas de Calais
Date d'inscription: 04-02-2013
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

Message Effacé

Dernière modification par dreambox62 (12-05-2015 10:30:43)

Hors ligne

 

#60 [↑][↓]  13-11-2014 17:23:26

Bobonhom
Pilote Virtuel
Membre donateur
Lieu: Les Laurentides Québecoise
Date d'inscription: 24-04-2012
Renommée :   125 
Site web

Re: [FSX] Script LUA, Saitek et FSUIPC

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

Dernière modification par Bobonhom (13-11-2014 17:25:58)


https://i.goopics.net/79et5g.jpg

Hors ligne

 

#61 [↑][↓]  13-11-2014 17:46:46

dreambox62
Pilote confirmé
Lieu: Nord / Pas de Calais
Date d'inscription: 04-02-2013
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

Message Effacé

Dernière modification par dreambox62 (12-05-2015 10:31:15)

Hors ligne

 

#62 [↑][↓]  13-11-2014 17:48:40

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

@ 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 !

Dernière modification par Oliver77 (13-11-2014 17:49:45)

Hors ligne

 

#63 [↑][↓]  13-11-2014 17:53:23

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

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

Hors ligne

 

#64 [↑][↓]  13-11-2014 17:57:25

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

@ 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.

Hors ligne

 

#65 [↑][↓]  13-11-2014 19:44:43

Bobonhom
Pilote Virtuel
Membre donateur
Lieu: Les Laurentides Québecoise
Date d'inscription: 24-04-2012
Renommée :   125 
Site web

Re: [FSX] Script LUA, Saitek et FSUIPC

Si c'est pour apprendre, j'ai rien contre, Pat_59 aime aussi se cassez la tête, c'est pourquoi je regarde curieusement de ce coté wink

Moi je suis plutôt du style facile et efficace wink  J'utilise SPAD pour ce qui marche bien, puis un script Lua que FSUIPC prend en charge pour les fonction non interfacé de mon CatalinaX, pas de Linda...


Il manque encore quelques fonctions à mon script LUA, mais ça viendra wink   

Sinon Pat_59 m'aidera aussi, je l'espère laughlaugh


Bonne continuation et bonne chance!


https://i.goopics.net/79et5g.jpg

Hors ligne

 

#66 [↑][↓]  13-11-2014 21:22:03

Pat_59
Copilote
Lieu: Sailly sur la lys près de LFQT
Date d'inscription: 11-05-2013
Renommée :   17 

Re: [FSX] Script LUA, Saitek et FSUIPC

Bonsoir à tous,

@ Bo. Bien sûr que je te donnerai un coup de main, si c'est dans mon domaine de compétence en tout cas.

@Philippe. Si tu as trouvé quelque chose concernant l'allumage des Led de ton switch Panel, cela m'intéresse pour ma culture personnelle. Cela pourrait peut-être s'appliquer sur le BIP panel d'Olivier.

@ Olivier. Si c'est pour contrôler les radios et le PA du A2A je ne suis pas sûr que les contrôles FSX fonctionnent. Il y a aussi des Lvar de ce côté-là. Je regarde ça demain.

Bonne soirée et bonne continuation à tous.


Amicalement  Patrickhttp://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

 

#67 [↑][↓]  13-11-2014 21:57:32

dreambox62
Pilote confirmé
Lieu: Nord / Pas de Calais
Date d'inscription: 04-02-2013
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

Message Effacé

Dernière modification par dreambox62 (12-05-2015 10:31:51)

Hors ligne

 

#68 [↑][↓]  14-11-2014 07:14:18

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

@ 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.

Dernière modification par Oliver77 (14-11-2014 07:18:01)

Hors ligne

 

#69 [↑][↓]  14-11-2014 07:49:57

dreambox62
Pilote confirmé
Lieu: Nord / Pas de Calais
Date d'inscription: 04-02-2013
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

Message Effacé

Dernière modification par dreambox62 (12-05-2015 10:32:22)

Hors ligne

 

#70 [↑][↓]  14-11-2014 12:03:18

Pat_59
Copilote
Lieu: Sailly sur la lys près de LFQT
Date d'inscription: 11-05-2013
Renommée :   17 

Re: [FSX] Script LUA, Saitek et FSUIPC

dreambox62 a écrit:

Bonsoir à tous

Pour allumer les leds d'état du train d'atterrissage sur le Switch de Saitek, il faut envoyé deux octets sur la liaison USB avec l'instruction  com.writefeature (dev, s, WRF).

Le premier octet est égal à 0 (tous les bits à zéro) Faux : contient le caractère "0"
Le second octet est la représentation numérique binaire de l'état des leds

Seule les 6 bits de poids faible sont utilisés selon ce format  X X R1 R2 R3 V1 V2 V3

X = bit ignoré
R = led rouge
V = led verte
1 = led en haut
2 = led en bas à gauche
3 = led en bas à droite

Pour allumer toutes les leds vertes, le code binaire est 00000111 ou 07 en décimal
Pour allumer toutes les leds rouges, le code binaire est 00111000 ou 56 en décimal
Mais on peut également activer les leds vertes et rouges en même temps avec le code binaire 00111111 ou 63 en décimal.

DREAMBOX

Bonjour Philippe,

Voici mon avis personnel sur l'usage de l'instruction "com.writefeature(dev,s,wrf)".

Les valeurs "dev" et "wrf" sont définies par le script "HIDswitch" par l'instruction:
dev, rd, wrf, wr, init = com.openhid(Vendor, Product, Device, Report).

Or, si tu utilises l'instruction com.writefeature depuis un autre script que HIDswitch, ces variables (dev et wrf) ne sont pas connues (nil).
Il faut donc les récupérer depuis le HIDswitch en ajoutant dans celui-ci les deux lignes suivantes après la commande

dev, rd, wrf, wr, init = com.openhid(Vendor, Product, Device, Report)
ipc.set("dev",dev)
ipc.set("wrf",wrf)

pour les reprendre dans l'autre script:

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

Maintenant la variable "s" qui doit être une chaîne de caractères (string) et non un nombre.
Le premier octet contiendra le caractère "0" (char(0)) et non la valeur 0.
Le deuxième octet devrait contenir, toujours sous forme de "string", la valeur décimale de ce que tu souhaites obtenir pour l'éclairage des Led (ex: 56 pour toutes les Led rouges).

Il suffira d'écrire : s = string.char(0,56)

Il ne te reste qu'à tester wink

PS : Merci pour la proposition de prêt mais je pense que tu es tout à fait apte à faire les tests toi-même (si j'y goûte, je risque de ne pas te le rendre laugh )


Amicalement  Patrickhttp://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

 

#71 [↑][↓]  14-11-2014 12:26:34

Pat_59
Copilote
Lieu: Sailly sur la lys près de LFQT
Date d'inscription: 11-05-2013
Renommée :   17 

Re: [FSX] Script LUA, Saitek et FSUIPC

Oliver77 a écrit:

@ 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 ...
Amitiés.

Bonjour Olivier,

Peux-tu me faire voir ton RadioPanel.lua ainsi que le HIDRadio.lua (si c'est trop long, mets-les sous forme de "Spoiler").

Sans voir ce que tu as fait, je ne peux pas t'aiguiller.


Amicalement  Patrickhttp://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

 

#72 [↑][↓]  14-11-2014 13:03:05

dreambox62
Pilote confirmé
Lieu: Nord / Pas de Calais
Date d'inscription: 04-02-2013
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

Message Effacé

Dernière modification par dreambox62 (12-05-2015 10:32:55)

Hors ligne

 

#73 [↑][↓]  14-11-2014 16:30:30

Pat_59
Copilote
Lieu: Sailly sur la lys près de LFQT
Date d'inscription: 11-05-2013
Renommée :   17 

Re: [FSX] Script LUA, Saitek et FSUIPC

dreambox62 a écrit:

J'ai retenu aussi que si un jour je te passe du matériel en prêt, je n'oublierai pas de te demander un chèque de caution laugh

Sage précaution par les temps qui courent laugh .

Ah j'oubliais, bonnes vacances !!

PS : As-tu reçu mon mail concernant une autre de nos passions communes ?

Edit : Est-ce que le fait de passer les Led à la fois sur "Green" et "Red" les font réellement changer de couleurs (par exemple orange ou ambre) ?
Cela pourrait être intéressant pour indiquer une transition dans l'état du train par exemple.

Dernière modification par Pat_59 (14-11-2014 16:50:04)


Amicalement  Patrickhttp://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

 

#74 [↑][↓]  14-11-2014 16:47:04

Oliver77
Elève Pilote
Date d'inscription: 16-03-2014
Renommée :   

Re: [FSX] Script LUA, Saitek et FSUIPC

@ 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

Hors ligne

 

#75 [↑][↓]  14-11-2014 16:55:01

Pat_59
Copilote
Lieu: Sailly sur la lys près de LFQT
Date d'inscription: 11-05-2013
Renommée :   17 

Re: [FSX] Script LUA, Saitek et FSUIPC

Bonjour Olivier,

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.


Amicalement  Patrickhttp://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

 

Pied de page des forums

Maintenance informatique Lausanne