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.

Cancel event-scripts
#15
(11.02.2019, 12:45)admin Wrote: Here's a complete example with two sequences - one for "on" event, another for "off". 32/1/1 is the object that triggers execution. Delay between each command is fixed at 0.5 seconds. This can be made adjustable via sequence table, but it must not be 0, otherwise sequence thread won't be able to pass control to localbus monitor thread.

Code:
if not client then   require('copas')   seqon = {     { address = '1/1/1', value = true },     { address = '32/1/2', value = 42 },     { address = '32/1/3', value = 43 },     { address = '32/1/4', value = 44 },     { address = '32/1/5', value = 45 },   }   seqoff = {     { address = '1/1/1', value = false },     { address = '32/1/2', value = 53 },     { address = '32/1/3', value = 54 },     { address = '32/1/4', value = 55 },     { address = '32/1/5', value = 56 },   }   function eventhandler(event)     if event.dst == '32/1/1' then       local val = busdatatype.decode(event.datahex, dt.bool)       sequence = val and seqon or seqoff       seqpos = 1       copas.wakeup(seqthread)     end   end   client = require('localbus').new()   client:sethandler('groupwrite', eventhandler)   copas.addserver(client.sock, function()     client.sock = copas.wrap(client.sock)     while true do       client:step()     end   end, 1)   seqthread = copas.addthread(function()     copas.sleep(-1) -- put thread to sleep until wakeup is called     while true do       local curr = sequence[ seqpos ]       grp.write(curr.address, curr.value)       seqpos = seqpos + 1       -- end of sequence       if seqpos > #sequence then         copas.sleep(-1)       else         copas.sleep(0.5)       end     end   end) end copas.step()

This script was nice Smile
It's it possible to have different sleep (delay) between each command?  Big Grin
Reply


Messages In This Thread
Cancel event-scripts - by buuuudzik - 08.02.2019, 09:23
RE: Cancel event-scripts - by Daniel - 08.02.2019, 09:53
RE: Cancel event-scripts - by admin - 08.02.2019, 10:24
RE: Cancel event-scripts - by buuuudzik - 08.02.2019, 14:52
RE: Cancel event-scripts - by Daniel - 08.02.2019, 14:56
RE: Cancel event-scripts - by buuuudzik - 08.02.2019, 15:11
RE: Cancel event-scripts - by admin - 10.02.2019, 11:32
RE: Cancel event-scripts - by buuuudzik - 10.02.2019, 12:18
RE: Cancel event-scripts - by admin - 11.02.2019, 12:45
RE: Cancel event-scripts - by JASK - 07.01.2023, 00:14
RE: Cancel event-scripts - by buuuudzik - 11.02.2019, 14:14
RE: Cancel event-scripts - by khalil - 08.01.2023, 07:48
RE: Cancel event-scripts - by admin - 11.02.2019, 15:40
RE: Cancel event-scripts - by apkotelnikov - 12.02.2019, 23:26
RE: Cancel event-scripts - by buuuudzik - 13.02.2019, 07:37
RE: Cancel event-scripts - by admin - 13.02.2019, 07:49
RE: Cancel event-scripts - by admin - 09.01.2023, 07:49
RE: Cancel event-scripts - by JASK - 30.01.2023, 22:56
RE: Cancel event-scripts - by admin - 31.01.2023, 07:50

Forum Jump: