Activity log for bug #1891605

Date Who What changed Old value New value Message
2020-08-14 07:44:03 Michael Böhm bug added bug
2020-08-14 07:46:16 Michael Böhm description 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 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() #does not change behavior if this line is there     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
2020-08-14 09:05:16 RaiMan sikuli: status New Opinion
2020-08-14 09:05:19 RaiMan sikuli: importance Undecided Medium
2020-08-14 09:05:22 RaiMan sikuli: assignee RaiMan (raimund-hocke)
2020-08-14 09:05:25 RaiMan sikuli: milestone 2.0.5
2020-08-14 09:14:03 Michael Böhm description 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() #does not change behavior if this line is there     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 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() #does not change behavior if this line is there     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 Bug 3) cannot be seen in this example, but I try to explain. When done like above (adding registered handlers) also the found areas drift away. this means after 2-3 added registrations the areas dont match the changed area anymore. it goes so far to match changes outside the screen, which causes error messages (but not exceptions). by using new assigned regions, this behavior goes away, and all works like expected. (this might be related to an IDE bug I am going to open, where the editor window jumps around - sometimes) 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
2020-08-25 16:21:59 RaiMan sikuli: status Opinion Invalid