This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Go-to statement
#1
(08.05.2021, 19:29)fabiorusco Wrote: Hello,
I need use the goto statement for avoid to execute some commands.
How I can implement it?
Fabio

I have created some script for turn on and off the light of a garden, some of this are inserted in more comand (see the picture).
When I turn on there are no problems, When I turn off i need to control if one of the lamps are on by another command. This situation it's too much slow and the costumer want avoid this. Can you help me please.
Best regards



Script:
Code:
for i, object in ipairs(grp.tag('ccGPAL')) do
  if not object.data then
-- Accendo LED accendo tutte le luci
    grp.write('0/1/110', true)
    os.sleep(0.2)
    grp.write('6/0/30',true)
    os.sleep(0.2)
    grp.write('6/0/31',true)
    os.sleep(0.2)
    grp.write('6/0/32',true)
    os.sleep(0.2)
    grp.write('6/0/33',true)
    os.sleep(0.2)
    grp.write('6/0/34',true)
    os.sleep(0.2)
    grp.write('6/0/35',true)
    os.sleep(0.2)
    grp.write('6/0/46',true)
    os.sleep(0.2)
    grp.write('6/0/47',true)
    os.sleep(0.2)
    grp.write('6/0/58',true)
    os.sleep(0.2)
    grp.write('6/0/59',true)
    os.sleep(0.2)
    grp.write('6/0/60',true)
    os.sleep(0.2)
    grp.write('6/0/61',true)
    os.sleep(0.2)
--Flash LED
    grp.write('0/1/110', false)
    os.sleep(0.4)
    grp.write('0/1/110', true)
    return
  end
end
-- Spengo il LED
grp.write('0/1/110', false)
-- controllo 1° gruppo
G1=0
for i, object in ipairs(grp.tag('ccGEA')) do
  if not object.data then
goto passo11
  end
end
G1=1
::passo11::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGEP')) do
  if not object.data then
goto passo12
  end
end
G1=1
::passo12::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGIP')) do
  if not object.data then
goto passo13
  end
end
G1=1
::passo13::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPC')) do
  if not object.data then
goto passo14
  end
end
G1=1
::passo14::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPG')) do
  if not object.data then
goto passo15
  end
end
G1=1
::passo15::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPL')) do
  if not object.data then
goto passo16
  end
end
G1=1
::passo16::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPO')) do
  if not object.data then
goto passo17
  end
end
G1=1
::passo17::
if G1==0 then
  grp.write('6/0/30',false)
  os.sleep(0.2)
  grp.write('6/0/31',false)
end
-- controllo 2° gruppo
G2=0
for i, object in ipairs(grp.tag('ccGEA')) do
  if not object.data then
goto passo21
  end
end
G2=1
::passo21::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGEB')) do
  if not object.data then
goto passo22
  end
end
G2=1
::passo22::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGEP')) do
  if not object.data then
goto passo23
  end
end
G2=1
::passo23::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPBC')) do
  if not object.data then
goto passo24
  end
end
G2=1
::passo24::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPBL')) do
  if not object.data then
goto passo25
  end
end
G2=1
::passo25::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPBO')) do
  if not object.data then
goto passo26
  end
end
G2=1
::passo26::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPG')) do
  if not object.data then
goto passo27
  end
end
G2=1
::passo27::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPL')) do
  if not object.data then
goto passo28
  end
end
G2=1
::passo28::
if G2==0 then
  grp.write('6/0/32',false)
  os.sleep(0.2)
  grp.write('6/0/33',false)
end
-- controllo 3° gruppo
G3=0
for i, object in ipairs(grp.tag('ccGEA')) do
  if not object.data then
goto passo31
  end
end
G3=1
::passo31::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGEB')) do
  if not object.data then
goto passo32
  end
end
G3=1
::passo32::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGEP')) do
  if not object.data then
goto passo33
  end
end
G3=1
::passo33::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPBL')) do
  if not object.data then
goto passo34
  end
end
G3=1
::passo34::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPG')) do
  if not object.data then
goto passo35
  end
end
G3=1
::passo35::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPO')) do
  if not object.data then
goto passo36
  end
end
G3=1
::passo36::
if G3==0 then
  grp.write('6/0/34',false)
  os.sleep(0.2)
  grp.write('6/0/35',false)
end
-- controllo 4° gruppo
G4=0
for i, object in ipairs(grp.tag('ccGEA')) do
  if not object.data then
goto passo41
  end
end
G4=1
::passo41::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGEP')) do
  if not object.data then
goto passo42
  end
end
G4=1
::passo42::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPAC')) do
  if not object.data then
goto passo43
  end
end
G4=1
::passo43::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPAO')) do
  if not object.data then
goto passo44
  end
end
G4=1
::passo44::
os.sleep(0.1)
if G4==0 then
  grp.write('6/0/46',false)
  os.sleep(0.2)
  grp.write('6/0/47',false)
end
-- controllo 5° gruppo
G5=0
for i, object in ipairs(grp.tag('ccGPBL')) do
  if not object.data then
goto passo51
  end
end
G5=1
::passo51::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPEL')) do
  if not object.data then
goto passo52
  end
end
G5=1
::passo52::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPL')) do
  if not object.data then
goto passo53
  end
end
G5=1
::passo53::
os.sleep(0.1)
if G5==0 then
  grp.write('6/0/58',false)
  os.sleep(0.2)
  grp.write('6/0/59',false)
end
-- controllo 6° gruppo
G6=0
for i, object in ipairs(grp.tag('ccGP')) do
  if not object.data then
goto passo61
  end
end
G6=1
::passo61::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPBL')) do
  if not object.data then
goto passo62
  end
end
G6=1
::passo62::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPEC')) do
  if not object.data then
goto passo63
  end
end
G6=1
::passo63::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPEG')) do
  if not object.data then
goto passo64
  end
end
G6=1
::passo64::
os.sleep(0.1)
for i, object in ipairs(grp.tag('ccGPPL')) do
  if not object.data then
goto passo65
  end
end
G6=1
::passo65::
if G6==0 then
  grp.write('6/0/60',false)
  os.sleep(0.2)
  grp.write('6/0/61',false)
end
--Flash LED
grp.write('0/1/110', true)
os.sleep(0.4)
grp.write('0/1/110', false)

Attached Files Thumbnail(s)
   
Reply


Messages In This Thread
Go-to statement - by fabiorusco - 20.09.2021, 10:17
RE: Go-to statement - by admin - 20.09.2021, 10:34

Forum Jump: