Programmation LUA, Macros FSUIPC, logiciel LINDA
et codage en LUA des gauges Air Manager
de JacquesZ » Jeu 5 Avr 2018 22:53
Jacques
Pour corriger vraiment le problème, il faut que je puisse reproduire le problème chez moi, dans les même conditions. Peux-tu poster ici le code que tu utilises (avec tes modifications) pour que je puisse tester?
Le code seul suffit, j'ai les élements graphiques.
merci
Jacques
-

JacquesZ
-
- Messages: 2848
- Inscription: 24/11/10
de jacquesvde » Jeu 5 Avr 2018 23:22
JacquesZ a écrit:Jacques
Pour corriger vraiment le problème, il faut que je puisse reproduire le problème chez moi, dans les même conditions. Peux-tu poster ici le code que tu utilises (avec tes modifications) pour que je puisse tester?
Le code seul suffit, j'ai les élements graphiques.
merci
Jacques
Jacques

Voila seul la variables et la valeur sont changée par commodité.
- Code: Tout sélectionner
local battery_on=false
local light_on=true
local rot=0
-- light_lvloff=img_add_fullscreen("light_lvl_off.png")
-- visible(light_lvloff,true)
light_lvl1off=img_add_fullscreen("light_lvl_1off.png")
visible(light_lvl1off,false)
light_lvl2off=img_add_fullscreen("light_lvl_2off.png")
visible(light_lvl2off,false)
light_lvl3off=img_add_fullscreen("light_lvl_3off.png")
visible(light_lvl3off,false)
light_lvl4off=img_add_fullscreen("light_lvl_4off.png")
visible(light_lvl4off,false)
light_lvl5off=img_add_fullscreen("light_lvl_5off.png")
visible(light_lvl5off,false)
light_lvl6off=img_add_fullscreen("light_lvl_6off.png")
visible(light_lvl6off,false)
light_lvl7off=img_add_fullscreen("light_lvl_7off.png")
visible(light_lvl7off,false)
light_lvl8off=img_add_fullscreen("light_lvl_8off.png")
visible(light_lvl8off,false)
light_lvl9off=img_add_fullscreen("light_lvl_9off.png")
visible(light_lvl9off,false)
light_lvl10off=img_add_fullscreen("light_lvl_10off.png")
visible(light_lvl10off,false)
light_lvloff=img_add_fullscreen("light_lvl_off.png")
visible(light_lvloff,true)
light_lvl1=img_add_fullscreen("light_lvl_1.png")
visible(light_lvl1,false)
light_lvl2=img_add_fullscreen("light_lvl_2.png")
visible(light_lvl2,false)
light_lvl3=img_add_fullscreen("light_lvl_3.png")
visible(light_lvl3,false)
light_lvl4=img_add_fullscreen("light_lvl_4.png")
visible(light_lvl4,false)
light_lvl5=img_add_fullscreen("light_lvl_5.png")
visible(light_lvl5,false)
light_lvl6=img_add_fullscreen("light_lvl_6.png")
visible(light_lvl6,false)
light_lvl7=img_add_fullscreen("light_lvl_7.png")
visible(light_lvl7,false)
light_lvl8=img_add_fullscreen("light_lvl_8.png")
visible(light_lvl8,false)
light_lvl9=img_add_fullscreen("light_lvl_9.png")
visible(light_lvl9,false)
light_lvl10=img_add_fullscreen("light_lvl_10.png")
visible(light_lvl10,false)
-- img_voyant=img_add_fullscreen("voyant.png")
-- visible(img_voyant,true)
img_add_fullscreen("Couronnefixe.png")
dial_img=img_add_fullscreen("Couronne.png")
-- Create a new persistence object
persist_rot = persist_add("rot_value", "INT", 0)
-- Get the data from the persistence object
rot = persist_get(persist_rot)
rot=var_cap(rot,-80,80)
img_rotate(dial_img, rot)
function callback(direction)
-- Direction will have the value
-- 1: When the dial is being turned clockwise
-- -1: When the dial is being turned anti-clockwise
-- no function since this dial has to be turned manually
if direction==-1 then
rot=rot - 20
else
rot=rot+20
end
rot=var_cap(rot,-80,80)
img_rotate(dial_img, rot)
--print(rot)
visible(light_lvloff,false)
visible(light_lvl1off,false)
visible(light_lvl2off,false)
visible(light_lvl3off,false)
visible(light_lvl4off,false)
visible(light_lvl5off,false)
visible(light_lvl6off,false)
visible(light_lvl7off,false)
visible(light_lvl8off,false)
visible(light_lvl9off,false)
visible(light_lvl10off,false)
visible(light_lvl1,false)
visible(light_lvl2,false)
visible(light_lvl3,false)
visible(light_lvl4,false)
visible(light_lvl5,false)
visible(light_lvl6,false)
visible(light_lvl7,false)
visible(light_lvl8,false)
visible(light_lvl9,false)
visible(light_lvl10,false)
visible(light_lvloff,false)
if battery_on==true then
if rot==100 then
visible(light_lvl1,true)
elseif rot>=80 then
visible(light_lvl2,true)
elseif rot>=60 then
visible(light_lvl3,true)
elseif rot>=40 then
visible(light_lvl4,true)
elseif rot>=20 then
visible(light_lvl5,true)
elseif rot==0 then
visible(light_lvl6,true)
elseif rot>=-20 then
visible(light_lvl7,true)
elseif rot>=-40 then
visible(light_lvl8,true)
elseif rot>=-60 then
visible(light_lvl9,true)
elseif rot>=-80 then
visible(light_lvl10,true)
elseif rot>=-100 then
visible(light_lvl10,true)
end
else
if rot==100 then
visible(light_lvl1off,true)
elseif rot>=80 then
visible(light_lvl2off,true)
elseif rot>=60 then
visible(light_lvl3off,true)
elseif rot>=40 then
visible(light_lvl4off,true)
elseif rot>=20 then
visible(light_lvl5off,true)
elseif rot==0 then
visible(light_lvl6off,true)
elseif rot>=-20 then
visible(light_lvl7off,true)
elseif rot>=-40 then
visible(light_lvl8off,true)
elseif rot>=-60 then
visible(light_lvl9off,true)
elseif rot>=-80 then
visible(light_lvl10off,true)
elseif rot>=-100 then
visible(light_lvl10off,true)
end
end
-- Put new data into the persistence object
persist_put(persist_rot, rot )
end
function new_data(batt,Data_vars)
battery_on=batt
-- Condition pour laquelle le voyant s'allume
-- a modifier suivant le besoin
if Data_vars<50 and battery_on==true and light_on==false then
light_on=true
--print("light_on")
else
light_on=false
--print("light_off")
end
-----------------------------------------------
battery_on=batt
visible(light_lvl1,false)
visible(light_lvl2,false)
visible(light_lvl3,false)
visible(light_lvl4,false)
visible(light_lvl5,false)
visible(light_lvl6,false)
visible(light_lvl7,false)
visible(light_lvl8,false)
visible(light_lvl9,false)
visible(light_lvl10,false)
visible(light_lvloff,false)
visible(light_lvl1off,false)
visible(light_lvl2off,false)
visible(light_lvl3off,false)
visible(light_lvl4off,false)
visible(light_lvl5off,false)
visible(light_lvl6off,false)
visible(light_lvl7off,false)
visible(light_lvl8off,false)
visible(light_lvl9off,false)
visible(light_lvl10off,false)
--visible(light_lvloff,false)
if battery_on==true and light_on==true then
if rot==100 then
visible(light_lvl1,true)
elseif rot>=80 then
visible(light_lvl2,true)
elseif rot>=60 then
visible(light_lvl3,true)
elseif rot>=40 then
visible(light_lvl4,true)
elseif rot>=20 then
visible(light_lvl5,true)
elseif rot==0 then
visible(light_lvl6,true)
elseif rot>=-20 then
visible(light_lvl7,true)
elseif rot>=-40 then
visible(light_lvl8,true)
elseif rot>=-60 then
visible(light_lvl9,true)
elseif rot>=-80 then
visible(light_lvl10,true)
elseif rot>=-100 then
visible(light_lvl10,true)
end
else
if rot==100 then
visible(light_lvl1off,true)
elseif rot>=80 then
visible(light_lvl2off,true)
elseif rot>=60 then
visible(light_lvl3off,true)
elseif rot>=40 then
visible(light_lvl4off,true)
elseif rot>=20 then
visible(light_lvl5off,true)
elseif rot==0 then
visible(light_lvl6off,true)
elseif rot>=-20 then
visible(light_lvl7off,true)
elseif rot>=-40 then
visible(light_lvl8off,true)
elseif rot>=-60 then
visible(light_lvl9off,true)
elseif rot>=-80 then
visible(light_lvl10off,true)
elseif rot>=-100 then
visible(light_lvl10off,true)
end
end
end
dial_id = dial_add(nil, 0, 0, 500,500,callback)
dial_click_rotate(dial_id, 20)
fsx_variable_subscribe("ELECTRICAL MASTER BATTERY", "Bool",
"ENG OIL PRESSURE:1", "Psi", new_data)
A+
Jacques

-

jacquesvde
-
- Messages: 1226
- Inscription: 20/04/09
- Localisation: Courcelles Belgique
de jacquesvde » Ven 6 Avr 2018 23:44
Bonjour Jacques,
Se code ci fonctionne parfaitement avec le DHC-2 BEAVER Milviz (voyant rouge)
A ne plus rien comprendre
Ce serait dû au variable

merci
Jacques
- Code: Tout sélectionner
--ENG OIL PRESSURE L
local battery_on=false
local light_on=true
local rot=0
-- light_lvloff=img_add_fullscreen("light_lvl_off.png")
-- visible(light_lvloff,true)
light_lvl1off=img_add_fullscreen("light_lvl_1off.png")
visible(light_lvl1off,false)
light_lvl2off=img_add_fullscreen("light_lvl_2off.png")
visible(light_lvl2off,false)
light_lvl3off=img_add_fullscreen("light_lvl_3off.png")
visible(light_lvl3off,false)
light_lvl4off=img_add_fullscreen("light_lvl_4off.png")
visible(light_lvl4off,false)
light_lvl5off=img_add_fullscreen("light_lvl_5off.png")
visible(light_lvl5off,false)
light_lvl6off=img_add_fullscreen("light_lvl_6off.png")
visible(light_lvl6off,false)
light_lvl7off=img_add_fullscreen("light_lvl_7off.png")
visible(light_lvl7off,false)
light_lvl8off=img_add_fullscreen("light_lvl_8off.png")
visible(light_lvl8off,false)
light_lvl9off=img_add_fullscreen("light_lvl_9off.png")
visible(light_lvl9off,false)
light_lvl10off=img_add_fullscreen("light_lvl_10off.png")
visible(light_lvl10off,false)
light_lvloff=img_add_fullscreen("light_lvl_off.png")
visible(light_lvloff,true)
light_lvl1=img_add_fullscreen("light_lvl_1.png")
visible(light_lvl1,false)
light_lvl2=img_add_fullscreen("light_lvl_2.png")
visible(light_lvl2,false)
light_lvl3=img_add_fullscreen("light_lvl_3.png")
visible(light_lvl3,false)
light_lvl4=img_add_fullscreen("light_lvl_4.png")
visible(light_lvl4,false)
light_lvl5=img_add_fullscreen("light_lvl_5.png")
visible(light_lvl5,false)
light_lvl6=img_add_fullscreen("light_lvl_6.png")
visible(light_lvl6,false)
light_lvl7=img_add_fullscreen("light_lvl_7.png")
visible(light_lvl7,false)
light_lvl8=img_add_fullscreen("light_lvl_8.png")
visible(light_lvl8,false)
light_lvl9=img_add_fullscreen("light_lvl_9.png")
visible(light_lvl9,false)
light_lvl10=img_add_fullscreen("light_lvl_10.png")
visible(light_lvl10,false)
-- img_voyant=img_add_fullscreen("voyant.png")
-- visible(img_voyant,true)
img_add_fullscreen("Couronnefixe.png")
dial_img=img_add_fullscreen("Couronne.png")
-- Create a new persistence object
persist_rot = persist_add("rot_value", "INT", 0)
-- Get the data from the persistence object
rot = persist_get(persist_rot)
rot=var_cap(rot,-80,80)
img_rotate(dial_img, rot)
function callback(direction)
-- Direction will have the value
-- 1: When the dial is being turned clockwise
-- -1: When the dial is being turned anti-clockwise
-- no function since this dial has to be turned manually
if direction==-1 then
rot=rot - 20
else
rot=rot+20
end
rot=var_cap(rot,-80,80)
img_rotate(dial_img, rot)
--print(rot)
visible(light_lvloff,false)
visible(light_lvl1off,false)
visible(light_lvl2off,false)
visible(light_lvl3off,false)
visible(light_lvl4off,false)
visible(light_lvl5off,false)
visible(light_lvl6off,false)
visible(light_lvl7off,false)
visible(light_lvl8off,false)
visible(light_lvl9off,false)
visible(light_lvl10off,false)
visible(light_lvl1,false)
visible(light_lvl2,false)
visible(light_lvl3,false)
visible(light_lvl4,false)
visible(light_lvl5,false)
visible(light_lvl6,false)
visible(light_lvl7,false)
visible(light_lvl8,false)
visible(light_lvl9,false)
visible(light_lvl10,false)
visible(light_lvloff,false)
if battery_on==true then
if rot==100 then
visible(light_lvl1,true)
elseif rot>=80 then
visible(light_lvl2,true)
elseif rot>=60 then
visible(light_lvl3,true)
elseif rot>=40 then
visible(light_lvl4,true)
elseif rot>=20 then
visible(light_lvl5,true)
elseif rot==0 then
visible(light_lvl6,true)
elseif rot>=-20 then
visible(light_lvl7,true)
elseif rot>=-40 then
visible(light_lvl8,true)
elseif rot>=-60 then
visible(light_lvl9,true)
elseif rot>=-80 then
visible(light_lvl10,true)
elseif rot>=-100 then
visible(light_lvl10,true)
end
else
if rot==100 then
visible(light_lvl1off,true)
elseif rot>=80 then
visible(light_lvl2off,true)
elseif rot>=60 then
visible(light_lvl3off,true)
elseif rot>=40 then
visible(light_lvl4off,true)
elseif rot>=20 then
visible(light_lvl5off,true)
elseif rot==0 then
visible(light_lvl6off,true)
elseif rot>=-20 then
visible(light_lvl7off,true)
elseif rot>=-40 then
visible(light_lvl8off,true)
elseif rot>=-60 then
visible(light_lvl9off,true)
elseif rot>=-80 then
visible(light_lvl10off,true)
elseif rot>=-100 then
visible(light_lvl10off,true)
end
end
-- Put new data into the persistence object
persist_put(persist_rot, rot )
end
function new_data(batt,Data_vars)
-- Condition pour laquelle le voyant s'allume
-- a modifier suivant le besoin
if Data_vars<49 then
light_on=true
else
light_on=false
end
-----------------------------------------------
battery_on=batt
visible(light_lvl1,false)
visible(light_lvl2,false)
visible(light_lvl3,false)
visible(light_lvl4,false)
visible(light_lvl5,false)
visible(light_lvl6,false)
visible(light_lvl7,false)
visible(light_lvl8,false)
visible(light_lvl9,false)
visible(light_lvl10,false)
visible(light_lvloff,false)
visible(light_lvl1off,false)
visible(light_lvl2off,false)
visible(light_lvl3off,false)
visible(light_lvl4off,false)
visible(light_lvl5off,false)
visible(light_lvl6off,false)
visible(light_lvl7off,false)
visible(light_lvl8off,false)
visible(light_lvl9off,false)
visible(light_lvl10off,false)
--visible(light_lvloff,false)
if battery_on==true and light_on==true then
if rot==100 then
visible(light_lvl1,true)
elseif rot>=80 then
visible(light_lvl2,true)
elseif rot>=60 then
visible(light_lvl3,true)
elseif rot>=40 then
visible(light_lvl4,true)
elseif rot>=20 then
visible(light_lvl5,true)
elseif rot==0 then
visible(light_lvl6,true)
elseif rot>=-20 then
visible(light_lvl7,true)
elseif rot>=-40 then
visible(light_lvl8,true)
elseif rot>=-60 then
visible(light_lvl9,true)
elseif rot>=-80 then
visible(light_lvl10,true)
elseif rot>=-100 then
visible(light_lvl10,true)
end
else
if rot==100 then
visible(light_lvl1off,true)
elseif rot>=80 then
visible(light_lvl2off,true)
elseif rot>=60 then
visible(light_lvl3off,true)
elseif rot>=40 then
visible(light_lvl4off,true)
elseif rot>=20 then
visible(light_lvl5off,true)
elseif rot==0 then
visible(light_lvl6off,true)
elseif rot>=-20 then
visible(light_lvl7off,true)
elseif rot>=-40 then
visible(light_lvl8off,true)
elseif rot>=-60 then
visible(light_lvl9off,true)
elseif rot>=-80 then
visible(light_lvl10off,true)
elseif rot>=-100 then
visible(light_lvl10off,true)
end
end
end
dial_id = dial_add(nil, 0, 0, 500,500,callback)
dial_click_rotate(dial_id, 20)
fsx_variable_subscribe("ELECTRICAL MASTER BATTERY", "Bool",
"L:DHC2_EngOilPressure", "", new_data)
-

jacquesvde
-
- Messages: 1226
- Inscription: 20/04/09
- Localisation: Courcelles Belgique
de jacquesvde » Sam 7 Avr 2018 00:13
Bonjour Jacques toute mes excuses,

j'ai peut-être eu un problème de mémoire avec le PC j’aurai dû rebooté le PC avant de communiquer.
Tous fonctionne parfaitement.
Jacques

-

jacquesvde
-
- Messages: 1226
- Inscription: 20/04/09
- Localisation: Courcelles Belgique
de JacquesZ » Ven 13 Avr 2018 10:48
Tu me rassures Jacques, d’autant que je ne m’étais pas vraiment penché sur le problème, je suis un peu occupé en ce moment, j’ai une QT320 à préparer pour début Mai si tout va bien...
Jacques
-

JacquesZ
-
- Messages: 2848
- Inscription: 24/11/10
de tabar57 » Ven 13 Avr 2018 18:04
Salut JacquesZ,
Ca sent bon tout çà

, je suis content pour toi
T'inquiètes pas JacquesVde, je pense aussi à toi
Je pars ce week end pour une belle navigation de 15 jours en voilier au départ de Paimpol à destination des scillys
Cordialement
Bernard
Mon blog de construction : http://tabar57.blog4ever.com
Hémicockpit de Beechcraft B200 ( de FlightOne ) P3DV4.5 et 2 PC en réseau W7 64 bits et W10, cartes OC et FDbus, vibreur et yoke rdf de BFFsimulation, météo réelle asp4
-

tabar57
-
- Messages: 3654
- Inscription: 29/12/10
- Localisation: Dans ma cabine en Lorraine
-
de jacquesvde » Sam 14 Avr 2018 12:00
JacquesZ a écrit:Tu me rassures Jacques, d’autant que je ne m’étais pas vraiment penché sur le problème, je suis un peu occupé en ce moment, j’ai une QT320 à préparer pour début Mai si tout va bien...
Jacques
Bonjour Jacques
Je te souhaite une bonne réussite.
tabar57 a écrit:Salut JacquesZ,
Ca sent bon tout çà

, je suis content pour toi
T'inquiètes pas JacquesVde, je pense aussi à toi
Je pars ce week end pour une belle navigation de 15 jours en voilier au départ de Paimpol à destination des scillys
Cordialement
Bernard
Bonjour Bernard
Merci et bonne navigation.
Cordialement Jacques
-

jacquesvde
-
- Messages: 1226
- Inscription: 20/04/09
- Localisation: Courcelles Belgique
Retourner vers LUA, Linda, Macros & gauges Air Manager
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité