summaryrefslogtreecommitdiffstats
path: root/xml
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2016-02-23 07:20:33 +0100
committerSuren A. Chilingaryan <csa@suren.me>2016-02-23 07:20:33 +0100
commita962c90543955bac98308c1b0d909048070d900a (patch)
tree70b06851187e6bf8cfd8ee28931bdea25ea92ac7 /xml
parent055279e09c3db9429e02874ec9620b9af357c80a (diff)
parent52eb7f4fb76ddf99dedf44332aae7af4df76ab36 (diff)
downloadpcitool-a962c90543955bac98308c1b0d909048070d900a.tar.gz
pcitool-a962c90543955bac98308c1b0d909048070d900a.tar.bz2
pcitool-a962c90543955bac98308c1b0d909048070d900a.tar.xz
pcitool-a962c90543955bac98308c1b0d909048070d900a.zip
Merge Python scripting support from Vasiliy Chernov
Diffstat (limited to 'xml')
-rw-r--r--xml/test/props.xml2
-rw-r--r--xml/test/test_prop2.py6
-rw-r--r--xml/test/test_prop3.py5
-rw-r--r--xml/types.xsd2
4 files changed, 15 insertions, 0 deletions
diff --git a/xml/test/props.xml b/xml/test/props.xml
index cf163eb..57702e2 100644
--- a/xml/test/props.xml
+++ b/xml/test/props.xml
@@ -1,4 +1,6 @@
<?xml version="1.0"?>
<model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<transform path="/test/prop1" register="test_prop1" unit="C" read_from_register="(503975./1024000)*${/registers/fpga/sensor_temperature:C} - 27315./100" description="formula to get real fpga temperature from the fpga_temperature register in decimal"/>
+ <transform path="/test/prop2" register="test_prop2" unit="C" script="test_prop2.py" description="test python script #1" write_verification="0" />
+ <transform path="/test/prop3" register="test_prop3" unit="C" script="test_prop3.py" description="test python script #2" />
</model>
diff --git a/xml/test/test_prop2.py b/xml/test/test_prop2.py
new file mode 100644
index 0000000..d78dbea
--- /dev/null
+++ b/xml/test/test_prop2.py
@@ -0,0 +1,6 @@
+def read_from_register(ctx, value):
+ return ctx.get_property('/test/prop3') / 2
+
+def write_to_register(ctx, value):
+ ctx.set_property(value*2, '/test/prop3')
+
diff --git a/xml/test/test_prop3.py b/xml/test/test_prop3.py
new file mode 100644
index 0000000..a082096
--- /dev/null
+++ b/xml/test/test_prop3.py
@@ -0,0 +1,5 @@
+def read_from_register(ctx, value):
+ return ctx.get_property('/registers/fpga/reg1')
+
+def write_to_register(ctx, value):
+ ctx.set_property(value, '/registers/fpga/reg1')
diff --git a/xml/types.xsd b/xml/types.xsd
index 78be773..5fc8902 100644
--- a/xml/types.xsd
+++ b/xml/types.xsd
@@ -59,6 +59,7 @@
<xsd:attribute name="unit" type="xsd:string" />
<xsd:attribute name="type" type="pcilib_data_type_t" />
<xsd:attribute name="mode" type="pcilib_access_mode_t" />
+ <xsd:attribute name="write_verification" type="bool_t" default="1"/>
<xsd:attribute name="visible" type="bool_t" default="0" />
<xsd:attribute name="description" type="xsd:string" />
</xsd:complexType>
@@ -70,6 +71,7 @@
<xsd:attribute name="register" type="xsd:string" />
<xsd:attribute name="read_from_register" type="xsd:string" />
<xsd:attribute name="write_to_register" type="xsd:string" />
+ <xsd:attribute name="script" type="xsd:string" />
<!-- xsd 1.1 <xsd:assert test="(@path and not(@name)) or (not(@path) and @name)"/> -->
</xsd:extension>
</xsd:complexContent>