diff options
Diffstat (limited to 'xml')
-rw-r--r-- | xml/test_pywrap/camera.xml | 4 | ||||
-rw-r--r-- | xml/test_pywrap/props.xml | 5 | ||||
-rw-r--r-- | xml/test_pywrap/test_prop_mt.py | 20 |
3 files changed, 28 insertions, 1 deletions
diff --git a/xml/test_pywrap/camera.xml b/xml/test_pywrap/camera.xml index 4b31209..2018ae0 100644 --- a/xml/test_pywrap/camera.xml +++ b/xml/test_pywrap/camera.xml @@ -1,6 +1,8 @@ <?xml version="1.0"?> <model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bank bar="0" size="0x0200" protocol="software_registers" read_address="0x9000" write_address="0x9000" word_size="32" endianess="little" format="0x%lx" name="fpga" description="IPECamera Registers"> - <register address="0x00" offset="0" size="32" default="0" rwmask="0" mode="RW" name="reg1"/> + <register address="0x00" offset="0" size="32" default="0" rwmask="0" mode="RW" name="reg1"> + <field offset="0" size="16" mode="RW" name="sensor_temperature" min="5" max="15"><view view="formuu1"/><view view="formuu2"/><view view="enumm2"/></field> + </register> </bank> </model> diff --git a/xml/test_pywrap/props.xml b/xml/test_pywrap/props.xml index 0d0078b..dae83f9 100644 --- a/xml/test_pywrap/props.xml +++ b/xml/test_pywrap/props.xml @@ -16,4 +16,9 @@ unit="C" script="test_prop3.py" description="test python script #2"/> + <transform path="/test/prop_mt" + register="test_prop_mt" + unit="C" + script="test_prop_mt.py" + description="Example of thread safe python property"/> </model> diff --git a/xml/test_pywrap/test_prop_mt.py b/xml/test_pywrap/test_prop_mt.py new file mode 100644 index 0000000..53ea797 --- /dev/null +++ b/xml/test_pywrap/test_prop_mt.py @@ -0,0 +1,20 @@ +import time +import threading +lock = threading.Lock() + +def read_from_register(ctx, value): + with lock: + ctx.lock('lock1') + cur = read_from_register.counter + read_from_register.counter += 1 + for i in range (0, 5): + time.sleep(0.1) + print cur + out = ctx.get_property('/test/prop3') / 2 + ctx.unlock('lock1') + return out +read_from_register.counter = 0 + +def write_to_register(ctx, value): + with lock: + ctx.set_property(value*2, '/test/prop3') |