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:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
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
#2
You don't need to use goto here. You should replace it with tag_or function if you want to check if a least one of tagged objects is ON. See this: https://forum.logicmachine.net/showthrea...961#pid961

It's hard to understand from the code what exactly this script is doing. Can you explain the task in more detail?
Reply


Forum Jump: