Comment 0 for bug 1891605

Revision history for this message
Michael Böhm (badboisikulix) wrote :

Hi!

I am using Sikulix 2.0.4 on Windows 10 64bit, 2 Monitors.

The script:
def testobserve():
    Reg=Region(1,234,2049,1154)

    Reg.onChange(160, testA)
    Reg.observe(3)
    wait(10)
    Reg.stopObserver()
    Reg.onChange(160, testB)
    Reg.observe(3)

def testA(event):
       print "TESTA"
       #repeat(20) does not change behavior if this line is there

def testB(event):
       print_l "TESTB"
       #repeat(20) does not change behavior if this line is there
testobserve()

results in: (on a continuously changing area)
TESTA
TESTA
TESTA
TESTA
TESTA
TESTA
TESTA
TESTB
TESTA
TESTB
TESTA
TESTB
TESTA
TESTB
TESTA
TESTB
TESTA
TESTB
TESTA
TESTB
TESTA
TESTB
TESTA
TESTB

Bug 1) My understanding is that after the first Reg.observe(3) a new function is registered, and the "old" one will be dropped. But it seems that both functions are registered at the same time, which causes some strange effects. (A-B-A-B-A..)
  Workaround: New Region for every handler
Bug 2) In case there is an error in one of the handler-functions, it breaks without error message
Suggestion 1) onChange is really nice, but the buggy observer functions are making me crazy. what about a function like exists(pic,sec) to wait for changes on a Region

Thanks in advance
Michael