Page 1 sur 2

variable et blockly

Publié : 03 août 2018, 08:36
par vr6man
Bonjour,

J'ai mis en place le script qui recupere les jours férié

Celui ci fonctionne bien et inscrit la valeur true ou false dans une variable jf

je veux a partir de cette valeur mettre à jour un dummy JourFerie

j'ai fait le blockly suivant

Image

Mais cela ne fonctionne pas

j'aimerais aussi utiliser la variable jf pour l'intégrer dans des blockly existant

comment faire ?

merci

Re: variable et blockly

Publié : 03 août 2018, 09:59
par vil1driver
Salut

Quelle utilité de passer par une variable intermédiaire ?
Mets à jour le dummy directement

Re: variable et blockly

Publié : 03 août 2018, 16:45
par vr6man
je me sert de la variable pour d'autres scripts

Comment je fais

Re: variable et blockly

Publié : 03 août 2018, 17:02
par vil1driver
Et bien dans ce cas, a la suite de la ligne de maj de la variable, ajoute en une pour maj le dummy

Re: variable et blockly

Publié : 03 août 2018, 17:06
par vr6man
ok mais je suis nul en lua tu fais comment

voila le script que j'ai récupéré

Code : Tout sélectionner

commandArray = {}
-- Retourne le jour de Pâques au format epoch
-- annee : année (Integer) dont on désire connaître le jour de Pâques (ex : 2014)
-- La fonction n'effectue le calcul que si l'année a changée depuis son dernier appel
GetJourPaquesAnnee=0      -- Variable globale (année du dernier calcul) pour ne pas recalculer le jour de Pâques à chaque appel
GetJourPaquesEpochPaque=0 -- Variable globale (jour de Pâques au format epoch) pour ne pas recalculer le jour de Pâques à chaque appel
time = os.date("*t")
if((time.min == 5) and (time.hour == 0)) then
function GetJourPaques(annee)
  if(GetJourPaquesAnnee~=annee or GetJourPaquesEpochPaque==0) then
    local a=math.floor(annee/100)   -- donne 20 pour 2015
    local b=math.fmod(annee,100)    -- donne 15 pour 2015
    local c=math.floor((3*(a+25))/4)  -- donne 33 pour 20
    local d=math.fmod((3*(a+25)),4)   -- donne 3 pour 20
    local e=math.floor((8*(a+11))/25)
    local f=math.fmod((5*a+b),19)
    local g=math.fmod((19*f+c-e),30)
    local h=math.floor((f+11*g)/319)
    local j=math.floor((60*(5-d)+b)/4)
    local k=math.fmod((60*(5-d)+b),4)
    local m=math.fmod((2*j-k-g+h),7)
    local n=math.floor((g-h+m+114)/31)
    local p=math.fmod((g-h+m+114),31)
    local jour=p+1
    local mois=n
    GetJourPaquesAnnee=annee
    GetJourPaquesEpochPaque=os.time{year=annee,month=mois,day=jour,hour=12,min=0}
  end
  return GetJourPaquesEpochPaque
end

-- Retourne true si le jour courant est un jour férié
-- Le calcul des jours férié n'est fait qu'un fois par an (ou si la Vera reboot)
JourFerieAnnee=0  -- Variable globale (année du dernier calcul) pour ne pas recalculer le tableau à chaque appel
JourFerieTab = {} -- Variable globale (tableau des jours fériés) pour ne pas recalculer le tableau à chaque appel
function JourFerie()
  local today=os.date("%m-%d")
  local annee=tonumber(os.date("%Y"))
  if(annee~=JourFerieAnnee) then
    JourFerieAnnee=annee
    -- Dates fixes
    JourFerieTab["01-01"] = true -- 1er janvier
    JourFerieTab["05-01"] = true -- Fête du travail
    JourFerieTab["05-08"] = true -- Victoire des alliés
    JourFerieTab["07-14"] = true -- Fête nationale
    JourFerieTab["08-15"] = true -- Assomption
    JourFerieTab["11-01"] = true -- Toussaint
    JourFerieTab["11-11"] = true -- Armistice
    JourFerieTab["12-25"] = true -- Noël
    -- Dates variables
    local epochPaques=GetJourPaques(annee)
    JourFerieTab[os.date("%m-%d",epochPaques)] = true             -- Pâques
    JourFerieTab[os.date("%m-%d",epochPaques+24*60*60)] = true    -- Lundi de Pâques = Pâques + 1 jour
    JourFerieTab[os.date("%m-%d",epochPaques+24*60*60*39)] = true -- Ascension = Pâques + 39 jours
    JourFerieTab[os.date("%m-%d",epochPaques+24*60*60*49)] = true -- Pentecôte = Ascension + 49 jours
  end
  return JourFerieTab[today] -- (nldr : Both nil and false make a condition false)
end

-- print(JourFerie())
-- jf=(JourFerie())
-- print (jf)

if JourFerie() == true
then
commandArray['Variable:jf'] = 'true'
else
commandArray['Variable:jf'] = 'false'
end
end
return commandArray


Re: variable et blockly

Publié : 03 août 2018, 20:07
par vil1driver
Tu sais repérer où est mis à jour la variable ?

Ajoute ceci à la suite

Code : Tout sélectionner

commandArray['JourFerie'] = 'On' 
Ou 'Off' selon le cas

Et pense à aller voir le wiki qui explique tout cela

Ps:bien sûr le dummy JourFerie doit exister

Re: variable et blockly

Publié : 03 août 2018, 20:40
par vr6man
le dummy existe

par contre je positonne ou cette commande

je suppose qu'il faut mettre aussi un off quand le jour est pas férié

je met ou tout cela ?

Re: variable et blockly

Publié : 03 août 2018, 21:16
par vil1driver
Indice

Code : Tout sélectionner


if JourFerie() == true
then
commandArray['Variable:jf'] = 'true'
else
commandArray['Variable:jf'] = 'false'
end



Re: variable et blockly

Publié : 03 août 2018, 21:18
par vr6man
j'ai mis ca

if JourFerie() == true
then
commandArray['Variable:jf'] = 'true'
commandArray['JourFerie'] = 'On'
else
commandArray['Variable:jf'] = 'false'
commandArray['JourFerie'] = 'Off'
end
end
return commandArray

Re: variable et blockly

Publié : 04 août 2018, 11:24
par vil1driver
;)