Vous n'êtes pas identifié(e).
Message Effacé
Dernière modification par dreambox62 (12-05-2015 09:30:08)
Hors ligne
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 Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
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
@ Pat :
J'ai ! 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 !) :
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
endfunction 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
endfunction 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
endevent.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 !!!
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
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 Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
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
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 ! 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 ... ... ... Encore quelques heures de pressage de citron en vue !!!
Edit ter : J'oubliais le Bip Panel !!! Mais là , sans SPAD, point de salut à mon avis ... 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
endfunction 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
endfunction 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
endfunction 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
endfunction 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
endfunction 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
endfunction 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
endfunction 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
endfunction 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
endfunction 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
endfunction 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
Je me cite ( ) :
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
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
Hors ligne
Message Effacé
Dernière modification par dreambox62 (12-05-2015 09:30:43)
Hors ligne
Dreambox, mon avionique s’allume que quand j’allume le master avionique et la batterie pas quand mon ordi est ON, c'est quoi cette histoire?
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
Dernière modification par Bobonhom (13-11-2014 17:25:58)
Hors ligne
Message Effacé
Dernière modification par dreambox62 (12-05-2015 09:31:15)
Hors ligne
@ Bobonhom : Cher cousin ! Avant tout, merci, au passage, pour toutes tes participations riches d'apprentissages sur ce forum !
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 ...
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é !
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 !
Bref : apprendre, découvrir et partager, autour de passions communes ...
Je crois que c'est une bonne raison ...
Amitiés !
Dernière modification par Oliver77 (13-11-2014 17:49:45)
Hors ligne
@ 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
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 !
Amitiés.
Hors ligne
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é
Moi je suis plutôt du style facile et efficace 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
Sinon Pat_59 m'aidera aussi, je l'espère =8
Bonne continuation et bonne chance!
Hors ligne
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 Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
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
Message Effacé
Dernière modification par dreambox62 (12-05-2015 09:31:51)
Hors ligne
@ 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 !
@ 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 .... ?
Amitiés.
Dernière modification par Oliver77 (14-11-2014 07:18:01)
Hors ligne
Message Effacé
Dernière modification par dreambox62 (12-05-2015 09:32:22)
Hors ligne
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 ledsSeule 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 à droitePour 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
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 )
Amicalement Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
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
@ 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 Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
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
Message Effacé
Dernière modification par dreambox62 (12-05-2015 09:32:55)
Hors ligne
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
Sage précaution par les temps qui courent .
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 Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
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
@ Pat et Philippe :
Sur les indications de pat, cela fonctionne parfaitement pour les leds du Switch Panel !
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
endtest = 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
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 Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
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